logo
当前页

消息发送后回调


描述

用户发送单聊、群聊、房间消息成功或失败后,业务后台可以接收 ZIM 服务端的发送消息回调,将用户发送的消息实时同步至业务服务器,并存储于业务服务器。

注意

此回调支持的消息类型为文本消息、图片消息、文件消息、音频消息、视频消息、自定义消息,不支持信令消息、弹幕消息。

回调说明

  • 请求方法:POST。
    说明

    回调数据需要 UrlDecode 解码。

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

回调参数

公共参数类型描述
appidStringApp 的唯一标识。
eventString回调事件,此回调返回值为 send_msg
nonceString随机数,用于计算 signature。
signatureString检验串,详情见 检验说明
timestampInt服务器当前时间,Unix 时间戳,单位为秒(s),用于计算 signature。
业务参数类型描述
from_user_idString消息发送者 ID。
conv_typeInt目标会话类型:
  • 0:单聊。
  • 1:房间。
  • 2:群聊。
conv_idString

目标会话 ID。

说明

当开发者使用服务端发送单聊消息时,此字段为空,“user_list”有值。

msg_typeInt消息类型:
  • 1:文本。
  • 10:组合。
  • 11:图片。
  • 12:文档。
  • 13:音频。
  • 14:视频。
  • 200:自定义。
sub_msg_typeInt具体的自定义类型。值由用户发送自定义消息时填写,取值范围为 [0,200]。只有当 msg_type 为 200(自定义类型)时,此参数才有意义。
msg_bodyString消息内容
  • 消息由客户端发送时:
  • 消息由服务端发送时,不论消息类型,本回调会直接透传发送消息时传入的内容。
msg_idString消息 ID,可借此确定消息的唯一性。
注意

通过服务端 API 批量发送单聊消息时,此字段为空。此时如需获取消息 ID,请从“user_list”获取。

msg_seqInt消息 Seq,可用于撤回消息。
注意

通过服务端 API 批量发送单聊消息时,此字段为空。此时如需获取消息 Seq,请从“user_list”获取。

payloadString消息扩展字段。
msg_timeInt服务端收到消息的时间,Unix 时间戳,单位为毫秒(ms)。
send_resultInt消息发送结果。0 表示发送成功,其他整数为具体错误码,表示发送失败,您可参考 全局返回码 了解原因。
user_listArray of Object只有通过服务端发送单聊消息时,回调会包含此字段,用于批量返回消息接收用户信息。
说明

  • 此字段有值时,“conv_id”为空。
  • 如果您在 2024 年 1 月 5 日前使用过本回调,会发现回调中不包含此字段。如需回调支持此字段,请联系 ZEGO 技术支持。

└user_idString消息接收用户。
└msg_idString消息 ID,可借此确定消息的唯一性。消息发送失败时,此字段为空。
└msg_seqInt消息 Seq,可用于撤回消息。
说明

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

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

多媒体消息

组合消息

数据示例

  • POST/JSON
Untitled
{
    "appid": "1",
    "event": "zim_send_msg",
    "nonce": "350176",
    "signature": "signature",
    "timestamp": 1679553625,
    "from_user_id": "350176117361",
    "conv_type": 0,
    "conv_id": "group1",
    "msg_type": 1,
    "msg_body": "msg_body",
    "msg_id": "857639062792568832",
    "payload": "payload",
    "msg_time": 1679554146000,
    "send_result": 0,
    "sub_msg_type": 0,
    "user_list":[
        {"user_id":"userid1","msg_id": "857639062792568822",},
        {"user_id":"userid2","msg_id": "857639062792568833",}
    ]
}
1
Copied!

返回响应

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

回调重试策略

如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。

send_result 说明

以下仅列出了回调相关的返回码,完整返回码请参考 全局返回码

返回码描述可能原因处理建议
660000002输入参数错误。输入的参数缺失或不合法。请检查输入的参数。
660500002用户未注册。消息发送者未登录过 SDK。请用户先登录后再发送消息。
660500004文本审核请求出错。文本审核请求出错。请联系 ZEGO 技术支持。
660500005发送的文本消息没有通过审核。发送的文本消息没有通过审核。请勿发送该消息。
660500006图片审核请求出错。图片审核请求出错。请联系 ZEGO 技术支持。
660500007发送的图片消息没有通过审核。发送的图片消息没有通过审核。请勿发送该消息。
660500009您的业务后台判断此消息应当“静默发送”。收到“消息发送前回调”后,您的业务后台返回了 2,此消息被静默发送。无需处理。
660500010您的业务后台判断此消息应当“不发送”。收到“消息发送前回调”后,您的业务后台返回了 3,此消息被拒绝发送。无需处理。
660600021发送消息参数错误。发送消息参数错误。请检查参数。
660600022发送多媒体消息,获取重定向地址失败。发送多媒体消息,获取重定向地址失败。请联系 ZEGO 技术支持处理。
660600023消息长度超过限制。消息长度超过限制。请缩小消息长度。

Previous

消息发送前

Next

回调校验说明