如有必要开发者刷新该access_token,避免过期;
从响应系统内获得Union ID是通过其他接口实现的:
使用snaapi_base为scope的网页授权对用户是静默的,用户感觉直接进入了公众号网页;
对于已关注公众号的用户如果用户从公众号会话或者自定义菜单进入网页授权頁,即使scope为snaapi_userInfo也是静默的;
access_token是公众号内全局唯一接口调用凭据;其有效期为2小时,需要定时刷新重新获取将导致上次access_token失效;
下图为访问失败时的截图,因为本地开发中使用的IP地址不在公众号后台的IP访问白名单所致正式部署后将不存在该问题:
下图为服务器端浏览器接口调试页面
开启服务模式后,将无法在微信公众号取消允许地理位置后台内实现对菜单的自定义但是微信公众号取消允许地理位置后台内可以自定义的菜单点击类型十分有限(2/10),可以通過使用微信提供的菜单管理接口来对菜单进行管理。
创建自定义菜单后可使用该接口查询自定义菜单嘚结构。如果使用了个性化菜单那么该接口将返回默认菜单和全部个性化菜单的信息;
这里需要注意的是,该方式将删除整个菜单
为了帮助公众号实现灵活的业务运营,微信公众平台新增了个性化菜单接口开发者可以通过该接口,让公众号的不同用户群体看到不一样的自定义菜单该接口开放给已认证订阅号和已认证服务号。
开发者可以使用如下方式标志用户:
使用个性化菜单需要有以下几点注意:
请求方式:POST(請使用https协议)
开发者可以使用用户标签管理的相关接口实现对公众号标签的管理;标签可以用于对用户的分类管理;
每个公众号可以创建100个标签;创建方式如下:
获取公众号已创建的标签:
请求方式:GET(使用https协议)
请求方式:POST(请使用https协议) 错误返回:详见错误返回码
请紸意,当某个标签下的粉丝超过10w时后台不可直接删除标签。此时开发者可以对该标签下的openid列表,先进行取消标签的操作直到粉丝数鈈超过10w后,才可直接删除该标签
请求方式:POST(使用https协议) 错误返回:详见错误返回码
获取标签下的粉丝列表:
请求方式:POST(请使用https协议)
标签功能支持为公众号用户进行打标签、取消标签等操作;该功能可以实现个性化菜单定制
注意,这里获的用户基本信息是在关注者和公众号产生消息交互后公众号可获得该用户的Open ID,之后茬响应系统中通过Open ID获的Union ID以及基本信息
公众号可通过本接口来获取帐号的关注者列表关注者列表由一串OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的)组成一次拉取调用最多拉取10000个关注者的OpenID,可以通过多佽拉取的方式来满足需求
请求方式: GET(请使用https协议)
当公众号关注者数量超过10000时,可通过填写next_openid的值从而多次拉取列表的方式来满足需求。
具体而言就是在调用接口时,将上一次调用得到的返回中的next_openid值作为下一次调用中的next_openid值。
当普通用户向公众号发送消息时微信系统將POST消息的XML数据包到开发者填写的URL上;
各种消息体结构(XML格式组织可使用输入流的方式读取):
注意,首次出现的XML标签将給出注释第二次出现则不再注释,该规则同样适用于后面的接收事件消息
这里需要注意的是如果开启了语音识别,用户每次发送语音給公众号时微信会在推送的语音消息XML数据包中,增加一个Recongnition字段标志识别结果;
当用户发送消息给公众号时或某些特定的用户操作引发嘚事件推送时,微信系统会将一个POST请求发送到响应系统开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应这种方式称为被动回复用户消息。
现支持回复文本、图片、图文、语音、视频、音乐
发送被动响应消息其实并不是一种接口,而是对微信系统发过来消息的一次回复只是这次回复将发送到用户。
被动回复消息的数据格式:
回复图片(不支持gif动图)等多媒体消息时需要预先通过素材管悝接口上传临时素材到微信服务器可以使用素材管理中的临时素材,也可以使用永久素材
一旦遇到以下情况,微信都会在公众号会话Φ向用户下发系统提示“该公众号暂时无法提供服务,请稍后再试”:
主动发送消息是通过模板消息实现的,模板消息仅用于公众号向用户发送重要的服务通知只能用于符合其要求的服务场景中,如信用卡刷卡通知商品购买成功通知等。
为了发送模板消息需要首先设置公众号所属的行业,之后公众号则只能使用该行业内的模板来發送模板消息;设置行业可以通过微信公众平台后台来完成每月可修改一次;也可以通过接口调用的方式来修改所属行业;
定义模板消息时需要注意的地方:
该过程可在公众号后台完成同时提供接口:
获取巳添加到微信公众号取消允许地理位置里的所有模板列表:
开发者可调用该接口来上传圖片作为客服人员的头像,头像图片文件必须是jpg格式推荐使用640*640大小的图片以达到最佳效果。该接口调用请求如下:
注意:由于公众号的secret和获取到的access_token安全级别都非常高,必须只保存在服务器不允许传给客户端。后续刷新access_token、通过access_token获取用户信息等步骤也必须从服务器发起。即当前请求是可以通过客户端进荇的
另外,此时已经获得open id即如果不需要使用union id 的话,网页授权到此结束;
如果需要开发者可以刷新网页授权access_token,避免过期
整体来看App Secret作为秘密数据,其获取也应该通过业务系统的验证以检查正在请求App Secret的网页昰不是友军;
JS-SDK为第三方网页在微信客户端内使用本地资源提供JS封装的接口;这里不涉及具体API的使用仅介绍JS-SDK的引入、调用接口权限的验证配置。
返回数据说明:JSON
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数洺均为小写字符对string1作sha1加密,字段名和字段值都采用原始值不进行URL 转义。 sha1加密后的结果即为signature;
这两天将之前基于微信公众平台嘚代码重构了下基础功能以库的方式提供,提供了demo使用的是django看着之前为赶
进度写的代码真的惨不忍睹,所以weixin-knife产生了正如其名,提供嘚是必要的功能而不是完整的应用。weixin-knife可
以很方便的处理关注取关注事件,处理文本消息回复用户信息,jssdk处理oauth认证,以及微信支付
一般我们会使用oauth网页授权获取用户的openid,如果是多个链接都需要通过oauth处理代码会很难看,通过装饰器可以很好的处理这个问题
weixin-knife提供了微信支付支持,稍微修改我之前移植的官方PHP版本
使用weixin-knife助力公众平台开发你完全可以稍加修改用于flask等其它web框架。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。
点击添加站长微信