订阅公众号之前回调

功能说明

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
客户端平台,取值请参见 第三方回调简介:回调协议 中 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:添加订阅者