用户内容类消息格式
即时通讯服务将用户使用即时通讯业务时可能发送的消息归为一类,称为用户内容类消息。即时通讯服务根据具体消息内容,为文本、图片、图文(已不推荐使用)、GIF、语音、文件、小视频、位置、引用、合并转发等提供了预定义的消息内容结构。
文本消息
即时通讯服务定义了消息类型标识(ObjectName
) 为 RC:TxtMsg
的文本消息。
- 客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
- 如果使用服务端 API 发送该类型消息,注意传入正确的正确的消息类型标识以及消息内容结构体:
- 必须在 API 接口的消息类型字段(字段名一般为
ObjectName
)传入消息类型标识RC:TxtMsg
。 - 必须在 API 接口的消息内容字段(字段名一般为
content
) 中传入当前消息类型的消息内容结构体。
- 必须在 API 接口的消息类型字段(字段名一般为
文本消息内容结构体
文本消息的消息内容 JSON 对象结构如下(将下方的消息内容 JSON 对象序列化为 JSON String,作为 API 接口的 content
字段的值):
JSON
{
"content":"@张三 Hello world!",
"mentionedInfo":{
"type":2,
"userIdList":["zhangsan"],
"mentionedContent":"有人@你"
},
"user":
{
"id":"4242",
"name":"Robin",
"portrait":"http://example.com/p1.png",
"extra":"extra"
},
"extra":""
}
文本消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
content | String | 是 | 文字消息的文字内容,包括表情。 |
mentionedInfo | Object | 否 | 在群组中发送 @ 消息时,需要传入被 @ 用户信息。单聊场景下无需设置此属性。使用 IM Server API 发送群聊 @ 消息时,必须设置 isMentioned 字段为 1 ,指定当前消息为 @消息。否则默认发送普通消息,mentionedInfo 数据无效。 |
mentionedInfo.type | int | 是 | @ 功能类型,1 表示 @ 所有人、2 表示 @ 指定用户。 |
mentionedInfo.userIdList | String[] | 否 | 指定用户列表,type 为 2 时有效,为 1 时 userIdList 可以为空。 |
mentionedInfo.mentionedContent | String | 否 | @ 消息的自定义 Push 内容。@消息携带的 mentionedContent 优先级最高,会覆盖所有默认或自定义的 pushContent 数据。 |
user | String | 否 | 消息中携带的消息发送者的用户信息。一般情况下不建议在消息中携带用户信息。建议仅在直播场景下使用。 |
user.id | String | 否 | 消息发送者的用户 ID。 |
user.name | String | 否 | 消息发送者的用户昵称。 |
user.portrait | String | 否 | 消息发送者的头象。 |
user.extra | String | 否 | 扩展信息,可以放置任意的数据内容。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |