通知类消息格式
提示(小灰条)通知消息
即时通讯服务定义了 ObjectName 为 RC:InfoNtf
的提示(小灰条)通知消息。您可以需要通知、提示用户时,向会话中发送或本地插入该类型的消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
提示小灰条消息包含的「消息内容」为 JSON 对象,结构如下:
{
"message":"请在聊天中注意人身财产安全",
"extra":""
}
内容结构参数
提示小灰条消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
message | String | 是 | 提示条消息内容。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
撤回通知消息
即时通讯服务定义了 ObjectName 为 RC:RcNtf
的撤回通知消息,用于提示消息已撤回。
客户端 SDK 中已内置该消息类型。SDK 内部用于在执行撤回消息操作后展示撤回通知。不建议客户直接发送该消息。
内容结构参数
撤回通知消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operatorId | String | 否 | 发起撤回消息的用户 ID。 |
recallTime | Long | 是 | 被撤回的原始消息的发送时间(毫秒)。 |
originalObjectName | String | 是 | 原消息的消息类型名。 |
originalMessageContent | Object | 否 | 原消息的内容。 |
recallContent | String | 否 | 撤回的文本消息的内容。 |
recallActionTime | Long | 否 | 发送撤回命令消息(RC:RcCMD )的时间(毫秒)。 |
admin | Boolean | 是 | 是否由管理员操作。 |
delete | Boolean | 是 | 指定移动端接收方是否需要从本地删除原始消息记录。为 false 时,移动端不会删除原始消息记录,会将消息内容替换为撤回提示(小灰条通知)。为 true 时,移动端会删除原始消息记录,不显示撤回提示(小灰条通知)。Web SDK 从 5.3.1 版本开始支持该参数。 |
user | Object | 否 | 消息中携带的消息发送者的用户信息。一般情况下不建议在消息中携带用户信息。建议仅在直播场景下使用。 |
extra | String | 否 | 附加信息。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
资料变更通知消息
即时通讯服务定义了 ObjectName 为 RC:ProfileNtf
的资料变更通知消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
资料变更通知消息包含的「消息内容」为 JSON 对象,结构如下:
{
"operation":"Update",
"data":"{\"nickname\":\"韩梅梅\", \"hometown\":\"beijing\"}",
"extra":""
}
内容结构参数
资料变更通知消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operation | String | 是 | 资料通知操作,可以自行定义。 |
data | String | 是 | 操作的数据。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
联系人(好友)通知消息
即时通讯服务定义了 ObjectName 为 RC:ContactNtf
的联系人(好友)通知消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
联系人(好友)通知消息包含的「消息内容」为 JSON 对象,结构如下:
{
"operation":"Request",
"sourceUserId":"123",
"targetUserId":"456",
"message":"我是小艾,能加一下好友吗?",
"extra":""
}
内容结构参数
联系人(好友)通知消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operation | String | 是 | 联系人操作的指令,官方针对 operation 属性定义了 "Request", "AcceptResponse", "RejectResponse" 几个常量,也可以由开发者自行扩展。 |
sourceUserId | String | 是 | 发出通知的用户 Id。 |
targetUserId | String | 是 | 单聊会话为接收通知的用户 Id,群聊、聊天室会话为会话 Id。 |
message | String | 是 | 表示请求或者响应消息,如添加理由或拒绝理由。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。
群组通知消息
即时通讯服务定义了 ObjectName 为 RC:GrpNtf
的群组通知消息。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
群组通知消息包含的「消息内容」为 JSON 对象,结构如下:
{
"operatorUserId":"4324",
"operation":"Rename",
"data":"群组中各种通知的操作数据",
"message":"修改本群名为本地生活",
"extra":""
}
内容结构参数
群组通知消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
operatorUserId | String | 是 | 操作人用户 Id。 |
operation | String | 是 | 群组中各种通知的操作名称。IMKit 客户端默认仅支持在会话列表与会话页面中展示部分内置群组通知消息。详见下方群组通知消息结构数据说明。 |
data | String | 是 | 操作数据,IMKit 客户端在会话列表与会话页面中展示消息时会使用该字段。详见下方群组通知消息结构数据说明。 |
message | String | 是 | 消息内容。 |
extra | String | 否 | 扩展信息,可以放置任意的数据内容,也可以去掉此属性。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消 息时传入自定义的推送通知内容。
群组通知消息结构数据说明
以下列出了内置的群组操作通知消息结构 JSON 格式:
Android/iOS IMKit SDK 对内置群组通知消息结构的支持与展示可能存在差异,具体请参考源码。
-
创建群组(Operation: Create)
{
"operatorUserId":"4324",
"operation":"Create",
"data":"{\"operatorNickname\":\"李天\",\"targetGroupName\":\"群名\"}",
"message":"创建群组",
"extra":""
}属性说明:
operatorUserId
:为操作人用户 Idoperation
:操作名,默认为 Createdata
:数据内容,operatorNickname
为操作者,targetGroupName
为群名称
-
修改群名称(Operation: Rename)
{
"operatorUserId":"4324",
"operation":"Rename",
"data":"{\"operatorNickname\":\"李天\",\"targetGroupName\":\"群名\"}",
"message":"修改群名称",
"extra":""
}属性说明:
operatorUserId
:操作人用户 Idoperation
:操作名,默认为 Renamedata
:数据内容,operatorNickname 为操作者,targetGroupName 为群名称
-
添加群成员(Operation: Add)
{
"operatorUserId":"4324",
"operation":"Add",
"data":"{\"operatorNickname\":\"李天\",\"targetUserIds\":[\"wGPkc0\"],\"targetUserDisplayNames\":[\"腾飞\"]}",
"message":"添加群成员",
"extra":""
}属性说明:
operatorUserId
:操作人用户 Idoperation
:操作名,默认为 Adddata
:数据内容,operatorNickname 为操作者targetUserIds
:被加入群的用户 IDtargetUserDisplayNames
:被加入群的用户名,与targetUserIds
相对应
-
移出群成员
{
"operatorUserId":"4324",
"operation":"Kicked",
"data":"{\"operatorNickname\":\"李天\",\"targetUserIds\":[\"wGPkc0\"],\"targetUserDisplayNames\":[\"腾飞\"]}",
"message":"移出群成员",
"extra":""
}属性说明:
operatorUserId
:操作人用户 Idoperation
:操作名,默认为 Kickeddata
:数据内容,operatorNickname 为操作者targetUserIds
: 被移出群的用户 IDtargetUserDisplayNames
: 被移出群的用户名,与targetUserIds
相对应
-
退出群组(Operation: Quit)
{
"operatorUserId":"4324",
"operation":"Quit",
"data":"{\"operatorNickname\":\"李天\",\"targetUserIds\":[\"wGPkc0VpO\"],\"targetUserDisplayNames\":[\"腾飞\"],\"newCreatorId\":\"newCreatorId\"}",
"message":"退出群组",
"extra":""
}属性说明:
operatorUserId
:操作人用户 Idoperation
:操作名,默认为 Quitdata
:数据内容,operatorNickname
为操作者,targetUserIds
退出群组的用户 ID ,targetUserDisplayNames
退出群组的用户名newCreatorId
:如退出群的用户为群创建者,则newCreatorId
为新的群创建者 ID ,否则为 null
-
解散群组(Operation: Dismiss)
{
"operatorUserId":"4324",
"operation":"Dismiss",
"data":"{\"operatorNickname\":\"李天\"}",
"message":"解散群组",
"extra":""
}属性说明:
operatorUserId
:操作人用户 Idoperation
:操作名,默认为 Dismissdata
:数据内容,operatorNickname
为操作者
命令提醒消息
即时通讯服务定义了 ObjectName 为 RC:CmdNtf
的命令提醒消息。与命令消息(RC:CmdMsg
)的区别是,此消息会进行存储并在界面上显示。
调用服务端 API 发送消息时,必须指定 ObjectName,并将对应类型的消息内容 JSON 对象序列化为 JSON String,放入 API 接口的 content
字段中。客户端 SDK 中已内置该消息类型,可直接调用相关方法发送。
命令提醒消息包含的「消息内容」为 JSON 对象,结构如下:
{
"name":"AtPerson",
"data":"{\"sourceId\":\"9527\"}"
}
内容结构参数
命令提醒消息内容结构参数如下表所示:
名称 | 类型 | 必传 | 说明 |
---|---|---|---|
name | String | 是 | 命令名。 |
data | String | 否 | 设置命令数据,可以放置任意格式的数据内容,如 JSON,也可以去掉此属性。 |
客户端默认属性
- 在客户端本地存储
- 不计入会话消息未读数
- 默认未支持远程推送:即时通讯服务端没有为该消息类型预置推送通知标题和通知内容。如果需要在收件人不在线触发远程推送通知,请在发送消息时传入自定义的推送通知内容。