修改消息内容的回调
功能说明
App 业务服务端可以通过该回调修改消息内容,如:不合规内容、敏感词汇的修改替换。
注意事项
- 为启用回调,必须配置回调 URL,并开启本条回调协议对应的开关。配置方法详见 回调说明 文档。
- 回调的方向是 OpenIMServer 向 App 后台发起 HTTP/HTTPS POST 请求。
- APP 业务服务端需在超时时间内响应此请求。
可能触发该回调的场景
- App 用户通过客户端发送消息
- App 用户通过 REST API 发送消息
- App 用户通过客户端发送群消息。
- App 管理员通过 REST API 发送群消息。
回调发生时机
- OpenIMServer 把群消息下发给群成员之前。
接口说明
请求 URL 示例
此处CallbackCommand
为:callbackBeforeMsgModifyCommand
{WEBHOOK_ADDRESS}/callbackBeforeMsgModifyCommand?contenttype=json
请求包示例
{
"sendID": "sender123",
"callbackCommand": "callbackBeforeMsgModifyCommand",
"serverMsgID": "serverMsg123",
"clientMsgID": "clientMsg123",
"operationID": "1646445464564",
"senderPlatformID": 1,
"senderNickname": "Sender",
"sessionType": 1,
"msgFrom": 1,
"contentType": 1,
"status": 1,
"sendTime": 1673048592000,
"createTime": 1673048592000,
"content": "Hello, World!",
"seq": 123,
"atUserList": ["user123", "user456"],
"faceURL": "http://example.com/sender_face.png",
"ex": "Extra data"
}
请求包字段说明
对象 | 类型 | 描述 |
---|---|---|
sendID | string | 发送者的唯一标识符 |
callbackCommand | string | 回调命令,这里是消息修改命令回调 |
serverMsgID | string | 服务端生成的消息ID |
clientMsgID | string | 客户端生成的消息ID |
operationID | string | operationID用于全局链路追踪 |
senderPlatformID | int32 | 发送者的平台ID |
senderNickname | string | 发送者的昵称 |
sessionType | int32 | 会话类型,表示单聊或群聊 |
msgFrom | int32 | 消息来源,表示消息是发送还是接收 |
contentType | int32 | 消息的内容类型 |
status | int32 | 消息的状态 |
sendTime | int64 | 消息发送的时间戳(毫秒) |
createTime | int64 | 消息创建的时间戳(毫秒) |
content | string | 消息的内容 |
seq | uint32 | 消息的序号 |
atUserList | []string | 群成员ID列表 |
faceURL | string | 发送者的头像URL |
ex | string | 额外的数据字段 |
应答包示例
允许修改
允许对消息进行修改。
{
"actionCode": 0,
"errCode": 0,
"errMsg": "",
"errDlt": "",
"nextCode": 0,
"content": "Modified content",
"recvID": "receiver123",
"groupID": "group123",
"clientMsgID": "clientMsg456",
"serverMsgID": "serverMsg456",
"senderPlatformID": 1,
"senderNickname": "ModifiedSender",
"senderFaceURL": "http://example.com/modified_sender_face.png",
"sessionType": 1,
"msgFrom": 1,
"contentType": 1,
"status": 1,
"options": {
"option1": true,
"option2": false
},
"offlinePushInfo": {
"title": "Modified Notification",
"content": "Modified Content",
"pushFlag": 1,
"sound": "default",
"badge": 1
},
"atUserIDList": ["user789", "user101112"],
"msgDataList": [65, 66, 67],
"attachedInfo": "Modified Info",
"ex": "Modified Extra data"
}
应答包字段说明
字段 | 值 | 说明 |
---|---|---|
actionCode | 0 | 表示业务系统的回调是否正确执行。0 表示操作成功。 |
errCode | 5001 | 表示自定义错误码,范围在5000-9999之间。在 actionCode 不等于0时设置;在 nextCode 等于1时设置。 |
errMsg | "An error message" | 自定义错误码对应的简单错误信息。 |
errDlt | "Detailed error information" | 自定义错误码对应的详细错误信息。 |
nextCode | 1 | 下一步执行指令,1 表示拒绝继续执行,actionCode 等于0 时设置。 |
content | *string | 修改后的消息内容。 |
recvID | *string | 接收消息的用户ID。 |
groupID | *string | 群组的唯一标识符。 |
clientMsgID | *string | 客户端生成的消息ID。 |
serverMsgID | *string | 服务端生成的消息ID。 |
senderPlatformID | *int32 | 发送者的平台ID。 |
senderNickname | *string | 发送者的昵称。 |
senderFaceURL | *string | 发送者的头像URL。 |
sessionType | *int32 | 会话类型。 |
msgFrom | *int32 | 消息来源。 |
contentType | *int32 | 消息的内容类型。 |
status | *int32 | 消息的状态。 |
options | *map[string]bool | 修改后的消息选项。 |
offlinePushInfo | *OfflinePushInfo | 修改后的离线推送信息。 |
atUserIDList | *[]string | 群成员ID列表。 |
msgDataList | *[]byte | 修改后的消息数据列表。 |
attachedInfo | *string | 修改后的附加信息。 |
ex | *string | 修改后的额外的数据字段。 |