首先,微信公众号分两种类型和两种情况,两种类型分别是订阅号和服务号,两种情况是,已认证或未认证的订阅号。他们分别具体的接口权限大家可以在微信后台的“开发者中心-接口权限”看到。 如下图所示是我的接口权限: 以上显示“未获得”的接口状态,就是需要订阅号或服务号微信认证之后才有拥有的权限。 简单说,未认证的订阅号只有基础支持、自动回复和发送回复消息的接口,只有实现一些较简单的数据交互功能,例如本公众号(需要特别说明一下,本公众号也是未认证的订阅号,关于自定义菜单是一个微博关联认证的历史遗留问题,除此之外所有权限与普通未认证的订阅号一样) 那么,什么是接口?微信接口又是什么意思? 打个比方,如果一家公司是一个系统,创业之初,你可能一个人身兼多职,同时负责营销、财务、研发等,发展到了一定规模后为了提高公司整体的运行效率和服务水平,你就需要聘用不同的人才来帮你承担相应的一部分工作,那么同时,你也需要向这部分人提供对应的工作权限以满足他们的工作需要,这就类似于接口的概念。 微信接口简单说,是微信公众平台向第三方开发者提供的一个用户资源数据及功能的访问/使用权限。通过对开发者提供开放统一的API接口环境,来帮助微信第三方开发者访问微信公众平台的功能和资源,以达到充分自由的运用微信公众平台用户资源及功能的目的。 在微信上,要实现这一目的,需要开启“服务器配置”如下图所示: 如图所示:大家需要注意的是,一旦开启了服务器配置,微信平台自带的自动回复、自定义菜单等功能全部失效,所有的事件推送都会被转发到你所配置的服务器地址URL上。 简单解释下开发者ID和服务器配置各参数的作用: AppID是应用ID,也就是微信开发者编号的意思,在微信中主要用于创建微信菜单等。 AppSecret是应用密匙,与AppID是相配合的,意思可理解为这是私密的应用编号。 URL服务器地址是微信服务器像开发者服务器推送消息和事件的地址,可理解为你家的住址。这里没什么特别要求,无论你使用什么语言开发,只要能通过HTTP服务的80端口返回符合微信要求的XML信息即可。 Token令牌可理解为用来验证安全接头暗号,让微信服务器知道对方就是我要找的人。 EncodingAESKey可理解为暗语加密交流,以免你与用户之间的交互信息被第三方获取到后泄露敏感数据。 梳理下过程,当微信用户给你的微信公众号发送消息后,消息到达微信服务器被处理成XML数据包并转发给开发者服务器(URL),开发者服务器接收到数据包后就会把用户消息经过一系列的逻辑处理并再转送给微信服务器,最后微信服务器再推送给用户。 数据交互的流程:用户发送消息—到达微信服务器—转发给开发者服务器—转送微信服务器—推送给用户 看到这里,相信大家已经知道,微信公众号的开发关键流程在开发者服务器处理用户信息这一步上,至于这一步怎么做,那就是一个大话题了。 相比而言,微信开发是很简单的,将用户消息处理成符合微信要求的XML数据包结构即可,因此开发重心全在逻辑处理上面。 如下图所示,这是一个最基础的文本消息XML结构: 上图中Content就是返回给用户的消息内容,是一个变量。 下面是我用一款工具模拟用户发送消息给服务器的交互情况: (微信开发调试工具:http://api.huceo.com/weixin/debug/) 那么,怎么能拥有智能回复、人脸识别、微信点歌等等功能,这就需要借助第三方的API或者数据采集来实现,当开发者服务器接收到用户消息后,处理成符合对方API使用规则的请求,拿到JSON数据取出需要的内容经过一系列的处理返回给用户即可。 如下图所示某API接口笑话数据的示例(这是最简单的一种结构): 最后,这篇文章仅仅是让大家大概了解下微信公众号的开发流程。作为微信运营者,该如何使用微信的各种高级功能?如果你是真正想把微信自媒体做好的话,不好有没有技术,我的建议是用第三方平台。 毕竟一些知名的第三方平台都是公司团队在开发,各种营销功能丰富,安全稳定性方面也有保障,大家可自行百度一下。
作者:宇天行,链接:http://www.huceo.com/post/383.html
原文:http://www.cnblogs.com/chencanjian/p/5984093.html