更新时间: 2021-03-08
# 功能描述
1、支持将单聊、讨论组、群组、聊天室、客服的消息数据同步到开发者应用服务器。 该服务需要开通 IM 商用版 (opens new window)后才有使用。
2、调用 Server API 接口发送的消息,默认不会通过消息路由服务,如果需要路由可在开发者后台免费基础功能 (opens new window)中开通,需要注意开通后广播消息也不进行消息路由。
3、默认消息中包含屏蔽敏感词时,不会同步到应用服务器,如果含有替换敏感词时,会将消息中的敏感词替换成设置的内容同步到应用服务器。如需要将含有屏蔽敏感词的消息也路由到应用服务器,可在提交工单申请开通。
4、路由的消息为图片、视频类消息时,开发者如果需要获取图片、视频等文件信息,可通过地址进行下载,融云文件存储有效期为 6 个月。
如果公司网络有 IP 访问限制需要将以下 IP 地址加入到白名单中,才可以使用消息路由服务:
国内数据中心:
120.92.12.217、120.92.12.60、120.92.12.253、120.92.12.113、120.92.12.29、120.92.12.214、120.92.12.164、120.92.12.153、120.92.12.204、120.92.12.138、120.92.13.82、120.92.13.83、120.92.13.84、120.92.13.85、120.131.13.147
海外数据中心:
52.221.93.74
# 使用场景
存储聊天记录:可通过开启此服务,实时同步用户发送的消息至应用服务器,由应用服务器进行存储。
数据迁移:实现第三方通讯云服务到融云的平滑迁移,您的新客户端(集成融云 SDK)向老客户端(即集成原第三方 SDK)发送消息时,融云会通过消息路由服务调用原第三方的相应服务端接口,实现向指定老客户端(即集成原第三方 SDK)用户发送消息。详细请查看如何实现第三方通讯云服务到融云的平滑迁移。
# 参数说明
参数 | 类型 | 说明 |
---|---|---|
fromUserId | String | 发送用户 Id。 |
toUserId | String | 目标 Id,即为客户端 targetId,根据会话类型 channelType 的不同,可能为二人会话 Id、群聊 Id、聊天室 Id、客服 Id 等。 |
objectName | String | 消息类型,文本消息 RC:TxtMsg 、 图片消息 RC:ImgMsg 、语音消息 RC:VcMsg 、图文消息 RC:ImgTextMsg 、位置消息 RC:LBSMsg 、添加联系人消息 RC:ContactNtf 、提示条通知消息 RC:InfoNtf 、资料通知消息 RC:ProfileNtf 、通用命令通知消息 RC:CmdNtf ,详细请参见消息类型说明文档。 |
content | String | 发送消息内容,参考融云消息类型说明 |
channelType | String | 会话类型,二人会话是 PERSON 、讨论组会话是 PERSONS 、群组会话是 GROUP 、聊天室会话是 TEMPGROUP 、客服会话是 CUSTOMERSERVICE 、 系统通知是 NOTIFY 、应用公众服务是 MC 、公众服务是 MP 。对应客户端 SDK 中 ConversationType 类型,二人会话是 1 、讨论组会话是 2 、群组会话是 3 、聊天室会话是 4 、客服会话是 5 、 系统通知是 6 、应用公众服务是 7 、公众服务是 8。 |
msgTimestamp | String | 服务端收到客户端发送消息时的服务器时间(1970年到现在的毫秒数)。 |
msgUID | String | 可通过 msgUID 确定消息唯一。 |
sensitiveType | Int | 消息中是否含有敏感信息,0 为不包含,1 为含有屏蔽敏感词,2 为含有替换敏感词。消息路由功能默认含有屏蔽敏感词的消息不进行路由,可提交工单开通含有敏感词的消息路由功能,未开通情况下 sensitiveType 值默认为 0 不代表任何意义。开通后可通过该属性判断文本消息中是否含有敏感词,图片、语言消息审核不通过时标识为 1。目前支持单聊、群聊、聊天室会话类型,其他会话类型默认为 0 ,开通后含有屏蔽敏感词的消息也不会进行下发,只会进行消息路由。 |
source | String | 标识消息的发送源头,包括:iOS、Android、Websocket、MiniProgram(小程序)、PC、Server(通过 Server API 发送,需要开通 Server API 发送消息进行消息路由功能)。目前支持单聊、群聊会话类型,其他会话类型为空。 |
groupUserIds | String[] | channelType 为 GROUP 时此参数有效,显示为群组中指定接收消息的用户 ID 数组,该条消息为群组定向消息。非定向消息时内容为空,如指定的用户不在群组中内容也为空。 |
同步消息时需要服务提供应答 200,收到应答后表示消息同步成功,如果应答超时 5 秒,融云会再尝试推送 2 次,如果仍然失败,融云将不再推送此消息,如短时间内有大面积超时,将暂停推送,1 分钟后会继续推送。
# 请求示例
为了验证数据有效性并确保调用者为融云 Server,每个请求前添加数据签名,详细参见 API 接收签名规则,签名信息参数在接收地址的 URL 上提供。
假设开发者注册的接收地址:http://example.com/receive_message.php
请求方法: POST
Request:
POST /receive_message.php?signTimestamp=1408710653491&nonce=14314&signature=45beb7cc7307889a8e711219a47b7cf6a5b000e8 HTTP/1.1 Host: example.com Content-Type: application/x-www-form-urlencoded User-Agent: RongCloud/1.0 fromUserId=123&toUserId=456&objectName=RC%3ATxtMsg&content=%7B"content"%3A"hello"%7D&channelType=PERSON&msgTimestamp=1408710653491&msgUID=596E-P5PG-4FS2-7OJK&groupUserIds=[543,567]
已复制
2
3
4
5
6
# 内置消息结构说明
当消息路由收到的消息为融云内置消息,消息类型和json结构请参考:内置消息类型。