更新时间: 2021-03-01

# 实现方法

# 普通消息发送

请求地址: https://数据中心域名/message/chatroom/publish.json

请求方法: POST

发送频率: 通过 Server API 单个应用每秒钟限 100 条,同时向 10 个聊天室发送消息视为 10 条,可在开发者后台 (opens new window)调整发送频率。

签名规则: 所有请求融云服务端 API 接口的请求均需要进行规则校验,详细请参考 通用 API 接口签名规则

输入参数:

参数 类型 必传 说明
fromUserId String 发送人用户 Id。
toChatroomId String 接收聊天室 Id,提供多个本参数可以实现向多个聊天室发送消息,建议最多不超过 10 个聊天室。
objectName String 消息类型,可自定义消息类型,长度不超过 32 个字符,在自定义消息时需要注意,不要以 "RC:" 开头,以避免与融云系统内置消息的 ObjectName 重名。
content String 发送消息内容,单条消息最大 128k,内置消息以 JSON 方式进行数据序列化,消息中可选择是否携带用户信息,详见消息结构示例;如果 objectName 为自定义消息类型,该参数可自定义格式,不限于 JSON。
isPersisted Int 开通“聊天室消息云存储”服务情况下,针对融云服务端历史消息中是否存储此条消息,0 表示为不存储、 1 表示为存储,默认为 1 存储消息。客户端发送自定义消息时则根据消息注册的 ISPERSISTED 标识判断是否在服务端存储。
isIncludeSender Int 发送用户自己是否接收消息,0 表示为不接收,1 表示为接收,默认为 0 不接收,只有向一个聊天室发送消息时此参数有效。如开通了聊天室消息云存储功能,不为 1 时该消息不会存储到历史消息中。

返回结果:

返回值 返回类型 说明
code Int 返回码,200 为正常。

示例代码:

Request:

POST /message/chatroom/publish.json HTTP/1.1
Host: api-cn.ronghub.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&toChatroomId=2192&toChatroomId=2193&objectName=RC:TxtMsg
已复制
1
2
3
4
5
6
7
8
9

Response:

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

{"code":200}
已复制
1
2
3
4
# 广播消息

说明: 向应用中的所有聊天室发送一条消息,当时在聊天室中的用户可以收到此条消息,之后加入的用户不会收到此消息,如需要使用此功能,开发者可在开发者后台IM 商用版-增值服务 (opens new window)中开通,不支持通过此功能向聊天室发送消息来维护聊天室存活。

请求地址: https://数据中心域名/message/chatroom/broadcast.json

请求方法: POST

发送频率: 单个应用每秒最多调用 1 次。

签名规则: 所有请求融云服务端 API 接口的请求均需要进行规则校验,详细请参考 通用 API 接口签名规则

输入参数:

参数 类型 必传 说明
fromUserId String 发送人用户 Id。
objectName String 消息类型,可自定义消息类型,长度不超过 32 个字符,在自定义消息时需要注意,不要以 "RC:" 开头,以避免与融云系统内置消息的 ObjectName 重名。
content String 发送消息内容,单条消息最大 128k,内置消息以 JSON 方式进行数据序列化,消息中可选择是否携带用户信息,详见消息结构示例;如果 objectName 为自定义消息类型,该参数可自定义格式,不限于 JSON。
isIncludeSender Int 发送用户自己是否接收消息,0 表示为不接收,1 表示为接收,默认为 0 不接收,只有向一个聊天室发送消息时此参数有效。如开通了聊天室消息云存储功能,不为 1 时该消息不会存储到历史消息中。

返回结果:

返回值 返回类型 说明
code Int 返回码,200 为正常。

示例代码:

Request:

POST /message/chatroom/broadcast.json HTTP/1.1
Host: api-cn.ronghub.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&objectName=RC:TxtMsg
已复制
1
2
3
4
5
6
7
8
9

Response:

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

{"code":200}
已复制
1
2
3
4
# 自定义消息发送

通过 Server API 发送消息,都支持发送自定义消息,开发者需要定义消息的 ObjectName 消息类型,需要注意,不要以 "RC:" 开头,以避免与融云系统内置消息的 ObjectName 重名,同时 content 设置为自己需要的消息结构即可。

1、当 objectName 为自定义消息类型时,需要终端 SDK 对此消息类型进行注册并自行进行解析呈现。

2、pushContent 为自定义消息显示的 Push 内容,如果不传则用户不会收到 Push 通知。

# 消息结构示例

通过 Server API 发送的消息,消息体为 JSON 结构,以下为融云内置消息类型说明:

# 内容类消息

融云内置了一些内容类消息

消息类型 ObjectName
[文字消息] RC:TxtMsg
[语音消息] 旧消息类型 RC:VcMsg,新消息类型 RC:HQVCMsg
[图片消息] RC:ImgMsg
[GIF 图片消息] RC:GIFMsg
[图文消息] RC:ImgTextMsg
[文件消息] RC:FileMsg
[位置消息] RC:LBSMsg
[小视频消息] RC:SightMsg
[引用消息] RC:ReferenceMsg
[合并转发消息] RC:CombineMsg

内容类消息具体明细,请参考:消息类型-内容类消息文档

# 提示小灰条消息
ObjectName 存储属性 计数属性 离线属性 推送属性 推送内容
RC:InfoNtf 存储 不计数 存储 不推送

消息结构:

发送小灰条消息时 content 参数的 JSON 结构如下:

{
  "message":"请在聊天中注意人身财产安全",
  "extra":""
}
已复制
1
2
3
4

属性说明:

名称 类型 必传 说明
message String 提示条消息内容。
extra String 扩展信息,可以放置任意的数据内容,也可以去掉此属性。
# 资料变更通知消息
ObjectName 存储属性 计数属性 离线属性 推送属性 推送内容
RC:ProfileNtf 存储 不计数 存储 不推送

消息结构:

发送用户资料变更消息时 content 参数的 JSON 结构如下:

{
  "operation":"Update",
  "data":"{\"nickname\":\"韩梅梅\", \"hometown\":\"beijing\"}",
  "extra":""
}
已复制
1
2
3
4
5

属性说明:

名称 类型 必传 说明
operation String 资料通知操作,可以自行定义。
data String 操作的数据。
extra String 扩展信息,可以放置任意的数据内容,也可以去掉此属性。
# 命令消息
ObjectName 存储属性 计数属性 离线属性 推送属性 推送内容
RC:CmdMsg 不存储 不计数 存储 不推送

消息结构:

运营平台向终端发送指令信息时可使用此命令消息,消息中 content 参数的 JSON 结构如下:

{
  "name":"AtPerson",
  "data":"{\"sourceId\":\"9527\"}"
}
已复制
1
2
3
4

属性说明:

名称 类型 必传 说明
name String 命令名称,可以自行定义。
data String 命令的内容。

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助