提交工单
咨询集成、功能及报价等问题
用户发送单聊、群聊、房间消息成功或失败后,业务后台可以接收 ZIM 服务端的发送消息回调,将用户发送的消息实时同步至业务服务器,并存储于业务服务器。
此回调支持的消息类型为文本消息、图片消息、文件消息、音频消息、视频消息、自定义消息,不支持信令消息、弹幕消息。
请求方法:POST。
请求地址:请在 ZEGO 控制台 上配置回调地址,配置流程请参考控制台文档 ZIM 相关回调配置。
传输协议:HTTPS/HTTP,建议使用 HTTPS。
公共参数 | 类型 | 描述 |
---|---|---|
appid |
String |
App 的唯一标识。 |
event |
String |
回调事件,此回调返回值为 send_msg 。 |
nonce |
String |
随机数,用于计算 signature。 |
signature |
String |
检验串,详情见 检验说明。 |
timestamp |
Int |
服务器当前时间,Unix 时间戳,单位为秒(s),用于计算 signature。 |
业务参数 | 类型 | 描述 |
from_user_id |
String |
消息发送者 ID。 |
conv_type |
Int |
目标会话类型:
|
conv_id |
String |
目标会话 ID。 当开发者使用服务端发送单聊消息时,此字段为空,“user_list”有值。
|
msg_type |
Int |
消息类型:
|
sub_msg_type |
Int |
具体的自定义类型。值由用户发送自定义消息时填写,取值范围为 [0,200]。只有当 msg_type 为 200(自定义类型)时,此参数才有意义。 |
msg_body |
String |
消息内容。
|
msg_id |
String |
消息 ID,可借此确定消息的唯一性。 通过服务端 API 批量发送单聊消息时,此字段为空。此时如需获取消息 ID,请从“user_list”获取。 |
msg_seq |
Int |
消息 Seq,可用于撤回消息。 通过服务端 API 批量发送单聊消息时,此字段为空。此时如需获取消息 Seq,请从“user_list”获取。 |
payload |
String |
消息扩展字段。 |
msg_time |
Int |
服务端收到消息的时间,Unix 时间戳,单位为毫秒(ms)。 |
send_result |
Int |
消息发送结果。0 表示发送成功,其他整数为具体错误码,表示发送失败,您可参考 全局返回码 了解原因。 |
user_list |
Array of Object |
只有通过服务端发送单聊消息时,回调会包含此字段,用于批量返回消息接收用户信息。
|
user_id |
String |
消息接收用户。 |
msg_id |
String |
消息 ID,可借此确定消息的唯一性。消息发送失败时,此字段为空。 |
msg_seq |
Int |
消息 Seq,可用于撤回消息。 |
建议您将部分参数转换为 Int 进行逻辑处理,相关字段包括 appid
和 nonce
。
参数 | 类型 | 描述 |
---|---|---|
md5 | String | 文件 MD5 值。 |
file_name | String | 文件名称。 |
file_size | String | 文件大小,单位为字节(B)。 |
download_url | String | 下载地址。 |
media_duration | String | 音视频时长,单位为秒(s)。 |
{
"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",}
]
}
收到回调后,如果您的服务器返回的 HTTP status code 为 2XX (例如 200),表示成功;返回其他,表示失败。
如果 ZEGO 服务器没有收到响应,或收到的 HTTP status code 不为 2XX(例如 200),都会尝试重试,最多进行 5 次重试。每次重试请求与上一次请求的间隔时间分别为 2s、4s、8s、16s、32s。若第 5 次重试后仍然失败,将不再重试,该回调丢失。
以下仅列出了回调相关的返回码,完整返回码请参考 全局返回码。
返回码 | 描述 | 可能原因 | 处理建议 |
---|---|---|---|
660000002 |
输入参数错误。 |
输入的参数缺失或不合法。 |
请检查输入的参数。 |
660500002 |
用户未注册。 |
消息发送者未登录过 SDK。 |
请用户先登录后再发送消息。 |
660500004 |
文本审核请求出错。 |
文本审核请求出错。 |
请联系 ZEGO 技术支持。 |
660500005 |
发送的文本消息没有通过审核。 |
发送的文本消息没有通过审核。 |
请勿发送该消息。 |
660500006 |
图片审核请求出错。 |
图片审核请求出错。 |
请联系 ZEGO 技术支持。 |
660500007 |
发送的图片消息没有通过审核。 |
发送的图片消息没有通过审核。 |
请勿发送该消息。 |
660500009 |
您的业务后台判断此消息应当“静默发送”。 |
收到“消息发送前回调”后,您的业务后台返回了 2 ,此消息被静默发送。 |
无需处理。 |
660500010 |
您的业务后台判断此消息应当“不发送”。 |
收到“消息发送前回调”后,您的业务后台返回了 3 ,此消息被拒绝发送。 |
无需处理。 |
660600021 |
发送消息参数错误。 |
发送消息参数错误。 |
请检查参数。 |
660600022 |
发送多媒体消息,获取重定向地址失败。 |
发送多媒体消息,获取重定向地址失败。 |
请联系 ZEGO 技术支持处理。 |
660600023 |
消息长度超过限制。 |
消息长度超过限制。 |
请缩小消息长度。 |
联系我们
文档反馈