概述
当事件(Event)发生时,开放平台会通过 https post 的方式将事件推送到开发者配置好的回调地址。通过 Webhooks 机制可以方便开发者第一时间获取到关注的事件变化,减少轮询调用带来的流量和 Quota 的消耗。
用户授权
webhook 是用户事件触发反向通知的机制,所以首先确保用户已经授权了该事件对应的 scope
回调地址校验
在管理中心 Webhooks 页填写你要配置的请求网址。完成请求网址编辑后,点击保存按钮时,开放平台会向你配置的网址推送一个 application/json 格式的 POST 请求, 该请求用于验证你配置的网址的合法性。 通过开放平台验证的请求网址才能配置成功,请求网址配置成功后,你才可以进一步订阅你的应用关心的事件。
开放平台发送的验证请求示例:
{
"event": "verify_webhook",
"client_key": "",
"content": {
"challenge": 12345
}
}
当你收到开放平台 POST 验证请求时,你需要解析出 challenge 值,并立即返回该 challenge 值作为响应。
需要注意:返回内容需要放入 ResponseBody 里,不能直接返回;并且返回内容为 text 格式的 json 数据。
{
"challenge": 12345
}
事件订阅
开发者可通过管理中心或事件管理 openapi订阅需要通知的事件,注意:需要在管理中心打开该事件的订阅才可收到通知。
如果开发者服务器长时间未响应事件推送请求,可能会取消开发者的订阅状态,开发者需重新订阅
重试机制
抖音服务器会 POST 消息到开发者的 Callback 域名,连接超过 5s 会自动断开,共重试 3 次
用户可通过请求头中的 Msg-Id 进行去重
消息来源验证
用户可通过请求 header 中的 X-Douyin-Signature 字段判断该消息是否来自抖音开放平台。 抖音服务端会将应用的(client secret + 消息体)使用 sha1 哈希作为 X-Douyin-Signature header 的 value。您可以自行使用 client secret 和收到的消息体进行 sha1 哈希,与该请求头进行比对。