订阅公众号之前回调
功能说明
App 后台可以通过该回调实时查看用户订阅公众号的请求,包括后台可以拦截用户订阅公众号的请求。
注意事项
要启用回调,必须配置回调 URL,并打开本条回调协议对应的开关,配置方法详细请参见 第三方回调配置 文档。
回调的方向是即时通信 IM 后台向 App 后台发起 HTTP POST 请求。
App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
其他安全相关事宜请参见 第三方回调简介:安全考虑 文档。
可能触发该回调的场景
App 用户通过客户端订阅公众号。
App 管理员通过 REST API 添加订阅者。
回调发生时机
用户订阅公众号之前。
接口说明
请求 URL 示例
以下示例中 App 配置的回调 URL 为
https://www.example.com
。
示例:https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform
请求参数说明
参数 | 说明 |
https | 请求协议为 HTTPS,请求方式为 POST。 |
www.example.com | 回调 URL。 |
SdkAppid | 创建应用时在即时通信 IM 控制台分配的 SDKAppID。 |
CallbackCommand | 固定为:OfficialAccount.CallbackBeforeAddSubscriber。 |
contenttype | 固定值为 JSON。 |
ClientIP | 客户端 IP,格式如:127.0.0.1。 |
OptPlatform |
请求包示例
{"CallbackCommand": "OfficialAccount.CallbackBeforeAddSubscriber","Official_Account": "@TOA#_test_for_penn","Operator_Account": "107867","SubscribeAccountList": [{"Subscriber_Account": "jared"},{"Subscriber_Account": "leckie"}],"EventTime": 1670574414123//毫秒级别,事件触发时间戳}
请求包字段说明
对象 | 介绍 | 功能 |
CallbackCommand | String | 回调命令。 |
Official_Account | String | 订阅的公众号用户 ID。 |
Operator_Account | String | 发起请求的操作者 UserID。 |
SubscribeAccountList | Array | 添加的订阅者列表。 |
EventTime | Integer | 事件触发的毫秒级别时间戳。 |
应答包示例
允许所有用户关注公众号
App 后台同意所有请求中所有用户关注公众号。
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0}
拦截部分用户订阅公众号
App 后台拒绝请求中的某些用户订阅公众号,在 RefusedMembers_Account 中返回这些 Identifier。
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"RefusedSubscribers_Account": [ // 拒绝加入的用户列表"jared"]}
应答包字段说明
字段 | 类型 | 属性 | 说明 |
ActionStatus | String | 必填 | 请求处理的结果: OK:表示处理成功 FAIL:表示失败 |
ErrorCode | Integer | 必填 | 错误码,0为允许继续添加请求(包括允许部分用户添加);1为拒绝该请求。 |
ErrorInfo | String | 必填 | 错误信息。 |
RefusedSubscribers_Account | Array | 选填 | 拒绝添加的用户 ID 集合。 |
参考
第三方回调简介
REST API:添加订阅者