云信令(原实时消息)RESTful API 仅支持 HTTPS 协议。
云信令(原实时消息)RESTful API 仅支持 HTTPS 协议。发送请求时,你需要提供 api_key:api_secret
通过 basic HTTP 认证并填入 HTTP 请求头部的 Authorization
字段。具体生成 Authorization
字段的方法请参考 RESTful API 认证。
你需要在发送 HTTP 请求时在 HTTP 请求头部的 x-agora-token
字段和 x-agora-uid
字段分别填入:
具体生成 x-agora-token
字段和 x-agora-uid
字段的方法请参考 RESTful API 认证。
所有的请求都发送给域名:api.agora.io
。
https://api.agora.io/dev/v2/project/<appid>
<appid>
是你的 RTM 项目使用的 App ID。所有的请求 URL 和请求包体内容都是区分大小写的。/rtm/users/<user_id>/peer_messages
通过服务端发送点对点消息。你不需要对发送消息的用户进行登录操作。
对于每个 App ID,发送点对点消息 API 和发送频道消息 API 的频率上限之和是 500 次每秒。
下图展示了应用服务端向 RTM SDK 发送点对点消息的流程。
wait_for_ack
参数设为 true
且接收端在线wait_for_ack
参数设为 false
此 API 需要在 URL 中传入以下参数。
参数 | 类型 | 描述 |
---|---|---|
user_id |
String | RTM 系统中发送点对点消息的用户 ID。最大长度为 64 个可见字符。不能是空字符串。以下为支持的字符集范围:
作为 URL 参数, user_id 开头和结尾的字符不能是空格。 |
此 API 需要传入以下查询参数。
参数 | 类型 | 描述 |
---|---|---|
wait_for_ack |
Boolean | (可选)此 API 是否等到声网 RTM 系统确认消息投递成功之后再返回响应。默认为 false 。
|
该 API 需要在请求包体中传入以下参数。
参数 | 类型 | 描述 |
---|---|---|
destination |
String | RTM 系统中接收点对点消息的用户 ID。最大长度为 64 个可见字符。不能是空字符串。以下为支持的字符集范围:
|
enable_offline_messaging |
Boolean | 自 RTM SDK 全平台 v1.5.0 开始,离线消息功能正式下线。旧版本 SDK 会继续支持该功能,已集成该功能的用户不受影响。 (可选)是否开启离线消息。默认值是 false 。
|
enable_historical_messaging |
Boolean | (暂不支持)(可选)是否保存为历史消息。默认值是 false 。
|
payload |
String | 点对点消息内容。不能为空字符串,长度最大 32 KB。 |
该 API 在响应包体中返回以下参数:
参数 | 类型 | 描述 |
---|---|---|
result |
String | 请求结果。
|
request_id |
String | 标识此次请求的唯一 ID。 |
code |
String | 消息发送状态。
|
请求 URL:
https://api.agora.io/dev/v2/project/876922cbca0098dff4323566daa89675/rtm/users/userA/peer_messages?wait_for_ack=true
Content-type
为 application/json;charset=utf-8
Authorization
可以是 Basic HTTP 认证或 Token 认证,生成方法请参考 RESTful API 认证。
请求包体内容
{
"destination": "userB",
"enable_offline_messaging": false,
"enable_historical_messaging": false,
"payload": "Hello"
}
消息已发送:
{
"code": "message_sent",
"result": "success",
"request_id": "123"
}
接收端已收到消息:
{
"code": "message_delivered",
"result": "success",
"request_id": "123"
}
接收端离线:
{
"code": "message_offline",
"request_id": "123"
}
/rtm/users/<user_id>/channel_messages
通过服务端发送频道消息。你不需要对发送消息的用户进行登录和加入频道操作。
对于每个 App ID,发送点对点消息 API 和发送频道消息 API 的频率上限之和是 500 次每秒。
此 API 需要在 URL 中传入以下参数。
参数 | 类型 | 描述 |
---|---|---|
user_id |
String | RTM 系统中发送频道消息的用户 ID。最大长度为 64 个可见字符。不能是空字符串。以下为支持的字符集范围:
作为 URL 参数, user_id 开头和结尾的字符不能是空格。 |
该 API 需要在请求包体中传入以下参数:
参数 | 类型 | 描述 |
---|---|---|
channel_name |
String | 接收频道消息的 RTM 频道名。最大长度为 64 个可见字符。不能是空字符串。以下为支持的字符集范围:
|
enable_historical_messaging |
Boolean | (可选)是否保存为历史消息。默认值是 false 。
|
payload |
String | 频道消息内容。不能为空字符串,长度最大 32 KB。 |
该 API 在响应包体中返回以下参数:
参数 | 类型 | 描述 |
---|---|---|
code |
String | 消息发送状态。"message_sent" : 消息已发送。 |
result |
String | 请求结果。
|
request_id |
String | 标识此次请求的唯一 ID。 |
请求 URL:
https://api.agora.io/dev/v2/project/876922cbca0098dff4323566daa89675/rtm/users/userA/channel_messages
Content-type
为 application/json;charset=utf-8
Authorization
可以是 Basic HTTP 认证或 Token 认证,生成方法请参考 RESTful API 认证。
请求包体内容
{
"channel_name":"channelA",
"enable_historical_messaging": false,
"payload": "Hello"
}
{
"code": "message sent",
"request_id": "123",
"result": "success"
}
状态码 | 描述 |
---|---|
200 | 请求成功。 |
400 | 请求参数错误,请根据返回提示检查。 |
401 | 用户权限错误。 |
408 | 服务器请求超时,建议稍后重试。 |
429 | 单位时间内请求过多。 |
500 | 服务器内部错误。 |