最近有空玩了玩公众号,个人感觉公众号的生态控制的很不错,有闭有开,通过api接口可以让服务方接入较丰富的功能。虽然生态好,但各种限制也让人蛋碎,有意思的接口和玩法都要先做认证。
先来理解一下怎么接入吧。申请到公众号后,还需要做开发者认证,这个不难点点,按部就班。在开发者模式下需要配置你与微信对接的消息处理服务。微信会将开放的请求都转发到这个服务地址上。这个服务地址上GET和POST请求分别完成不同的微信消息处理,例如,关注/取消关注消息、文本消息等。无论是GET还是POST消息,微信都会带上加密签名、时间戳、随机数、随机字符串,通过排序sha1后,可以断定是否为微信服务器过来的消息。
在开发者模式下,微信界面的菜单事件、用户发送的各种消息都会转发到这里,并可以向用户返回微信支持的消息。如果是视频或音频的话则要先上传一微信服务器。
刚才说的都是被方式,也就是所有请求及响应都由微信用户发起,你无法主动的向关注公众号的用户发送消息(客气接口除外)。如果需要从微信服务器获取用户或管理公众号素材的话,则通过微信提供的api进行,其实也是一堆url,同样的GET和POST,万变不离其中。
关于access_token,这个是实时生成的,使用AppID和AppSecret调用接口来获取,目前有有效期是2小时。
大致的请求过程:1、微信--》2、腾讯服务器--》3、开发者服务器--》4、腾讯服务器--》5、微信,这么一个闭环的过程。1到3是请求的过程,3到5是响应的过程。开发都服务器5秒钟未响应,则腾讯服务器给微信返回“暂停服务。。。”的提示信息。
花了两三天时间,实现了个简单的对话功能,可以跟公众号查询天气,逗逗逼。可以扫下边的二维码体验一下。