回调说明
更新时间: 2025/06/04 16:05:56
网易云信的第三方回调功能,是专为企业打造的事件响应机制。简而言之,它允许企业应用服务器主动介入事件处理流程,以实现更精细的控制。通过第三方回调功能,企业不仅可以增强消息传递的可控性,还能深度整合自身的业务流程,实现与网易云信服务的无缝对接,从而更好地满足企业级通信和内容管理的需求。
技术原理
开通第三方回调服务后,网易云信 IM 服务器会在某一事件发生前后,以 HTTP/HTTPS 请求的方式发送给客户的应用服务器,应用服务器可以据此进行数据同步或干预事件的处理流程,参与决策网易云信的各类事件处理结果。
具体的流程步骤如下:
- 网易云信服务器接收用户请求并进行初步校验。
- 网易云信服务器向您的应用服务器发送回调请求,邀请应用服务器参与决策,进行业务判断并返回处理结果。
- 云信服务器根据返回结果决定是否执行原始操作。

- 第三方回调服务仅针对通过 SDK 发送的消息。通过服务端 API 发送的消息,不会触发第三方回调。
- 如果已开通第三方回调并配置消息相关回调,即使用户被对方拉黑,发消息时仍会先进行第三方回调。
开通和配置第三方回调
使用第三方回调前,您需要在 网易云信控制台 上开通和配置 第三方回调。步骤详情请参考 开通和配置第三方回调。
回调请求规范
请求相关项 | 说明 |
---|---|
请求协议 | HTTP/HTTPS,为保证数据安全,建议您使用 HTTPS 协议。 |
请求方式 | POST,后面接 第三方回调地址(您在 网易云信控制台 配置的第三方回调地址,通常为您的应用服务器地址),例如:POST https://******.com 。 |
消息格式 | application/json; charset=utf-8 |
回调地址 | 对于部分回调类型(如单聊消息和群组消息)来说,您可在发送消息时设置环境变量(env),服务器将根据不同的环境回调到不同的回调地址,环境和回调地址的映射关系需要在 网易云信控制台 配置,具体请参考 开通和配置第三方回调。 |
校验方式 | 网易云信 IM 服务器请求您的应用服务器时,您的应用服务器从请求头 (request header)中获取 CheckSum 进行安全校验。 CheckSum = sha1(AppSecret + MD5 + CurTime ),其中 AppSecret 、MD5 和 CurTime 均为 String 类型。MD5 值是否被修改,以及计算验证 CheckSum 。AppSecret 值为您的 AppSecret(与 AppKey 对应),MD5 值为根据请求体(request body)计算的值。 |
请求次数 | 网易云信 IM 服务器只会请求 1 次,无重试。 |
请求超时时间 | 超时时间为 2 秒。 |
消息放行结果 | 403 ,表示非法操作或没有权限。7101 ,表示被接收方加入黑名单。 |
请求格式
请求说明
请求头参数如下:
Header 参数 | 类型 | 说明 |
---|---|---|
AppKey |
String | 您的应用的 App Key,具体获取方式请参考 获取 App Key。 |
CurTime |
Long | 当前 UTC 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数(Long)。 |
MD5 |
String | 根据请求中的 request body 计算出来的 MD5 值。 |
CheckSum |
String | 校验值。 |
Content-Type |
String | 请求消息体类型,一般为:application/json 。 |
-
MD5 值计算示例:
Java
String requestBody = "{}"; String MD5 = CheckSumBuilder.getMD5(requestBody); //参考 接口概述 -> API checksum 校验部分
-
CheckSum 值计算示例:
Java
String AppSecret = "90ud57s6****"; String MD5 = "9894907e4ad9de467809127750******"; String CurTime = "1440570500855"; ////当前 UTC 时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 String CheckSum = CheckSumBuilder.getCheckSum(AppSecret, MD5, CurTime); //参考 接口概述 -> API checksum 校验部分
请求体统一为 JSON 格式,示例:
JSON{
"body": "Hello",
"eventType": 1,
"fromAccount": "000266",
"fromClientType": "WEB",
"fromDeviceId": "617715aa8579db03f0cf054c199c****",
"fromNick": "yj000266",
"msgTimestamp": "1541560157286",
"msgType": "TEXT",
"msgidClient": "",
"to": "005877",
"fromClientIp":"115.211.**.**", //ipv4 地址或 ipv6 地址
"fromClientPort":"568**"
}
//JSON 中的属性请参考具体的回调类型
响应说明
第三方回调响应的 Content-Type Header 需要设置为 application/json; charset=utf-8
。
响应体为 JSON 格式,示例:
JSON{
"errCode":0,
"responseCode": 20000,
"modifyResponse": {},
"callbackExt": "aa"
}
字段 | 说明 |
---|---|
errCode |
0 :表示回调通过,允许执行。1 :表示回调不通过,取消执行。如果设置了合法的自定义错误码(responseCode ),则发送端会收到自定义错误码,否则发送端会收到 403 错误码。 |
responseCode |
errCode 为 1 时有效。20,000 至 20,099 。eventType =1 、2 、6 、22 、41 、72 、73 、74 ),支持设置为 200 的错误码,客户端表现为消息发送成功,其实消息发送失败。 |
modifyResponse |
|
callbackExt | eventType =1 、2 、6 、22 ),用于传递第三方回调的扩展信息,最大 1024 个字符。errCode=1 ,则只有消息发送者能获取到该字段。responseCode 返回 200 时,客户端才能读取 callbackExt 的内容。 |
第三方回调事件类型
登录
eventType | 功能 | 说明 |
---|---|---|
36 | IM 登录回调 | 通过 SDK 登录时,参数检查通过后先回调应用服务器,回调通过后才允许登录,否则登录失败,不同于其他第三方回调,登录回调失败时返回 302 错误码。 |
37 | 聊天室登录回调 | 通过 SDK 进入聊天室时,参数检查通过后先回调应用服务器,回调通过后才允许进入聊天室,否则登录失败。若回调通过且传入的参数包含 tag 和 notifyTargetTag 字段,则会使用该值替换该成员的标签信息。 |
消息
eventType | 功能 | 说明 |
---|---|---|
1 | 单聊消息发送回调 | 通过 SDK 发送点对点(P2P)消息时,参数检查通过后先回调应用服务器,回调通过后才发送消息,否则消息发送失败。 |
2 | 群组消息发送回调 | 通过 SDK 发送群组消息时,参数检查通过后先回调应用服务器,回调通过后才发送消息,否则消息发送失败。 |
6 | 聊天室消息发送回调 | 通过 SDK 发送聊天室消息时,参数检查通过后先回调应用服务器,回调通过后才发送消息,否则消息发送失败。 |
22 | 超大群消息发送回调 | 通过 SDK 发送超大群消息时,参数检查通过后先回调应用服务器,回调通过后才发送消息,否则消息发送失败。 |
35 | 消息撤回回调 | 进行 点对点消息撤回或者群组消息撤回 时,参数检查通过后先回调应用服务器,回调通过后才允许撤回,否则撤回失败。 |
81 | 超大群消息更新回调 | 进行超大群消息更新时,参数检查通过后先回调应用服务器,回调通过后才允许更新,否则更新失败。 |
82 | 单聊消息更新回调 | 进行点对点消息更新时,参数检查通过后先回调应用服务器,回调通过后才允许更新,否则更新失败。 |
83 | 群组消息更新回调 | 进行群组消息更新时,参数检查通过后先回调应用服务器,回调通过后才允许更新,否则更新失败。 |
AI 数字人
eventType | 功能 | 说明 |
---|---|---|
79 | AI 数字人回调 | 通过 SDK 使用 AI 数字人时,参数检查通过后先回调应用服务器,回调通过后才能与 AI 数字人互动,否则消息操作失败。 |
高级群
eventType | 功能 | 说明 |
---|---|---|
7 | 创建群组回调 | 通过 SDK 创建群组时,参数检查通过后先回调应用服务器,回调通过后才允许创建,否则创建失败。 |
8 | 解散群组回调 | 通过 SDK 解散群组时,参数检查通过后先回调应用服务器,回调通过后才允许解散,否则解散失败。 |
9 | 群组邀请回调 | 通过 SDK 群租邀请时,参数检查通过后先回调应用服务器,回调通过后才允许邀请,否则邀请失败。 |
10 | 退出群组回调 | 通过 SDK 退出群组时,参数检查通过后先回调应用服务器,回调通过后才允许退群,否则退群失败。 |
11 | 增加群管理员回调 | 通过 SDK 增加管理员时,参数检查通过后先回调应用服务器,回调通过后才允许增加管理员,否则操作失败。 |
12 | 移除群管理员回调 | 通过 SDK 移除管理员时,参数检查通过后先回调应用服务器,回调通过后才允许移除管理员,否则操作失败。 |
13 | 转让群组回调 | 通过 SDK 转让群组时,参数检查通过后先回调应用服务器,回调通过后才允许转让群,否则转让失败。 |
14 | 踢人出群回调 | 通过 SDK 踢人出群时,参数检查通过后先回调应用服务器,回调通过后才允许踢人出群,否则踢人失败。 |
15 | 更新群组信息回调 | 通过 SDK 更新群组信息时,参数检查通过后先回调应用服务器,回调通过后才允许更新群组信息,否则更新失败。 |
16 | 在群组中更新自身的成员信息回调 | 通过 SDK 更新自身的成员信息时,参数检查通过后先回调应用服务器,回调通过后才允许更新自身的成员信息,否则更新失败。 |
17 | 在群组中更新他人的成员信息回调 | 通过 SDK 更新他人的成员信息时,参数检查通过后先回调应用服务器,回调通过后才允许更新他人的成员信息,否则更新失败。 |
18 | 禁言群成员回调 | 通过 SDK 禁言群成员时,参数检查通过后先回调应用服务器,回调通过后才允许禁言群成员,否则操作失败。 |
19 | 申请入群回调 | 通过 SDK 申请入群时,参数检查通过后先回调应用服务器,回调通过后才允许申请入群,否则申请失败。 |
38 | 查询群组信息回调 | 通过 SDK 查询群组信息时,参数检查通过后先回调应用服务器,回调通过后才允许查询,否则查询失败。 |
超大群
eventType | 功能 | 说明 |
---|---|---|
23 | 超大群群邀请回调 | 通过 SDK 超大群的群邀请时,参数检查通过后先回调应用服务器,回调通过后才允许邀请,否则邀请失败。 |
24 | 超大群踢人出群回调 | 通过 SDK 踢人出超大群时,参数检查通过后先回调应用服务器,回调通过后才允许踢人出群,否则踢人失败。 |
25 | 退出超大群回调 | 通过 SDK 退出超大群时,参数检查通过后先回调应用服务器,回调通过后才允许退群,否则退群失败。 |
26 | 更新超大群信息回调 | 通过 SDK 更新超大群信息时,参数检查通过后先回调应用服务器,回调通过后才允许更新超大群信息,否则更新失败。 |
27 | 在超大群中更新自身的成员信息回调 | 通过 SDK 更新自身的成员信息时,参数检查通过后先回调应用服务器,回调通过后才允许更新自身的成员信息,否则更新失败。 |
28 | 超大群申请入群回调 | 通过 SDK 申请超大群入群时,参数检查通过后先回调应用服务器,回调通过后才允许申请入群,否则申请失败。 |
29 | 增加超大群管理员回调 | 通过 SDK 增加管理员时,参数检查通过后先回调应用服务器,回调通过后才允许增加管理员,否则操作失败。 |
30 | 移除超大群管理员回调 | 通过 SDK 移除管理员时,参数检查通过后先回调应用服务器,回调通过后才允许移除管理员,否则操作失败。 |
31 | 禁言超大群回调 | 通过 SDK 禁言超大群时,参数检查通过后先回调应用服务器,回调通过后才允许禁言超大群,否则操作失败。 |
32 | 禁言超大群群成员回调 | 通过 SDK 禁言超大群群成员时,参数检查通过后先回调应用服务器,回调通过后才允许禁言群成员,否则操作失败。 |
33 | 在超大群中更新他人的成员信息回调 | 通过 SDK 更新他人的成员信息时,参数检查通过后先回调应用服务器,回调通过后才允许更新他人的成员信息,否则更新失败。 |
34 | 转让超大群回调 | 通过 SDK 转让超大群时,参数检查通过后先回调应用服务器,回调通过后才允许转让群,否则转让失败。 |
76 | 创建超大群回调 | 通过 SDK 创建超大群时,参数检查通过后先回调应用服务器,回调通过后才允许创建,否则创建失败。 |
77 | 解散超大群回调 | 通过 SDK 解散超大群时,参数检查通过后先回调应用服务器,回调通过后才允许解散,否则解散失败。 |
78 | 批量查询超大群信息回调 | 通过 SDK 批量查询超大群信息时,参数检查通过后先回调应用服务器,回调通过后才允许批量查询,否则查询失败。 |
圈组
eventType | 功能 | 说明 |
---|---|---|
40 | 圈组登录回调 | 通过 SDK 登录圈组时,参数检查通过后先回调应用服务器,回调通过后才允许登录,否则登录失败。 |
41 | 圈组消息发送回调 | 通过 SDK 发送圈组消息时,参数检查通过后先回调应用服务器,回调通过后才允许发送,否则发送失败。 |
42 | 创建圈组服务器回调 | 通过 SDK 创建圈组服务器时,参数检查通过后先回调应用服务器,回调通过后才允许创建,否则创建失败。 |
43 | 更新圈组服务器回调 | 通过 SDK 更新圈组服务器时,参数检查通过后先回调应用服务器,回调通过后才允许更新,否则更新失败。 |
44 | 删除圈组服务器回调 | 通过 SDK 删除圈组服务器时,参数检查通过后先回调应用服务器,回调通过后才允许删除,否则删除失败。 |
45 | 邀请圈组服务器成员回调 | 通过 SDK 邀请圈组服务器成员时,参数检查通过后先回调应用服务器,回调通过后才允许邀请,否则操作失败。 |
46 | 接受圈组服务器成员邀请回调 | 通过 SDK 接受圈组服务器成员邀请时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
47 | 拒绝圈组服务器成员邀请回调 | 通过 SDK 拒绝圈组服务器成员邀请时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
48 | 圈组服务器申请回调 | 通过 SDK 申请圈组服务器时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
49 | 接受圈组服务器申请回调 | 通过 SDK 接受圈组服务器申请时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
50 | 拒绝圈组服务器申请回调 | 通过 SDK 拒绝圈组服务器申请时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
51 | 离开圈组服务器回调 | 通过 SDK 离开圈组服务器时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
52 | 踢除圈组服务器成员回调 | 通过 SDK 踢除圈组服务器成员时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
53 | 修改圈组服务器中自身的成员信息回调 | 通过 SDK 修改圈组服务器中自身的成员信息时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
54 | 修改圈组服务器中他人的成员信息回调 | 通过 SDK 修改圈组服务器中他人的成员信息时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
55 | 创建圈组频道回调 | 通过 SDK 创建圈组频道时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
56 | 删除圈组频道回调 | 通过 SDK 删除圈组频道时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
57 | 修改圈组频道信息回调 | 通过 SDK 修改圈组频道信息时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
58 | 修改圈组频道黑白名单身份组回调 | 通过 SDK 修改圈组频道黑白名单身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
59 | 修改圈组频道黑白名单成员回调 | 通过 SDK 修改圈组频道黑白名单成员时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
60 | 创建圈组服务器身份组回调 | 通过 SDK 创建圈组服务器身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
61 | 更新圈组服务器身份组回调 | 通过 SDK 更新圈组服务器身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
62 | 删除圈组服务器身份组回调 | 通过 SDK 删除圈组服务器身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
63 | 创建圈组频道身份组回调 | 通过 SDK 创建圈组频道身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
64 | 修改圈组频道身份组回调 | 通过 SDK 修改圈组频道身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
65 | 删除圈组频道身份组回调 | 通过 SDK 删除圈组频道身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
66 | 在圈组频道下为某个人定制权限回调 | 通过 SDK 在圈组频道下为某个人定制权限时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
67 | 删除圈组频道下某人的定制权限回调 | 通过 SDK 删除圈组频道下某人的定制权限时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
68 | 更新圈组频道下用户定制权限回调 | 通过 SDK 更新圈组频道下用户定制权限时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
69 | 在圈组服务器身份组新增用户回调 | 通过 SDK 把某些人拉进某服务器身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
70 | 在圈组服务器身份组移除用户回调 | 通过 SDK 将某些人从某个服务器身份组移除时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
71 | 批量更新圈组服务器身份组回调 | 通过 SDK 批量更新圈组服务器身份组时,参数检查通过后先回调应用服务器,回调通过后才允许操作,否则操作失败。 |
72 | 发送圈组自定义系统消息回调 | 通过 SDK 发送圈组自定义系统消息时,参数检查通过后先回调应用服务器,回调通过后才允许发送,否则发送失败。 |
73 | 更新圈组消息回调 | 通过 SDK 更新圈组消息时,参数检查通过后先回调应用服务器,回调通过后才允许更新,否则更新失败。 |
74 | 圈组更新系统通知回调 | 通过 SDK 更新系统通知时,参数检查通过后先回调应用服务器,回调通过后才允许更新,否则更新失败。 |
75 | 圈组快捷评论回复回调 | 通过 SDK 圈组快捷评论回复时,参数检查通过后先回调应用服务器,回调通过后才允许回复,否则回复失败。 |
80 | 圈组禁言/解禁回调 | 通过 SDK 在圈组中禁言/解禁时,参数检查通过后先回调应用服务器,回调通过后才允许禁言/解禁,否则操作失败。 |
用户&好友&黑名单关系
eventType | 功能 | 说明 |
---|---|---|
3 | 用户资料变更回调 | 通过 SDK 变更用户资料时,参数检查通过后先回调应用服务器,回调通过后才允许变更,否则变更失败。 |
4 | 添加好友回调 | 通过 SDK 添加好友时,参数检查通过后先回调应用服务器,回调通过后才允许添加,否则添加失败。 |
5 | 删除好友回调 | 通过 SDK 删除好友时,参数检查通过后先回调应用服务器,回调通过后才允许删除,否则删除失败。 |
84 | 拉黑/取消拉黑回调 | 通过 SDK 拉黑/取消拉黑用户时,参数检查通过后先回调应用服务器,回调通过后才允许拉黑/取消拉黑,否则操作失败。 |
融合存储
eventType | 功能 | 说明 |
---|---|---|
39 | 融合存储开启回调 | 通过 SDK 开启融合存储时,参数检查通过后先回调应用服务器,回调通过后才允许开启,否则开启失败。 |
音视频通话 1.0
eventType | 功能 | 说明 |
---|---|---|
20 | 音视频呼叫回调 | 通过 SDK 发起点对点音视频呼叫,参数检查通过后先回调应用服务器,回调通过后才允许发起呼叫,否则呼叫失败。 |
21 | 音视频会议创建回调 | 通过 SDK 创建音视频多人房间,参数检查通过后先回调应用服务器,回调通过后才允许创建,否则创建失败。 |
此文档是否对你有帮助?