接收服务端回调
服务端回调概述
即时通讯业务提供以下服务端回调,支持将业务的数据、状态通知同步到您设置的回调地址。所有服务端回调均需要在控制台启用。
您可以访问以下文档,了解如何在控制台配置并启用回调,以及如何解析回调数据:
- 用户在线状态:实时将用户状态同步到设置的 App 服务器地址。
- 用户注销与激活状态回调: 在注销用户、重新激活用户 ID 操作完成时将处理结果同步到设置的 App 服务器地址。
- 全量消息路由:实时将消息同步到设置的 App 服务器地址。
- 消息回调服务:将符合自定义条件的消息实时抄送至设置的 App 服务器地址,并根据 App 服务器响应结果决定是否发送给目标用户。
- 聊天室房间状态同步:将聊天室发生的状态变化,实时同步到设置的 App 服务器。
- 聊天室房间属性同步(KV):将聊天室发生的自定义属性变化,实时同步到设置的 App 服务器。
- 审核结果回调:将 IM & 音视频审核 的审核结果实时同步到设置的 App 服务器地址。
设置 IP 白名单
如果您的网络有 IP 访问限制,请务必将以下 IP 地址加入到白名单中,否则无法正常接收服务端回调。
- 国内数据中心: 39.105.128.42、39.105.147.30、123.56.88.42、182.92.215.38、182.92.84.148、39.106.150.151、39.107.75.101、101.201.34.95、39.106.2.63、101.200.62.251、47.93.57.144(控制台)
- 海外数据中心:52.221.93.74(新加坡)、8.219.168.45(新加坡)、8.219.93.148(新加坡)、8.219.215.35(新加坡)、8.219.43.97(新加坡)、47.245.124.194(新加坡)、8.222.167.17(新加坡)、 8.222.202.67(新加坡)、52.41.206.152(北美)、8.213.17.80(沙特)、8.213.16.171(沙特)、8.213.28.96(沙特)
提示
以下 IP 地址已不再使用。如果 您的 IP 白名单中已添加以下地址,请移除。 120.92.12.217、120.92.12.60、120.92.12.253、120.92.12.113、120.92.12.29、120.92.12.214、120.92.12.164、120.92.12.153、120.92.12.204、120.92.12.138、120.92.13.82、120.92.13.83、120.92.13.84、120.92.13.85、120.131.13.147、117.50.18.131、106.75.117.2、47.94.106.191
验证回调签名
即时通讯服务向应用服务器推送数据时会添加 4 个 POST 请求参数。
- 路径参数(签名参数在 POST 请求 URL 中):用户在线状态、全量消息路由、聊天室房间状态同步、消息回调服务、聊天室属性同步(KV)、用户注销与激活状态回调
- HTTP 标头(签名参数在 HTTP 请求头中):审核结果回调
参数名 | 类型 | 说明 |
---|---|---|
appKey | String | 应用和环境的 App Key,可从控制台获取。 例外:消息回调服务 的 POST 请求路径中不含该参数,您可以使用回调请求正文中的 appKey 字段。 |
nonce | String | 随机数,不超过 18 个字符。 |
timestamp | String | 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数。 |
signature (数据签名) | String | 数据签名。将系统分配的 App Secret、Nonce (随机数)、Timestamp (时间戳)三个字符串按顺序拼接成一个字符串,进行 SHA1 哈希计算。 |
计算 Signature 代码示例
PHP 语言的代码示例:
$appSecret = 'your-own-app-secret'; // 请替换为您从开发者平台获取的 App Secret。
$nonce = $_GET['nonce']; // 获取随机数。
$timestamp = $_GET['timestamp']; // 获取时间戳。
$signature = $_GET['signature']; // 获取数据签名。
$local_signature = sha1($appSecret.$nonce.$timestamp); // 生成本地签名。
if(strcmp($signature, $local_signature)===0){
// TODO: 此处添加业务逻辑。
echo 'OK';
} else {
echo 'Error';
}