返回介绍

代公众号调用接口

发布于 2023-06-27 19:35:15 字数 7265 浏览 0 评论 0 收藏 0

本模块提供了开放平台代公众号调用接口 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。

当需要代公众号调用接口时,有两种方法:

  • 将授权码传给 component.get_client_by_authorization_code() ,可以直接获取操作公众号 API 的对象。适用于刚刚获得授权的场景。

  • 将公众号 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)[源代码]
property access_token

WeChat component access token

cache_component_verify_ticket(msg, signature, timestamp, nonce)[源代码]

处理 wechat server 推送的 component_verify_ticket消息

Params msg

加密内容

Params signature

消息签名

Params timestamp

时间戳

Params nonce

随机数

create_preauthcode()[源代码]

获取预授权码

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 数据包

get_authorizer_info(authorizer_appid)[源代码]

获取授权方的账户信息

Params authorizer_appid

授权方appid

get_authorizer_list(offset=0, count=500)[源代码]

拉取所有已授权的帐号信息

Params offset

偏移位置/起始位置

Params count

拉取数量

get_authorizer_option(authorizer_appid, option_name)[源代码]

获取授权方的选项设置信息

Params authorizer_appid

授权公众号appid

Params option_name

选项名称

get_client_by_appid(authorizer_appid)[源代码]

通过 authorizer_appid 获取 Client 对象

Params authorizer_appid

授权公众号appid

get_client_by_authorization_code(authorization_code)[源代码]

通过授权码直接获取 Client 对象

Params authorization_code

授权code,会在授权成功时返回给第三方平台,详见第三方平台授权流程说明

get_component_oauth(authorizer_appid)[源代码]

代公众号 OAuth 网页授权

Params authorizer_appid

授权公众号appid

get_pre_auth_url_m(redirect_uri)[源代码]

快速获取pre auth url,可以直接微信中发送该链接,直接授权

get_unauthorized(msg, signature, timestamp, nonce)[源代码]

处理取消授权通知

Params msg

加密内容

Params signature

消息签名

Params timestamp

时间戳

Params nonce

随机数

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,会在授权成功时返回给第三方平台,详见第三方平台授权流程说明

refresh_authorizer_token(authorizer_appid, authorizer_refresh_token)[源代码]

获取(刷新)授权公众号的令牌

Params authorizer_appid

授权方appid

Params authorizer_refresh_token

授权方的刷新令牌

set_authorizer_option(authorizer_appid, option_name, option_value)[源代码]

设置授权方的选项信息

Params authorizer_appid

授权公众号appid

Params option_name

选项名称

Params option_value

设置的选项值

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文