Contract: IM 平台 extCreate(外部依赖)
方向: 平台后端 → IM 平台(出站调用)
用途: 为用户创建 IM 账号,获取 apiKey + userId
请求
POST {im.base-url}{im.create-path}
- 测试环境示例:
POST https://test-im.abtim-my.com/bot/extCreate
create-path 默认 /bot/extCreate
请求头
| Header |
值 |
来源 |
extToken |
92a88467-6eca-11f1-9dd5-00163e1eec55(测试) |
配置 im.ext-token |
请求体(JSON)
{ "nickName": "+88615287406952", "type": 0 }
nickName:昵称,由后端取用户 userName,无则取 phone(哪个有值用哪个)。
type:固定默认 0。
- Content-Type:
application/json。
配置项(application.yml 新增段)
# IM 即时沟通配置
im:
base-url: https://test-im.abtim-my.com # IM 平台根地址(正式环境另行配置)
ext-token: 92a88467-6eca-11f1-9dd5-00163e1eec55 # 平台级鉴权令牌
create-path: /bot/extCreate # 创建用户接口路径
timeout-ms: 5000 # 连接/读取超时(毫秒)
响应
{
"code": 200,
"message": "成功",
"data": {
"apiKey": "f7a49f9745114462a3333e5698aac9ae",
"userId": 2069305587785445400
}
}
| 字段 |
类型 |
说明 |
code |
int |
200 表示成功;非 200 视为失败 |
message |
String |
状态描述 |
data.apiKey |
String |
IM API 密钥(落库 im_api_key,返回 APP) |
data.userId |
long |
IM 用户ID(落库 im_user_id,转 String 返回 APP) |
处理规则
- 成功:
code == 200 且 data.apiKey、data.userId 均非空 → 取 data 落库并返回。
- 失败:
code != 200、data 缺字段、HTTP 非 2xx、超时、网络异常 → 抛异常,不写库,接口返回失败供 APP 重试。
- 幂等:调用前先查本地
info_user,已有 imApiKey 则不调用本接口,直接返回。