跳到主要内容

发送单聊状态消息

应用下的用户可向其他用户发送单聊状态消息。通过该接口发送的消息,仅收件人在线时可收到。如收件人当前不在线,则无法再收到此条消息。

  • 通过该接口发送的消息,默认不会向消息发件人客户端同步。如需同步,请参见 isIncludeSender 参数用法。
  • 单次最多向 1000 个用户发送消息。

关于单聊状态消息

服务端提供单聊状态消息接口 /statusmessage/private/publish.json。任何类型的消息,只要通过该接口发送,均具有以下特点:

  • 只有收件人用户在线时会收到此条消息。
  • 在服务端不计数、不存储。因此,如果接收者当前未在线,则不会再收到此条消息,也无法从服务端的历史消息中获取该消息。
  • 默认不支持全量消息路由

移动端在接收该接口发送的消息时,与处理其他群聊会话消息的方式一致,会根据消息类型本身的存储、计数属性决定是否计入未读消息数、是否进行本地存储。如需了解即时通讯服务预定义的消息类型的存储、计数属性,可参见消息类型概述。如果发送的是您自定义的消息类型,需要关注该自定义消息类型在客户端的具体计数属性与存储属性定义。

请求方法

POST: https://数据中心域名/statusmessage/private/publish.json

频率限制: 每分钟限发送 6000 条信息,每次可发送目标用户上限为 1000 人。请注意,如果一次发送给 1000 人,视为 1000 条消息。

签名规则: 所有服务端 API 请求均需要进行规则校验,详见 API 请求签名

正文参数

HTTP 请求正文数据格式为 application/x-www-form-urlencoded,支持以下 HTTP 表单参数:

参数类型必传说明
fromUserIdString发送人用户 ID。
toUserIdString接收用户 ID,支持向多人发送消息,每次上限为 1000 人。
objectNameString消息类型,接受内置消息类型(见消息类型概述)或自定义消息的消息类型值。

注意:在自定义消息时,消息类型不可以 "RC:" 开头,以免与系统内置消息类型重名;消息类型长度不可超过 32 个字符。SDK 中必须已注册过该自定义消息,否则 SDK 收到该消息后将无法解析。
contentString所发送消息的内容,单条消息最大 128k。
  • 内置消息类型:将消息内容体 JSON 对象序列化为 JSON 字符串传入。消息内容 JSON 结构体详见用户内容类消息格式或其他内置消息类型的消息内容格式。

    例如,文本消息内容 JSON 结构体内部包含 content 字段(此为 JSON 结构体内的 key 值,注意区分),则需要将 {"content":"Hello world!"} 序列化后的结果作为此处 content 字段的值。

  • 自定义消息类型objectName 字段必须指定为自定义消息类型):如果发送自定义消息,该参数可自定义格式,不限于 JSON。
verifyBlacklistInt是否过滤发送人黑名单列表,0 表示为不过滤、 1 表示为过滤,默认为 0 不过滤。
isIncludeSenderInt是否向发件人客户端同步已发消息。1 表示同步,默认值为 0,即不同步。注意,该接口用于发送状态消息,因此仅支持在发件人已登陆客户端(在线)的情况下同步已发消息。

请求示例

POST /statusmessage/private/publish.json HTTP/1.1
Host: api.rong-api.com
App-Key: uwd1c0sxdlx2
Timestamp: 1585127132438
Nonce: 14314
Signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/x-www-form-urlencoded

content=%7B%22content%22%3A%22hello%22%2C%22extra%22%3A%22helloExtra%22%7D&fromUserId=2191&toUserId=2191&toUserId=2192&objectName=RC:TxtMsg

返回结果

HTTP 响应正文包含具有以下结构的 JSON 对象:

返回值返回类型说明
codeNumber返回码,200 为正常。
messageUIDsArray返回 messageUID 列表
messageUIDs[i].userIdString接收方用户 ID, 和请求 toUserId 对应
messageUIDs[i].messageUIDString发送给对应接收方的消息的唯一 ID

返回结果示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
"code": 200,
"messageUIDs": [
{
"userId": "2193",
"messageUID": "XXXX-JJJJ-KKK-LLLL"
},
{
"userId": "2192",
"messageUID": "XXXX-JJJJ-KKK-LLKL"
}
]
}