服务端集成
服务端集成分三步:你的 App Server 用 App-Key/App-Secret 调用 IM Server 的 Open API;客户端登录后凭 Token 连接 IM Server;IM Server 通过回调把事件推回你的 App Server。
交互流程
核心概念
| 概念 | 说明 | 文档 |
|---|---|---|
| 请求签名 | App-Key + Nonce + Timestamp + SHA1 签名 | 鉴权与签名 |
| 数据格式 | 支持 application/x-www-form-urlencoded 与 application/json | 数据格式 |
| 域名 | 私有化部署域名,建议 HTTPS | 域名 |
| 状态码 | 统一错误码 + HTTP 状态映射 | 状态码 |
| 服务端回调 | 事件签名校验、重试与投递日志 | 回调服务 |
| 限频 | 接口级 QPS 与容量限制 | 限频与限制 |
快速入门
- 创建应用,获取 App-Key / App-Secret
登录控制台 → 应用管理 → 创建应用;App-Key 用于标识应用,App-Secret 仅服务端持有。
- 注册用户并签发 Token
调用 POST /user/register 注册用户,再调用 签发 Token(或使用内置的 token 接口),把 Token 下发给客户端。
- 调用第一个业务接口
例如创建群组 POST /group/create;请求头带上签名,响应 code=0 表示成功。
- 配置回调地址
在控制台配置回调 URL,选择需要的事件;使用签名校验请求来源,并保证幂等。
- 接入监控与告警
控制台提供请求量、错误码、回调投递成功率;可导出到你的监控系统。
第一个请求
APP_KEY=YOUR_APP_KEY
APP_SECRET=YOUR_APP_SECRET
NONCE=$(openssl rand -hex 16)
TS=$(date +%s%3N)
SIG=$(printf "%s" "$APP_SECRET$NONCE$TS" | openssl sha1 | awk '{print $2}')
curl -sS https://im.example.com/open/api/v1/user/register \
-H "Content-Type: application/json" \
-H "App-Key: $APP_KEY" -H "Nonce: $NONCE" -H "Timestamp: $TS" -H "Signature: $SIG" \
-d '{"userId":"user1","name":"Alice"}'import { createHash, randomBytes } from 'node:crypto';
const nonce = randomBytes(16).toString('hex');
const timestamp = String(Date.now());
const signature = createHash('sha1').update(APP_SECRET + nonce + timestamp).digest('hex');
const res = await fetch('https://im.example.com/open/api/v1/user/register', {
method: 'POST',
headers: {
'content-type': 'application/json',
'App-Key': APP_KEY, Nonce: nonce, Timestamp: timestamp, Signature: signature,
},
body: JSON.stringify({ userId: 'user1', name: 'Alice' }),
});
console.log(await res.json());{
"code": 0,
"data": { "userId": "user1", "name": "Alice", "createdAt": 1700000000000 },
"requestId": "req_7f3c2a"
}