发送第一条消息
本文带你在 10 分钟内完成服务端接入:注册账号、创建应用、换取 App Token、创建两个用户,并以其中一个用户的身份给另一个发送一条单聊消息。全程只需要 curl。
准备
- 一个邮箱或手机号,用于注册控制台账号;
- 一台能访问接入地址的服务器或本机终端,安装了
curl。
第 1 步:注册控制台账号
打开控制台,用邮箱或手机号注册。注册时会同时创建你的租户,系统为它生成一个唯一的 org_name(如 1100250925),控制台顶部的租户选择框中显示为“租户名称(org_name)”。
第 2 步:创建应用
在控制台进入“应用”,点击“创建应用”,填写:
| 字段 | 示例 | 说明 |
|---|---|---|
| 应用名(app_name) | demo | 小写字母开头,由小写字母、数字和 - 组成,3 到 32 位,创建后不能修改 |
| 显示名称 | 演示应用 | 便于识别的名称 |
创建成功后,页面会显示:
- app_key:
org_name#app_name,如1100250925#demo,客户端登录时使用; - client_id 和 client_secret:服务端的凭据。client_secret 只显示这一次,请立即保存。
第 3 步:设置环境变量
在终端中设置以下变量,后面的命令和文档中的所有示例都会用到它们:
bash
export IM_API="https://api.example.com" # 接入地址
export ORG="1100250925" # 你的 org_name
export APP="demo" # 你的 app_name
export CLIENT_ID="YXA6MVMEOd4cqtAvTUnGUUCnTw"
export CLIENT_SECRET="YXA6sMvoBP0HiVoT-69b1BWXzip5_-Ii2ea8u0ph9ijVgck"第 4 步:换取 App Token
bash
curl -X POST "$IM_API/$ORG/$APP/token" \
-H "Content-Type: application/json" \
-d "{
\"grant_type\": \"client_credentials\",
\"client_id\": \"$CLIENT_ID\",
\"client_secret\": \"$CLIENT_SECRET\"
}"json
{
"access_token": "eyJhbGciOiJFZERTQSIsImtpZCI6ImsxIiwidHlwIjoiSldUIn0.eyJpc3Mi...",
"expires_in": 604800,
"application": "99579846509723648"
}把 access_token 保存到变量中:
bash
export APP_TOKEN="eyJhbGciOiJFZERTQSIsImtpZCI6ImsxIiwidHlwIjoiSldUIn0.eyJpc3Mi..."App Token 默认 7 天有效,在有效期内请复用它,详见鉴权与 App Token。
第 5 步:创建两个用户
bash
curl -X POST "$IM_API/$ORG/$APP/users" \
-H "Authorization: Bearer $APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "alice", "password": "Alice#2026x", "nickname": "Alice"}'
curl -X POST "$IM_API/$ORG/$APP/users" \
-H "Authorization: Bearer $APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": "bob", "password": "Bob#2026xx", "nickname": "Bob"}'每个请求返回 201 Created 和创建的用户:
json
{
"username": "alice",
"nickname": "Alice",
"avatar_url": "",
"attributes": {},
"status": "active",
"status_reason": null,
"disabled_by": null,
"disabled_until": null,
"has_password": true,
"created_via": "openapi",
"created_at": "2026-10-02T18:54:50.511Z",
"last_login_at": null,
"version": 1
}第 6 步:发送一条单聊消息
以 alice 的身份给 bob 发送一条文本消息。client_msg_id 由你生成,用于防止重试时重复发送:
bash
curl -X POST "$IM_API/$ORG/$APP/messages" \
-H "Authorization: Bearer $APP_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"from": "alice",
"to_user": "bob",
"type": "text",
"body": { "text": "你好,Bob!" },
"client_msg_id": "qs-0001"
}'返回 201 Created 和这条消息:
json
{
"conversation_id": "99582298709557248",
"conversation_type": "single",
"seq": 1,
"message_id": "99582298747305984",
"client_msg_id": "qs-0001",
"sender": "alice",
"sender_type": "user",
"recipient": "bob",
"type": "text",
"body": { "text": "你好,Bob!" },
"created_at": "2026-10-02T19:04:30.171Z",
"...": "其他字段见《消息格式》"
}如果 bob 此时在线,他的所有在线设备会立即收到这条消息;不在线时,下次登录后同步到。
第 7 步:查看 bob 的会话
bash
curl "$IM_API/$ORG/$APP/users/bob/conversations" \
-H "Authorization: Bearer $APP_TOKEN"bob 有了一个与 alice 的单聊会话,未读数为 1:
json
{
"items": [
{
"conversation_id": "99582298709557248",
"conversation_type": "single",
"peer": "alice",
"max_seq": 1,
"read_seq": 0,
"unread_count": 1,
"last_message_at": "2026-10-02T19:04:30.171Z",
"...": "其他字段见《会话与历史消息》"
}
],
"next_cursor": null
}恭喜,你已经完成了服务端接入的全部基本步骤。
下一步可以在网页中用 Web SDK 让 bob 登录,实时收到这条消息。
下一步
- 用 Go、Python 或 Node.js 开发服务端时,改用服务端 SDK,省去自己管理 App Token、重试和分页。
- 让你的用户在 App 中登录:用密码登录,或由服务端签发一次性登录凭证,见登录与登录设备。
- 了解接口的通用约定:接入概述、错误码、限流与应用状态。
- 管理好友和群组:好友、群组管理。
- 了解消息的类型和格式:消息格式;发送图片和文件前先上传文件。
- 接收 IM 服务的事件、在发消息前做业务校验:事件回调。
- 让不在线的用户收到通知:离线推送。
- 按业务需要调整应用的行为(如撤回时限、多端登录、只能给好友发消息):运行策略。
接入独立音视频频道
无需创建 IM 群的会议或语音房,请继续看加入第一个 RTC 频道:确认开通、服务端创建、给指定用户签票据、登录后加入与退出。
