代公众号调用接口¶
本模块提供了开放平台代公众号调用接口 API。进行公众号第三方平台开发的项目,可以从这里开始。
WeChatComponent¶
WeChatComponent的基本使用方法:
from wechatpy import WeChatComponent
component = WeChatComponent('app_id', 'app_secret', 'component_token', 'encoding_aes_key')
默认使用 wechatpy.session.memorystorage.MemoryStorage
缓存component的component_verify_ticket和授权码。通过component获取的公众号 client,也会使用component.session 作为缓存对象。
如果要使用外部的 session 对象,只要接口符合 wechatpy.session.SessionStorage
,都可以使用。只要增加 session=some_object
即可。
推荐使用外部的 session 对象,因为 wechatpy.session.memorystorage.MemoryStorage
暂不支持多线程操作。
此后,可以调用component的其它方法完成公众号的授权、令牌刷新、获取或者设置公众号信息等操作。
component_verify_ticket 的处理¶
收到微信服务器发送的推送请求之后,只要调用 cache_component_verify_ticket(self, msg, signature, timestamp, nonce)
即可恰当地缓存component_verify_ticket。
公众号 client 对象的获取¶
强烈建议使用component对象获取公众号 client。
当需要代公众号调用接口时:
- 将公众号 appid传入
component.get_client_by_appid()
。适用于已经授权的场景。
公众号的授权码和刷新码内部自动缓存。
操作公众号 API 的对象并非 WeChatClient
,但实现了同样的功能。在使用上相同:
client = component.get_client(appid, refresh_token, access_token)
menu_info = client.menu.get()
公众号的授权码和刷新码的更新¶
授权码和刷新码有效期为7200秒,需要在失效之前更新授权码。由于各个项目的差异性和复杂性,本项目并未实现更新逻辑,需要调用者根据项目来自己实现。在失效之前,只要调用 client.fetch_access_token() 即可刷新缓存,所以这个逻辑很简单。
-
class
wechatpy.component.
WeChatComponent
(component_appid, component_appsecret, component_token, encoding_aes_key, session=None, auto_retry=True)[源代码]¶ -
access_token
¶ WeChat component access token
-
fetch_access_token
()¶ 获取 component_access_token 详情请参考 https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list &t=resource/res_list&verify=1&id=open1419318587&token=&lang=zh_CN
返回: 返回的 JSON 数据包
获取授权方的账户信息
Params authorizer_appid: 授权方appid
拉取所有已授权的帐号信息
Params offset: 偏移位置/起始位置 Params count: 拉取数量
获取授权方的选项设置信息
Params authorizer_appid: 授权公众号appid Params option_name: 选项名称
-
get_client_by_appid
(authorizer_appid)[源代码]¶ 通过 authorizer_appid 获取 Client 对象
Params authorizer_appid: 授权公众号appid
-
parse_message
(msg, msg_signature, timestamp, nonce)[源代码]¶ 处理 wechat server 推送消息
Params msg: 加密内容 Params msg_signature: 消息签名 Params timestamp: 时间戳 Params nonce: 随机数
-
query_auth
(authorization_code)[源代码]¶ 使用授权码换取公众号的授权信息,同时储存token信息
Params authorization_code: 授权code,会在授权成功时返回给第三方平台,详见第三方平台授权流程说明
获取(刷新)授权公众号的令牌
Params authorizer_appid: 授权方appid Params authorizer_refresh_token: 授权方的刷新令牌
设置授权方的选项信息
Params authorizer_appid: 授权公众号appid Params option_name: 选项名称 Params option_value: 设置的选项值
-