首先我要分享的是,作为一个公众号开发者或者是团队管理者,我们可以用微信公号做哪些事情。这里不区分公众号还是服务号,从开发角度他们的功能是一样的。首先最基础的是用户和用户消息的功能,这个功能可以回复、接受用户的信息,让你的公众号转起来。同时你也可以根据相关接口获得用户的基本信息。
公众号开发服务端需要做的响应
上述一些功能中,大部分是需要服务端给出响应的。这里说几个基础的地方。
具体要求是:必须为80或者443接口,填写的URL需要正确响应微信发送的Token验证。验证成功以后,我们就可以使用微信的一些接口来实现功能了,Token验证基本上没有坑,如果遇到了错误,需要仔细检查signature的加密公众号开发参数和加密方式。
1、获取access_token 这是整个微信开发过程中,最基本的一个接口,所有的接口调用都要带有access_token,所以在开发过程中,access_token是需要做一个全局缓存的,特别是多服务器多进程的情况下,access_token的最佳时间是存在redis这种缓存服务器中,过期时间7198秒,每次调用接口以前检查access_token是否缓存存在,存在就使用,不存在就获取。在实际开发中,access_token会是一个比较复杂的机制,因为还是会有异常情况导致access_token本身失效,所以要有一个熔断的机制保证当时那次请求不会因为access_token失效而失败。
2、响应用户消息和主动发消息的区别。
这里算是第一个坑,响应用户消息的概念是,当你收到用户的消息后,服务端做出的一个即时返回。主动发消息的概念是,你可以在用户和你交互的48小时内,主动给用户发送消息。虽然这两个消息的发送时间不一样,并且实际能发的内容和消息种类是一模一样的,但是,这两个消息的结构是一点都不一样的,响应消息的数据格式是xml,主动消息的数据格式是json。必须注意的是,xml格式的响应消息,文本类型的字段必须加上 <![CDATA[] 标签,不然就会悲剧,另外,他的命名是个奇葩,有些节点用的全部小写字母,有些节点用首字母大写。
3、公众号开发事件响应中的坑
比较坑的是:a、发送地理位置事件,如果你回复的内容不对的话,他会不停的在用户端弹出 “公众号请求地理位置权限” 的对话框,体验差到极点。
b、发过来的消息报文里只有用户的id,没有用户相关信息,如果你想和用户绑定的话,需要自己调用用户查询接口才能和实际用户做对应。
4、公众号开发用户关注事件中的坑
5、公众号开发微信多客服中的坑
微信多客服已经是第二版的产品了,但是他的坑依然很多,很多很多。

