大家 干微信公众平台开发平台的开发有前途吗

微信公众号开发和APP开发哪个更有前景?
【别开发app 了,做个公众号就可以了】
这是最近我和所有正在创业的朋友说的一句话,app生态已经趋于饱和,低频产品已经没有开发 app 的必要,转而做(未来是应用号)将是最佳选择。
8 年前,当有人跟你说,先开发移动app,再开发PC端,你会觉得那是开玩笑。2年前,如果有人跟你说,先开发微信公众号,再开发app,最后补一个简单的P 端产品,你可能会觉得这又是开玩笑。现在,如果我告诉你,半年后,你真的可以不开发app了,这不是在开玩笑。
这篇文章将告诉你:为什么做微信公众号开发是合理的?
1、从一个案例说起
不久前,我和朋友在一个快餐店吃饭,忽然来了一个老外,他跟我的朋友打了个招呼,于是我们就坐下来认识了。这个老外叫 Drew ,中文说得比我的英文流利,他是一个产品经理,当他知道我认识张小龙时,他笑得快合不拢嘴,他说,
“我是张小龙粉丝,我觉得微信就是世界,这年头应该只开发微信公众号,根本不需要开发 iOS 和 Android 。”
他是 「Yoli 口语」的产品负责人,Yoli 口语是一个真人英语教育产品,是一个完全且只基于微信的产品,是一个严格意义上的「微信 app」,和绝大部分的微信公众号不一样,Yoli 口语不是一个单纯的 HTML 5 应用,而是有一个相当庞大的产品和交互体系。
Yoli 口语的产品分两端:学生端和老师端。
学生端他们采用微信服务号来做,学生可以在 Yoli 口语上购买课程,购买后,Yoli 会用 Uber 的抢单模式,给学生匹配老师:
然后学生就可以在服务号里与老师进行对话,按照计划的课程,互动学习和练习英语。
老师端他们采用了企业号,老师可以在企业号抢单、给学生上课等:
每节课结束时,学生可以对老师进行评价。
从以下这张图你可以看到,老师端的所有功能都被打包到企业号里。
简单绘制其产品,是这样的:
当然,实际的架构要比上图复杂得多。
这是我见过功能「最完整」的微信公众号,而且,Drew 他们没有或 的打算,对于他们的产品团队来说,他们相信只开发微信公众号已经足够了。
Yoli口语给了我很大的启发,就像引语里所说,2年前,如果有人告诉你,只开发微信公众号,你肯定觉得不可思议,但现在,微信上已经出现了功能复杂的公众号,而且应用号也将在不久后发布,我们还有什么理由,不优先或只?
2、微信公众号一定是未来
本文说的微信公众号更多地是功能性的公众号,虽然订阅号也可以对接开发接口,但从产品的角度,未来大多数开发必然是基于服务号,以及正在内测的「小程序」,简单的定义是:
“为满足用户某种需求开发的、完全基于微信的消息或网页应用,入口是公众号,用户无需离开微信即可完成所有操作,所有需求都在公众号里被满足。”
从很多角度考虑,开发微信公众号都比开发iOS和Android app 要好。
2.1、用户在哪里,产品就在哪里
如果你是一个销售鞋子的商人,你的鞋子只适合南方人穿,你应该在南方开店,或在南方人出没的地方和网站投放广告。
“顾客在哪里,就让顾客在哪里看到你。”
对于绝大多数中国移动互联网用户,他们(我们)大多数时间都花在微信里,比如我,过去 7 天里,有16.6 个小时微信都在前台工作(iPhone 自带统计),这意味着我每天有超过 2 小时在微信里度过。
所以,对于绝大多数产品来说,我们的目标用户同时也是微信用户,那么,为什么不在微信里开发产品,以让我们的产品更容易触及用户?
2.2、从使用频度角度开发
打开你的 iPhone,查看手机的电量统计,你会轻易发现,微信占了你电量使用的最大比例。
通过查看过去 7 天的统计我还发现,在我一共安装了 218 个 app 的 iPhone 上,过去一周我只用了 28 个,其中有 8 个是系统应用,也就是第三方应用我只打开过 20 个。而耗电量超过 1% 的,只有 10 个。我们假设耗电量超过 1% 的应用就是高频应用,那么:
“一周内我频繁使用的 app只有10个,只占了我所安装app的 4%。”
我相信非 IT 圈的人装的 app 肯定没我多,但频繁使用的 app 也不过是 10 个左右。
这意味着,大多数 app 都被低频使用,被低频使用的命运极有可能是「被删掉」,因为和删除微信好友不一样,删掉一个 app ,真的能节省不少内存。
那么,低频 app 如何才能避免被删除?那就尽可能少占用手机空间。
如何可以做到?做成微信公众号。
用户在微信里关注一个公众号,相当于「下载」了一个 app ,但无需等待下载时间,也不占用手机内存。
2.3、从推广角度考虑
试想这样的场景:你的产品要进行地推,你在路边发传单,是扫码下载一个 100MB 的 app 路人更可能下载,还是关注一个公众号?
答案是显而易见的。
虽然这年头推广下载一个 app 或公众号,成本都很高,但在即将到达用户的那一瞬间,公众号的优势就显示出来了,「无需下载」无论从何种角度,都让人减少心理负担,反正关注一下不会亏,关注了不喜欢可以立即取关,而下载了一个 app 不喜欢,你会后悔耗费流量和下载时间。
2.4、从营销角度考虑
因为朋友圈的存在,用户使用产品和参与传播在同一个地方发生,这意味着,使用同样的营销方式,用户参与传播的转化率更高,因为传播的路径变短了。
更重要的是,作为一个微信 app,你除了能给用户提供功能,还能推送内容,如果你用的是服务号,用户的微信上还会多出一个未读标记。这是一种到达率比 app 更高的推送方式 — 因为用户极有可能关闭 app 的推送,但一般不会关掉微信的推送。
2.5、从开发成本考虑
微信公众号开发涉及网页前端和服务器后端,相比起 iOS 和 Android 开发,至少节省了两个平台的开发成本,节省了大量的时间和人力。因为开发这两个平台的客户端,服务器后端的开发几乎是必须有的,网页前端可能相对微信公众号要少一些,但相比之下,这些前端的工作比客户端的工作量要少很多。
如果你打算做一个产品,并找外包公司开发 app,如果他们建议你先开发微信公众号,这一定是一家好的外包公司。
2.6、从适配成本考虑
在微信应用里,不管用户用的是何种手机,获得的体验是一致的。如果不一致,也能用相对较低的开发成本让其一致。
如果你是 app 测试人员或产品经理,你肯定会特别讨厌 Android,因为 Android 设备数量众多,不同尺寸、不同性能、不同分辨率为开发和测试带来极大的工作量。
如果你开发的是一个微信消息应用,微信提供了固定的消息模板,这意味着,不管用户使用的是什么系统,他们看到的界面是相同的。
如果你开发的是一个网页应用,你只需要针对不同尺寸的屏幕稍微调整前端代码,用户就能获得统一的体验。相比起针对不同的安卓设备做调整,前端的调整成本几乎可以忽略。
2.7、从精益创业的角度考虑
精益创业简单来说指的是小规模试错,然后迭代,然后再试错,再迭代,最后成功。这是现今互联网创业的基本方法。
基于产品,更符合精益创业的理念。
开发成本更低,速度更快,迭代更快
修改无需等待审核,迭代后马上能看到效果,然后继续观察和迭代
创业,拿着一个公众号去找投资并不会让人觉得可笑,反之,这是一种更精益的起步。
2.8、Facebook 也证明了这一点
大概两三年前(具体时间已经记不清),Facebook 将聊天功能单独剥出来做了 Facebook Messenger,形态就跟微信刚推出时一样:聊天、群组。
半年前,Facebook 推出了 Messenger Platform ,用中文来说,就是「Facebook 公众号」。用户除了可以在 Messenger 里聊天外,还可以关注 CNN 看新闻,可以买鞋:
如上图所示,CNN 的机器人(相对于微信公众号)可以根据我发送的关键词给我推送新闻,我可以从我关注的 Shop spring 机器人里点菜单,直接去买鞋。
不久前,那个曾经给 TechCrunch 撰稿写微信如何改变中国互联网的老外 — Dan Grover — 微信的一名产品经理,跳槽到了 Facebook ,是不是负责 Messenger Platform 我不知道,但可以确定一点是,Facebook 有注意到微信,并试图从微信身上学会点什么。
所以,Facebook 也在试图让第三方在「聊天工具」里为用户提供服务,而不是单独开发 app。
这是趋势。
这一次,中国比美国超前。
3、但是,基于微信开发也有若干问题
相比起开发 iOS 和 Android app,只开发微信公众号,也会有一些问题。
3.1、纯网页应用效率不够高
我们不可能只开发一个像 Siri 那样的「机器人」公众号,因为这样的体验在很多场景下,效率是非常低的。更多的场景,我们是以点击的方式找到我们想要的功能。
点击基本上是在网页上进行的,网页是用 的,浏览得是否流畅,与网速、页面内容量都有关系,不像原生应用,除了要加载的内容,其它控件都是本地化的。
更可怕的是,如果没有网络,微信公众号整个就歇菜了,因为它无法离线使用。
从这个角度,原生应用要比微信公众号好。
3.2、拉新只能靠自己
App Store 有编辑推荐机制,也有排行榜,这让每个 app 除了自身的渠道外,还能获得额外的推广入口。Android 也如此,国内各个安卓市场,都设有推广位。
但微信从来没有推广过任何一个公众号,每个公众号只能靠自己,平台不会给你导流量。
哪怕在推出应用号后,短期内微信平台应该也不会推广任何第三方应用号。我深信这一点。
3.3、无法获取用户资料和好友关系
使用微信登录,微信给每个产品返回的是用户的 OpenID、头像、昵称、性别、语言、城市,除此之外没有其它。不像 Facebook ,使用微信登录,微信不会返回用户的好友关系。
如果你开发了一个 app ,正在和另一个 app 相互推广,推广时,你们可能会交叉查看用户数据,来制定更好的营销策略。
但在 2 个不同微信公众号里,你无法查看关注者的交叉程度。除非这两个公众号在同一个开发者帐号之下。因为用户的 OpenID 对每个公众号是不一样的。
诸多的限制会导致你在用户登录后,仍然需要开发相关的功能,来收集用户的资料(比如手机号、邮箱等),以开展更有针对性的营销和开发功能。
3.4、营销的限制
微信封了不少公众号,被封的公众号里,被谈论最多的一类是「诱导分享」。
不久前,易到用车的一次营销就被微信定义为「诱导分享」,遭到封禁。
要在微信平台里活下来,你必须遵守微信的规则,而「诱导分享」是最让开发者讨厌的规则 — 试问哪个产品不希望用户多分享?哪个产品不诱导用户分享给自己的好友呢?
可是,微信并不希望营销活动拉低了朋友圈的质量。
这需要平衡,但这种平衡非常难,往往让开发者感到难受,随之产生抱怨。要么,想方设法在微信的规则里活着,要么,想想别的渠道可以怎么玩。
3.5、入口混合在会话列表
微信服务号的会话和好友的会话一样,被混合在一个列表里。虽然在「通信录」里有专门的公众号入口,但里面的公众号无法自由排序。
这意味着,用户并不能像在手机桌面上自由挪动图标一样,把常用的放在第一屏,或做分类。
这样会让公众号的留存降低,因为用户需要通过搜索或一层一层的结构寻找之前关注过的公众号。
4、网页应用有没有可能更快?
从技术角度来说,阻碍更多人「只」开发微信公众号的原因可能是:
HTML5 网页加载速度慢
无法离线使用
那么,有没有办法可以解决这个问题?
4.1、Nike 广告的启示
里约奥运会第一天,我的朋友圈被 Nike 的这一广告刷屏了:
刷屏并不是因为广告内容,而是它的加载速度,看起来,就像原生的微信功能。
后来,微信官方发文说这是微信的「原生广告」,加载速度比以往快 10倍。这个倍数不知道他们是如何测量的。
这个广告之所以加载如此迅速,是因为:
最新版的微信 app 里已经集成了显示这个广告的控件,也就是说,这个广告不完全是 HTML5 网页,有一部分结构是原生在微信客户端里的。
用户接收到广告但未打开时(朋友发给你,或你即将在朋友圈看到),广告就已经在加载,而不是点击后才加载。
虽然微信官方并没有公布「原生广告」的原理,但基本上上面的猜测八九不离十。
也就是说,网页应用,也可以加载得像原生 app 那么快。
4.2、Progressive Web App 的启示
我要开始说一点比社会投资更难懂但有趣的东西了。
Google 在非常非常久之前,就致力于推动 web app 发展,它鼓励开发者开发网页应用,并提供各种技术和 API 方面的支持。然而,之前的方案并没有特别推动 web app 发展,直到不久前,Google 推出了 Progressive Web App (PWA) 这个概念。
PWA 是运行在浏览器里的应用,这个概念其实是一系列技术的封装,直接翻译过来很好理解:渐进式网页应用。我们不需要理解它背后的技术,只需要理解它能做什么就可以了:
即时加载。加载速度比以往可能不止快 10 倍,即使网速很慢,也能有极高的可靠性。
体验流畅。操作网页,就像操作原生 app 那么流畅。
添加到主屏。PWA 可以生成一个图标,并被添加到主屏。
推送通知。即使关掉浏览器,用户依然能收到 PWA 的推送。
响应式。适配各种屏幕和设备。
安全。所有数据通过 https 传输。
渐进式加载。先加载框架,再填充内容。
离线使用。没有网络,依然可以使用。
之所以能做到这些,是因为 PWA 得到了浏览器支持,最新版的 Chrome, Opera, Firefox 均已支持 PWA,这些浏览器提供一系列统一的 API,让渐进式网页应用(PWA)得以运行。
用一句话总结:
“PWA 是网页应用,但体验和原生客户端几乎一样。”
比较遗憾的是,Safari 还未支持 PWA。
4.3、网页应用的好时代已经带来
不管是 Nike 的微信广告,还是 Google 正在推动的渐进式网页应用,都在告诉我们:网页应用可以加载得很快、离线是有可能的、网页应用是可以与原生客户端相媲美的,这意味着,微信公众号的体验,必将也和原生客户端越来越相似。
不得不提的是,前面所说的 Nike 广告,如果你将手机开到飞行模式,再打开这个广告,广告一样能显示。
或许,微信已经支持与 PWA 类似的技术。
5、应用号会长什么样子?
微信从宣布即将推出应用号到现在已经差不多一年了,不管从任何渠道,没有任何外部的人知道应用号将会长什么样、会为开发者提供什么功能。
在我很厚脸皮跟微信团队讨论 PWA 时,他们回复了我一句:我们会在组件和 web 间取得最佳的平衡,保证应用的一致性和运行效率,又兼顾到开发的方便性。
结合这句话,从开发者的需求,到 PWA 技术的启示,我们大致可以猜测,微信应用号具有什么样的功能。
从加载更快的角度考虑,应用号会为开发者提供一系列统一的控件。
这些控件可能是内嵌到微信里的 HTML 前端控件,也可能是客户端的原生控件,或者两者都有。
比如,应用号可能会提供信息列表控件,如果你做的是一个新闻应用号,你只需要对接新闻数据,内容将在原生的控件里呈现。
又比如,你做的是一个购物应用号,你需要做的是开发一个后台和做好 API 对接,让商品直接在原生的列表框架里显示。
开发者可能能对原生控件进行一些自定义,但可能并不能做特别大的改动。
5.2、强大的 API
目前,微信为开发者提供了音频、分享等 API,从应用号趋近原生 app 的角度考虑,微信可能会为开发者提供更多在线和本地的 API。
比如图形方面的接口,比如辅助运算,又比如后台加载。
这些接口会让应用号的离线运行变得可能。
5.3、原生控件、前端技术、Bot 相结合
前面两点意味着微信应用号将趋近于原生 app ,拥有更快的加载速度、本地运算能力、离线使用等。开发者可以根据自己的需求,调整官方提供的原生控件。
对于自由度要求较高应用,可能依然需要做大量的前端开发,但结合应用号的 API,这些前端页面的加载可能依然非常迅速。
包括原有的 Bot 模式(就是你给公众号发消息,公众号返回图文信息),应用号将会是原生控件、前端技术、Bot 相结合。
5.4、应用号互通
应用号与应用号之间,可能会逐渐实现数据互通。
最简单的,一个应用号可以将内容分享给另一个应用号。类似这样:
更深一点,应用号之间可以跳转。
再深一点,应用号之间可能会共享一个特殊存储空间,就像 iCloud 那样,应用号可以集中在这个空间里处理文件。
5.5、更开放的通知系统
目前,利用微信的客服接口,服务号可以向过去 48 小时与服务号之间有互动的关注者推送无数条信息,而要推送给所有人,一个月只能推送 4 次。
一个月 4 次的推送,显然是不够的。
或许应用号会降低推送的限制,让用户自行选择接收推送的频率,而不是统一地限制所有服务号一个月只能推送 4 次 — 就像原生 app 那样,如果 app 的推送太厉害,用户可以自行选择关闭。
如果这样,微信可能会在客户端里添加统一的通知管理界面。
5.6、打通桌面端
记得前面提到的 Google 的 PWA ?PWA 是响应式的,这意味着一个应用开发完成后,它可以在手机上,也可以在电脑上运行。
微信有 Windows 版和 Mac 版(虽然万年不更新)的客户端,Windows 版客户端已经集成了订阅号,用户可以在电脑上查看订阅号的文章。
按此推测,有理由相信,如果微信使用应用号的机制和 PWA 类似,那么微信只需要在桌面客户端添加入口,应用号就能在桌面端运行。
对于开发者来说,开发一个移动端,「赚了」一个桌面端。
5.7、专门的应用号入口,可以整理归类
微信可能会专门在客户端里给应用号提供入口,就像现在的钱包功能:
用户可以按自己的偏好分类整理。
5.8、开发者工具
之前微信已经针对服务号为开发者提供了网页调试工具,针对应用号提供开发者工具可能是早晚的事。
5.9、或许会有用户好友关系?
或许会逐步开放好友关系,因为 Facebook 开放了好友关系给第三方应用,目前没有出什么问题,如果腾讯足够开放的话,有可能会开放用户好友关系。那时,应用号将会更有意思。
5.10、重申,以上均为猜测
重申一下,我没有从微信任何员工里获取任何关于应用号的细节,以上均为猜测。
6、这是新的机会
iOS、 Android app 开发成本居高不下,推广难度巨大,站在精益创业的角度,优先开发微信公众号是一种合理的选择。
渐进式网页应用技术的出现,让网页应用与原生应用的体验越来越接近,web app 也可以快速加载、可以实现离线。
用户在哪里,产品就应该去哪里开发。用户在微信里,就应该开发「微信 app」。技术上,我们已经开到了合适的解决方案,剩下的,就是等待应用号的到来了。
在它到来之前,我们依然可以先基于服务号进行开发,我相信微信会提供迁移方案,如果等到应用号推出才着手准备,你可能会错过新的机会。
或许某一天,互联网公司的技术团队里,会专门有一个岗位叫「微信开发工程师」,你信不信?我信。
【玉犀科技】:
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
玉犀科技是中国专业的移动互联网技术方案供应商。www.yuxiit.com
玉犀科技是中国专业的移动互联网技术方案供应商。www.yuxiit.com
今日搜狐热点大家觉得做微信公众平台深度开发的公司有没有发展?_百度知道
大家觉得做微信公众平台深度开发的公司有没有发展?
我有更好的答案
吃不饱,饿不死,混世。
采纳率:31%
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。关键字:微信公众平台开发作者:方倍工作室
在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序、MySQL数据库、计算机网络通讯、及HTTP/XML/CSS/JS等基础。
我们将使用微信公众账号方倍工作室作为讲解的例子,二维码见左侧。
本系列教程将引导你完成如下任务:
创建新浪云计算平台应用
启用微信公众平台开发模式
体验常用接收消息及发送消息类型
了解数据收发原理及消息格式
第一章 申请服务器资源
创建新浪云计算应用
我们使用SAE新浪云计算平台作为服务器资源,并且申请PHP环境+MySQL数据库作为程序运行环境。申请地址为:
直接,可以看到右上角微博登录的链接。
点击进入之后,使用新浪微博账号登录&
登录之后,按照提示注册个人信息即可。&
创建新应用&http://www.cnblogs.com/txw1958/p/wechat-tutorial.html&
回到首页,在菜单顶部选择&控制台&,再选择&云应用SAE&。
进入SAE应用列表
点击下侧的创建新应用,这时会弹出提示, 禁止放置违法违规内容,点击继续创建,弹出如下窗口。
开发语言选择PHP,运行环境为标准环境,语言版本5.3。二级域名自己想一个名字,也可以就直接用自己的QQ号。应用名称可以用系统默认填的。
此处配置和本教程必须完全一样!!!
此处配置和本教程必须完全一样!!!
此处配置和本教程必须完全一样!!!
然后点击左下方的创建应用
应用创建成功。并自动跳转到应用列表中,可以看到已经有刚才创建的这个应用。
创建版本&http://www.cnblogs.com/txw1958/p/wechat-tutorial.html&
点击刚才创建的应用名称,进入应用主页。
点击左侧的应用管理下面的代码管理,
在代码管理中,选择使用SVN托管的方式。不要使用云空间和Git的方式!
跳转到代码管理
点击右侧的&创建版本&
版本号默认为1,点击创建,有时会弹出安全登录,需要输入安全密码,如果不知道或者忘记了,就点里面的找回密码,重新设置一下。:
验证通过之后,如下所示
到这里,就成功创建了一个域名URL为&http://.sinaapp.com/&的应用了,记住你的这个URL,后面将会用到。
&原文:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html&
上传代码&http://www.cnblogs.com/txw1958/p/wechat-tutorial.html&
下述代码是一个微信接口文件,看不懂没有关系,你可以暂时不用弄明白它的意思。
方倍工作室 http://www.cnblogs.com/txw1958/
CopyRight 2013 www.fangbei.org
All Rights Reserved
header('Content-type:text');
define("TOKEN", "weixin");
$wechatObj = new wechatCallbackapiTest();
if (isset($_GET['echostr'])) {
$wechatObj-&valid();
$wechatObj-&responseMsg();
class wechatCallbackapiTest
public function valid()
$echoStr = $_GET["echostr"];
if($this-&checkSignature()){
header('content-type:text');
echo $echoStr;
private function checkSignature()
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );
if( $tmpStr == $signature ){
return true;
return false;
public function responseMsg()
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
if (!empty($postStr)){
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$fromUsername = $postObj-&FromUserN
$toUsername = $postObj-&ToUserN
$keyword = trim($postObj-&Content);
$time = time();
$textTpl = "&xml&
&ToUserName&&![CDATA[%s]]&&/ToUserName&
&FromUserName&&![CDATA[%s]]&&/FromUserName&
&CreateTime&%s&/CreateTime&
&MsgType&&![CDATA[%s]]&&/MsgType&
&Content&&![CDATA[%s]]&&/Content&
&FuncFlag&0&/FuncFlag&
if($keyword == "?" || $keyword == "?")
$msgType = "text";
$contentStr = date("Y-m-d H:i:s",time());
$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
echo $resultStr;
我们将使用上述代码与微信公众平台对接。直接下载方倍工作室已经压缩好的上述代码的zip文件。
回到SAE的代码管理界面中。
再选择&上传代码包&,点击上传文件,选择刚才的index.zip文件,点击上传,上传成功后中间是一个绿色的横条,如下所示
如果没有绿色的横条,表示上传失败,需要重试。可以考虑在Chrome浏览器下重试一下。
点击编辑代码按钮,
&有时候需要输入自己的安全密码,如果不记得了就点击&找回密码&。
安全验证成功后继续之前的操作。
我们可以看到index.php已经上传成功,双击可以查看编辑里面的代码
新浪云应用的创建就成功了。
经测试,有的应用会自动出现一个叫index.html的文件,右键点击该文件,并删除!!
只需要我们自己上传的index.php和config.yaml文件就可以了。多余的要删除!!!
新浪SAE要求用户实名认证之后才能正常使用新浪云。实名认证是免费的。认证后可获得200个云豆。
在左侧目录列表中,找到实名认证目录,在页面中上传身份证并等待审核,审核成功之后,如下图所示。
充值(本步骤可选择性进行)
新浪云SAE实行的是配额免费+超额付费的方式,相关标准请查看SAE价格体系介绍。初期对于大部分用户来说免费配额已够用,如果您将来使用量比较大建议预先至少充值100元获得10000云豆,以免超额后应用被禁用而影响业务。
第二章 启用开发模式
微信公众平台开发模式
①个人开发者使用测试号
个人学习开发建议使用测试号&
微信测试号地址:
登录后,在接口配置信息中填写刚才生成的URL地址和Token.
URL地址就是QQ号的二级域名地址:http://1..applinzi.com/&或者 &http://.applinzi.com/都可以。
Token在程序中固定为&weixin
填写好提交
顶部显示配置成功
如果提示&token验证失败&,多重次几次。
②企业开发者并且有订阅号或者服务号
微信公众平台地址:&
登录微信公众平台后台,在左侧列表中最下方,找到& 基本配置 &,点击进入
进入服务器配置填写框。
点击&修改配置&按钮
此处的URL为上篇中介绍的云应用的域名,而Token在index.php中定义为weixin。EncodingAESKey则不用填,点击&随机生成&让自动生成一个,消息加解密方式选择&明文模式&,然后点击&提交&按钮。
在弹出的提示框中,点击&确定&
配置修改后如图所示,再点击&启用&按钮
询问&是否确定开启服务器配置&,点击&确定&
如果提示&token验证失败&,可以先重次几次,微信服务器有时候不稳定。另外新浪SAE要求进行实名认证,请先上传身份证进行实名认证并通过审核后再试!
如果还是失败,请先用测试一下url和token是否正确,。
成功启用后如图。
恭喜,你成功启用开发模式。
在上面的例子中,实现了一个发送&?&就能回复当前时间的功能。效果如下:
至此,你的微信公众平台账号已经实现自动回复了。&
第三章 常用消息类型接收与发送
全能型消息代码代码
你可以使用微信支付购买我们的全能版微信开发入门教程代码,仅需要¥1元,支持一下我们。
微信扫描二维码关注后返回购买图文链接,然后进入购买:
将代码下载后按照上述同样的方法配置到接口中,可以体验到更多,更强的功能。
效果图如下
你将体验到微信公众账号中最常见的接收消息及发送消息的类型。
第四章 数据收发原理及消息数据格式
★&本章是理论部分,初学者会比较难以理解,不用太过追究,看不懂可以跳过去。
开发模式成为开发者时的消息校验原理
在开发者首次提交验证申请时,微信服务器将发送GET请求到填写的URL上,并且带上四个参数(signature、timestamp、nonce、echostr),开发者通过对签名(即signature)的效验,来判断此条消息的真实性。
此后,每次开发者接收用户消息的时候,微信也都会带上前面三个参数(signature、timestamp、nonce)访问开发者设置的URL,开发者依然通过对签名的效验判断此条消息的真实性。效验方式与首次提交验证申请一致。
微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
启用接口是由代码中的checkSignature()函数来实现校验的。如果对这一原理难以理解,可以暂时不用深究,继续看下面。
成为开发者后消息收发时的原理
上一章节中图,当用户发送一个&?&时,系统回复了一个时间
这一原理的消息流程图如下所示。
从上图可以看出,用户在发送一个?后,微信服务器将组装一个消息发送给我们自己的服务器,自己的服务器然后回复一个时间,并且将该时间也按一定的规则组装,回复给公众账号,公众账号再回复给用户,在这个收发过程中,发送方和接收方进行了调换(ToUserName和FromUserName值互换),收发都是以xml格式在后台进行传输的,
所以掌握各种消息类型的接收回复就是进行微信公众平台开发的基础!
下面对前面所述的各种消息类型讲解其XML数据包的格式。
各种收发消息的XML数据包分析
1. 文本(包括表情)接收文本及表情
文字后台格式:
&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[测试文字]]&&/Content&
&MsgId&4121631&/MsgId&
表情后台格式
&xml&&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[/::)/::~/::B/::|/:8-)]]&&/Content&
&MsgId&8241864&/MsgId&
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型;文本消息为text
Content 消息内容
MsgId 消息ID号
可以看出,文本和表情的消息类型均为文本
2. 图片接收图片
后台格式:
&xml&&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[image]]&&/MsgType&
&PicUrl&&![CDATA[http://mmbiz.qpic.cn/mmbiz/L4qjYtOibummHn90t1mnaibYiaR8ljyicF3MW7XX3BLp1qZgUb7CtZ0DxqYFI4uAQH1FWs3hUicpibjF0pOqLEQyDMlg/0]]&&/PicUrl&
&MsgId&8042400&/MsgId&
&MediaId&&![CDATA[PGKsO3LAgbVTsFYO7FGu51KUYa07D0C_Nozz2fn1z6VYtHOsF59PTFl0vagGxkVH]]&&/MediaId&
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型;图片消息为image
PicUrl 图片链接地址,可以用HTTP GET获取
MsgId 消息ID号
3. 语音接收语音
后台格式:
&ToUserName&&![CDATA[gh_d035bb259cf5]]&&/ToUserName&
&FromUserName&&![CDATA[owEUGj4BW8yeWRvyEERiVGKwAF1Q]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[voice]]&&/MsgType&
&MediaId&&![CDATA[JfmCezZ3Cwp0FwUvMADwwhvp-XScuvpictubpw0c6ALyA8tj3HLU4PoXzMpIY72P]]&&/MediaId&
&Format&&![CDATA[amr]]&&/Format&
&MsgId&4912688&/MsgId&
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型;语音消息为voice
MediaId 媒体ID
Format 语音格式,这里为amr
MsgId 消息ID号
附:AMR接口简介
全称Adaptive Multi-Rate,主要用于移动设备的音频,压缩比比较大,但相对其他的压缩格式质量比较差,由于多用于人声,通话,效果还是很不错的。
后台格式:
xml&&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[video]]&&/MsgType&
&MediaId&&![CDATA[DBVFRIj29LB2hxuYpc0R6VLyxwgyCHZPbRj_IIs6YaGhutyXUKtFSDcSCPeoqUYr]]&&/MediaId&
&ThumbMediaId&&![CDATA[mxUJ5gcCeesJwx2T9qsk62YzIclCP_HnRdfTQcojlPeT2G9Q3d22UkSLyBFLZ01J]]&&/ThumbMediaId&
&MsgId&2624665&/MsgId&
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型;视频消息为video
MediaId 媒体ID
ThumbMediaId 媒体缩略ID?
MsgId 消息ID号
后台格式:
&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[location]]&&/MsgType&
&Location_X&22.539968&/Location_X&
&Location_Y&113.954980&/Location_Y&
&Scale&16&/Scale&
&Label&&![CDATA[中国广东省深圳市南山区华侨城深南大道9789号 邮政编码: 518057]]&&/Label&
&MsgId&1832047&/MsgId&
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型,地理位置为location
Location_X 地理位置纬度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息
MsgId 消息ID号
后台格式:
&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjl2LYdfTAM-oxDgB4XZcnc8]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[link]]&&/MsgType&
&Title&&![CDATA[微信公众平台开发者的江湖]]&&/Title&
&Description&&![CDATA[陈坤的微信公众号这段时间大火,大家..]]&&/Description&
&Url&&![CDATA[http://israel.duapp.com/web/photo.php]]&&/Url&
&MsgId&5129867&/MsgId&
XML格式讲解
ToUserName 消息接收方微信号,一般为公众平台账号微信号
FromUserName 消息发送方微信号
CreateTime 消息创建时间
MsgType 消息类型,链接为link
Title 图文消息标题
Description 图文消息描述
Url 点击图文消息跳转链接
MsgId 消息ID号
只介绍三种格式的消息:文本、图文、音乐。其中图文消息包括单条图文消息和多条图文消息,展示方式有一点点不同。
1. 文本消息格式回复文本
后台格式:
&ToUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/ToUserName&
&FromUserName&&![CDATA[gh_680bdefc8c5d]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[text]]&&/MsgType&
&Content&&![CDATA[【深圳】天气实况 温度:27℃ 湿度:59% 风速:东北风3级
11月03日 周日 27℃~23℃ 小雨 东北风4-5级
11月04日 周一 26℃~21℃ 阵雨 微风
11月05日 周二 27℃~22℃ 阴 微风]]&&/Content&
&FuncFlag&0&/FuncFlag&
XML格式讲解
FromUserName 消息发送方
ToUserName 消息接收方
CreateTime 消息创建时间
MsgType 消息类型,文本消息必须填写text
Content 消息内容,大小限制在2048字节,字段为空为不合法请求
FuncFlag 星标字段
&2. 图文消息格式2.1 单条图文消息回复单条图文
后台格式:
&ToUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/ToUserName&
&FromUserName&&![CDATA[gh_680bdefc8c5d]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[news]]&&/MsgType&
&Content&&![CDATA[]]&&/Content&
&ArticleCount&1&/ArticleCount&
&Articles&
&Title&&![CDATA[[苹果产品信息查询]]&&/Title&
&Description&&![CDATA[序列号:USE IMEI NUMBER
IMEI号:471
设备名称:iPhone 5C
设备颜色:
设备容量:
激活状态:已激活
电话支持:未过期[]
硬件保修:未过期[]
生产工厂:中国]]&
&/Description&
&PicUrl&&![CDATA[http://www.fangbei.org/weixin/weather/icon/banner.jpg]]&&/PicUrl&
&Url&&![CDATA[]]&&/Url&
&/Articles&
&FuncFlag&0&/FuncFlag&
2.2 多图文消息
回复多图文
后台数据格式
&ToUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/ToUserName&
&FromUserName&&![CDATA[gh_680bdefc8c5d]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[news]]&&/MsgType&
&Content&&![CDATA[]]&&/Content&
&ArticleCount&5&/ArticleCount&
&Articles&
&Title&&![CDATA[【深圳】天气实况 温度:3℃ 湿度:43﹪ 风速:西南风2级]]&&/Title&
&Description&&![CDATA[]]&&/Description&
&PicUrl&&![CDATA[http://www.fangbei.org/weixin/weather/icon/banner.jpg]]&&/PicUrl&
&Url&&![CDATA[]]&&/Url&
&Title&&![CDATA[06月24日 周四 2℃~-7℃ 晴 北风3-4级转东南风小于3级]]&&/Title&
&Description&&![CDATA[]]&&/Description&
&PicUrl&&![CDATA[http://www.fangbei.org/weixin/weather/icon/d00.gif]]&&/PicUrl&
&Url&&![CDATA[]]&&/Url&
&Title&&![CDATA[06月25日 周五 -1℃~-8℃ 晴 东南风小于3级转东北风3-4级]]&&/Title&
&Description&&![CDATA[]]&&/Description&
&PicUrl&&![CDATA[http://www.fangbei.org/weixin/weather/icon/d00.gif]]&&/PicUrl&
&Url&&![CDATA[]]&&/Url&
&Title&&![CDATA[06月26日 周六 -1℃~-7℃ 多云 东北风3-4级转东南风小于3级]]&&/Title&
&Description&&![CDATA[]]&&/Description&
&PicUrl&&![CDATA[http://www.fangbei.org/weixin/weather/icon/d01.gif]]&&/PicUrl&
&Url&&![CDATA[]]&&/Url&
&Title&&![CDATA[06月27日 周日 0℃~-6℃ 多云 东南风小于3级转东北风3-4级]]&&/Title&
&Description&&![CDATA[]]&&/Description&
&PicUrl&&![CDATA[http://www.fangbei.org/weixin/weather/icon/d01.gif]]&&/PicUrl&
&Url&&![CDATA[]]&&/Url&
&/Articles&
&FuncFlag&0&/FuncFlag&
XML格式讲解
FromUserName 消息发送方
ToUserName 消息接收方
CreateTime 消息创建时间
MsgType 消息类型,图文消息必须填写news
Content 消息内容,图文消息可填空
ArticleCount 图文消息个数,限制为10条以内
Articles 多条图文消息信息,默认第一个item为大图
Title 图文消息标题
Description 图文消息描述
PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图640*320,小图80*80
Url 点击图文消息跳转链接
FuncFlag 星标字段
&3. 音乐消息
回复音乐消息
后台格式:
&ToUserName&&![CDATA[ollB4jqgdO_cRnVXk_wRnSywgtQ8]]&&/ToUserName&
&FromUserName&&![CDATA[gh_b629c48b653e]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[music]]&&/MsgType&
&Title&&![CDATA[最炫民族风]]&&/Title&
&Description&&![CDATA[凤凰传奇]]&&/Description&
&MusicUrl&&![CDATA[http://zj189.cn/zj/download/music/zxmzf.mp3]]&&/MusicUrl&
&HQMusicUrl&&![CDATA[http://zj189.cn/zj/download/music/zxmzf.mp3]]&&/HQMusicUrl&
&FuncFlag&0&/FuncFlag&
XML格式讲解
ToUserName
接收方帐号(收到的OpenID)
FromUserName
开发者微信号
CreateTime
消息创建时间
消息类型,此处为music
Description 音乐描述
HQMusicUrl
高质量音乐链接,WIFI环境优先使用该链接播放音乐
位0x0001被标志时,星标刚收到的消息。
事件消息类型
目前用户在关注和取消关注,以及点击菜单的时候会自动向公众平台发送事件推送消息:
1. 关注事件
&ToUserName&&![CDATA[gh_b629c48b653e]]&&/ToUserName&
&FromUserName&&![CDATA[ollB4jv7LA3tydjviJp5V9qTU_kA]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&Event&&![CDATA[subscribe]]&&/Event&
&EventKey&&![CDATA[]]&&/EventKey&
2. 取消关注事件
&ToUserName&&![CDATA[gh_b629c48b653e]]&&/ToUserName&
&FromUserName&&![CDATA[ollB4jqgdO_cRnVXk_wRnSywgtQ8]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&Event&&![CDATA[unsubscribe]]&&/Event&
&EventKey&&![CDATA[]]&&/EventKey&
3. 菜单点击事件
&ToUserName&&![CDATA[gh_680bdefc8c5d]]&&/ToUserName&
&FromUserName&&![CDATA[oIDrpjqASyTPnxRmpS9O_ruZGsfk]]&&/FromUserName&
&CreateTime&&/CreateTime&
&MsgType&&![CDATA[event]]&&/MsgType&
&Event&&![CDATA[CLICK]]&&/Event&
&EventKey&&![CDATA[天气深圳]]&&/EventKey&
XML格式讲解
ToUserName
接收方微信号
FromUserName 发送方微信号,若为普通用户,则是一个OpenID
CreateTime
消息创建时间
消息类型,event
事件类型,subscribe(订阅)、unsubscribe(取消订阅)、CLICK(自定义菜单点击事件)
EventKey 事件KEY值,与自定义菜单接口中KEY值对应
第五章 小结
总的来说,通过本教程,你得到了以下收获:
1. 通过本教程得到了一个新浪云应用,该应用以后将会收取少量费用。你也可以另外自行购买空间服务器。
2. 成功启用了开发模式,并且实现了时间的自动回复。
3. 体验了微信公众账号最常用的接收消息及发送消息类型
4.&了解了微信公众平台开发的原理,并且熟悉了各种消息及发送是怎么一回事
接下来该做什么呢?你可以购买我们的微信公众平台开发电子版图书,书中包括了微信开发几乎所有的接口讲解,包括基础消息原理、自定义菜单、用户信息、网页授权和微信WeUI、参数二维码、客服接口与群发接口、微信小店、微信JS SDK、微信门店、微信卡券和会员卡、微信支付与微信红包、微信连Wi-Fi、微信摇一摇、微信企业号、微信小程序、微信开放平台以及微信开发实用技巧等所有知识等。
这一本书就可以解决你在微信开发过程中遇到的90%的问题。电子书提供在线留言技术支持,提供代码下载,并且持续更新。
价格仅30元,为纸质书价格的&3折&,地址为 https://www.kancloud.cn/fangbei/weixin&。
捐赠我们方倍工作室一直在致力于帮助开发人员更加快速方便的进行微信公众平台的开发,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
&本文于日 阅读量 突破100万!
&原文:http://www.cnblogs.com/txw1958/p/wechat-tutorial.html&
阅读(...) 评论()}

我要回帖

更多关于 微信公众平台开发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信