logo
当前页

消息发送前回调


描述

注意
  • 此回调支持的消息类型为文本消息、图片消息、文件消息、音频消息、视频消息、自定义消息,不支持信令消息、弹幕消息。
  • 此回调仅支持通过 SDK 发送的消息。若通过服务端发送消息,则您的业务后台不会收到此回调。

设置此回调后,当用户发送单聊、群聊或房间聊天消息时,ZIM 会向您的业务后台发起请求,您可以通过应答,对消息进行实时操作,如:

  • 记录聊天消息,拦截违规发言请求;
  • 实现黑白名单功能,由您判断哪些消息可以正常发出。

ZIM 会根据您的应答和 ZIM 内容服务的开通情况,决定消息是否发送,详情请参考本文档 应答参数

回调说明

  • 请求方法:POST。
    说明

    回调数据需要 UrlDecode 解码。

  • 请求地址:请在 ZEGO 控制台 上配置回调地址,配置流程请参考控制台文档 ZIM 相关回调配置
  • 传输协议:HTTPS/HTTP,建议使用 HTTPS。

回调参数

公共参数类型描述
appidStringApp 的唯一标识。
eventString回调事件,此回调返回值为 before_send_msg
nonceString随机数,用于计算 signature。
signatureString检验串,详情见 检验说明
timestampInt服务器当前时间,Unix 时间戳,单位为秒(s),用于计算 signature。
request_idString请求 ID。
业务参数类型描述
from_user_idString消息发送者 ID。
conv_idString目标会话 ID。
conv_typeInt目标会话类型:
  • 0:单聊。
  • 1:房间。
  • 2:群聊。
msg_idString消息 ID,可借此确定消息的唯一性。
payloadString消息扩展字段。
msg_typeInt消息类型:
  • 1:文本。
  • 10:组合。
  • 11:图片。
  • 12:文档。
  • 13:音频。
  • 14:视频。
  • 200:自定义。
sub_msg_typeInt具体的自定义类型。值由用户发送自定义消息时填写,取值范围为 [0,200]。只有当 msg_type 为 200(自定义类型)时,此参数才有意义。
msg_bodyString消息内容
  • 消息由客户端发送时:
  • 消息由服务端发送时,不论消息类型,本回调会直接透传发送消息时传入的内容。
说明

建议您将部分参数转换为 Int 进行逻辑处理,相关字段包括 appidnonce

msg_body JSON 字符串解析结果参数说明

多媒体消息

组合消息

回调示例

Untitled
{
    "appid": "1",
    "event": "before_send_msg",
    "from_user_id": "sender",
    "conv_id": "receiver",
    "request_id": "3501907290370176",
    "msg_id": "1234232421343",
    "conv_type": 0,
    "timestamp": 1499676968,
    "msg_body": "msg_body",
    "msg_type": 1,
    "signature": "abc",
    "nonce": "321",
    "sub_msg_type": 0,
    "payload": "payload"
}
1
Copied!

应答参数

参数类型描述
resultInt您的业务后台应答的值,ZIM 会判断是否向发送该消息。
  • 0:中立(不判断是否发送)。
  • 1:发送。
  • 2:静默推送。
  • 3:不发送。
  • 其他:默认按中立处理。

基于您的应答以及 ZIM 内容审核 服务开通与否,ZIM 会决定是否向消息接受端发送消息。ZIM 操作如下表所示:

根据您的业务后台应答的值,消息发送方的客户端可能会收到以下错误码:

错误码说明
111101您的业务后台不同意发送此消息,ZIM 服务端拒绝发送此消息。

应答示例

Untitled
{
    "result": 0
}
1
Copied!

返回响应

收到回调后,如果您的服务器返回的 HTTP status code 为 2XX (例如 200),表示成功;返回其他,表示失败。

回调重试策略

如果 ZEGO 服务器在 2.5 秒内没有收到响应,判定为本次请求失败;随后会立即进行重试,若此次请求发起后 2.5 秒内仍未收到相应,则不再重试。

说明

当 ZEGO 客户端向您发起请求时,如果您的业务侧发生异常,则默认不发送消息。如需默认发送消息,请联系 ZEGO 技术支持。

Previous

呼叫超时

Next

消息发送后