标准接入流程(5 步)
1
应用注册
在 IM 开放平台提交应用信息、回调域名与申请 scope,等待平台审核。
2
发放凭证
审核通过后发放 appId + appSecret,登记 scope(应用级授权)。
3
用户授权
引导用户 OAuth 授权指定 scope(用户级授权)。
4
用户同步
OAuth userinfo 拉取 + UserProfileChanged 事件订阅(授权范围内)。
5
业务打通
第三方用自身业务闭环,经 IM 入口/消息触达用户;解绑/撤销即断开。
应用信息
| 字段 | 说明 |
|---|---|
appId | 平台审核通过后发放的唯一应用标识 |
appName | 应用名称 |
callbackUrl | OAuth 回调地址(HTTPS) |
appType | 应用类型 |
scope | 申请的授权范围(最小授权) |
status | PENDING / APPROVED / SUSPENDED |
授权流程
OAuth 2.0 Authorization Code + PKCE,两层授权:
- 应用级授权(接入即授权):应用审核通过即获得 appId + appSecret,并登记 scope。
- 用户级授权(OAuth):第三方引导用户授权指定 scope。
时序:
第三方 App / Third-party App ──GET /oauth/authorize?appId&scope&redirect_uri──▶ IM
IM ──用户授权页 / Auth page──▶ 用户确认 / User confirms
用户确认 / User confirms ──▶ IM 重定向 / redirects to redirect_uri?code=...
第三方 App / Third-party App ──POST /oauth/token (code + PKCE verifier)──▶ IM
IM ──{ access_token, refresh_token, expires_in }──▶ 第三方 / Third-party
第三方 App / Third-party App ──GET /oauth/userinfo (Authorization: Bearer token)──▶ IM
标准接口清单
| 方法与路径 | 说明 |
|---|---|
POST /open/applications | 应用注册申请 |
GET /open/applications/{appId} | 应用信息查询(平台审核) |
PUT /open/applications/{appId} | 应用信息/scope 管理 |
GET /oauth/authorize | 用户授权页 |
POST /oauth/token | code 换 token + userinfo |
GET /oauth/userinfo | 授权范围内用户资料 |
POST /open/applications/{appId}/revoke | 撤销应用/用户授权 |
scope 说明(最小授权)
| scope | 说明 |
|---|---|
profile.basic | 昵称 / 头像 |
profile.phone | 手机号(脱敏) |
notify | 站内信 / 推送 |
用户同步
- 拉取(Pull):GET /oauth/userinfo(授权范围内)。
- 订阅(Subscribe):UserProfileChanged 事件(topic 见 OpenAPI / AsyncAPI 契约)。
- 同步内容仅限授权范围(昵称 / 头像 / 手机号脱敏);不共享 IM 聊天 / 好友 / 群组数据。
- 解绑 / 撤销:第三方业务数据保留,仅移除 IM 登录 / 触达方式。
安全规范
- appSecret 加密托管,不落明文,只签发应用 token。
- scope 最小授权 + 授权版本;撤销 / 解绑即失效。
- 审计:授权 / 撤销 / 同步 / 触达均记审计;日志脱敏。
验收清单
- 模拟第三方系统按 5 步流程完成授权 / 同步 / 业务打通 / 撤销全链路。
- appSecret 不落明文;撤销后 token / userinfo / 事件均失效。
- 第三方系统在 IM 不可用时仍独立闭环运行。
SDK 与示例:
SDK 与接入示例将在开放平台上线时提供下载;当前可参考仓库内接入文档。