跳到主要内容

在发送单聊消息前的回调

功能说明

App 业务服务端可以通过该回调实时对用户的单聊信息进行操作,如:对发单聊信息进行实时记录,拦截用户的违规发言请求。

注意事项

  • 为启用回调,必须配置回调 URL,并开启本条回调协议对应的开关。配置方法详见 回调说明 文档。
  • 回调的方向是 OpenIMServer 向 App 后台发起 HTTP/HTTPS POST 请求。
  • APP 业务服务端需在超时时间内响应此请求。

可能触发该回调的场景

  • App 用户通过客户端发送单聊消息。
  • App 管理员通过 REST API 发送单聊信息。

回调发生时机

  • OpenIMServer 收到用户发送的单聊信息之后、将该信息下发给目标用户之前。

接口说明

请求 URL 示例

此处CallbackCommand为:callbackBeforeSendSingleMsgCommand

{WEBHOOK_ADDRESS}/callbackBeforeSendSingleMsgCommand?contenttype=json

请求包示例

{
"sendID": "user123",
"callbackCommand": "callbackBeforeSendSingleMsgCommand",
"serverMsgID": "msg001",
"clientMsgID": "clientmsg001",
"operationID": "1646445464564",
"senderPlatformID": 1,
"senderNickname": "User123",
"sessionType": 1,
"msgFrom": 1,
"contentType": 1,
"status": 1,
"sendTime": 1673048592000,
"createTime": 1673048592000,
"content": "Hello, this is a test message",
"seq": 1001,
"atUserList": ["user456", "user789"],
"faceURL": "http://example.com/path/to/user/image.png",
"ex": "Extra data",
"recvID": "user456"
}

请求包字段说明

对象类型描述
sendIDstring发送者的用户ID
callbackCommandstring回调命令,这里是发送单聊消息前的回调
serverMsgIDstring服务器分配的消息ID
clientMsgIDstring客户端分配的消息ID
operationIDstringoperationID用于全局链路追踪
senderPlatformIDint32发送者的平台ID
senderNicknamestring发送者的昵称
sessionTypeint32会话类型
msgFromint32消息来源
contentTypeint32消息内容的类型
statusint32消息的状态
sendTimeint64消息发送的时间戳(毫秒)
createTimeint64消息创建的时间戳(毫秒)
contentstring消息内容
sequint32消息序列号
atUserListarray群组成员ID列表,单聊忽略
faceURLstring发送者头像的URL
exstring额外的数据字段
recvIDstring接收者的用户ID

应答包示例

允许发送

允许用户发送消息。

{
"actionCode": 0,
"errCode": 0,
"errMsg": "",
"errDlt": "",
"nextCode": 0
}

应答包字段说明

字段说明
actionCode0表示业务系统的回调是否正确执行。0表示操作成功。
errCode5001表示自定义错误码,范围在5000-9999之间。在 actionCode 不等于0时设置;在 nextCode 等于1时设置。
errMsg"消息"自定义错误码对应的简单错误信息。
errDlt"详细信息"自定义错误码对应的详细错误信息。
nextCode1下一步执行指令,1表示拒绝继续执行,actionCode 等于0时设置。