圈组

回调说明

更新时间: 2025/06/04 16:05:56

网易云信的第三方回调功能,是专为企业打造的事件响应机制。简而言之,它允许企业应用服务器主动介入事件处理流程,以实现更精细的控制。通过第三方回调功能,企业不仅可以增强消息传递的可控性,还能深度整合自身的业务流程,实现与网易云信服务的无缝对接,从而更好地满足企业级通信和内容管理的需求。

技术原理

开通第三方回调服务后,网易云信 IM 服务器会在某一事件发生前后,以 HTTP/HTTPS 请求的方式发送给客户的应用服务器,应用服务器可以据此进行数据同步或干预事件的处理流程,参与决策网易云信的各类事件处理结果。

具体的流程步骤如下:

  1. 网易云信服务器接收用户请求并进行初步校验。
  2. 网易云信服务器向您的应用服务器发送回调请求,邀请应用服务器参与决策,进行业务判断并返回处理结果。
  3. 云信服务器根据返回结果决定是否执行原始操作。
  • 第三方回调服务仅针对通过 SDK 发送的消息。通过服务端 API 发送的消息,不会触发第三方回调。
  • 如果已开通第三方回调并配置消息相关回调,即使用户被对方拉黑,发消息时仍会先进行第三方回调。

开通和配置第三方回调

使用第三方回调前,您需要在 网易云信控制台 上开通和配置 第三方回调。步骤详情请参考 开通和配置第三方回调

回调请求规范

请求相关项 说明
请求协议 HTTP/HTTPS,为保证数据安全,建议您使用 HTTPS 协议。
请求方式 POST,后面接 第三方回调地址(您在 网易云信控制台 配置的第三方回调地址,通常为您的应用服务器地址),例如:POST https://******.com
消息格式 application/json; charset=utf-8
回调地址 对于部分回调类型(如单聊消息和群组消息)来说,您可在发送消息时设置环境变量(env),服务器将根据不同的环境回调到不同的回调地址,环境和回调地址的映射关系需要在 网易云信控制台 配置,具体请参考 开通和配置第三方回调
校验方式 网易云信 IM 服务器请求您的应用服务器时,您的应用服务器从请求头 (request header)中获取 CheckSum 进行安全校验。
  • CheckSum = sha1(AppSecret + MD5 + CurTime),其中 AppSecretMD5CurTime 均为 String 类型。
  • 在验证数据是否在传输过程中被篡改时,需要计算验证 MD5 值是否被修改,以及计算验证 CheckSum
  • AppSecret 值为您的 AppSecret(与 AppKey 对应),MD5 值为根据请求体(request body)计算的值。
  • 请求次数 网易云信 IM 服务器只会请求 1 次,无重试。
    请求超时时间

    超时时间为 2 秒。

  • 如果请求失败或者超时,网易云信 IM 服务器会使用网易云信控制台上配置的默认回调结果继续处理业务逻辑。
  • 您可前往 产品功能 > IM 即时通讯 > 基础功能 > 第三方回调 > 子功能配置 修改调用失败时的默认策略。
  • 消息放行结果
  • 如果回调不通过,会返回 403,表示非法操作或没有权限。
  • 如果回调通过,会继续执行后续业务逻辑。当 SDK 在执行后续业务逻辑时遇到错误,会返回特定的错误码,这些错误码与回调机制无关。例如,如果某个操作或请求触发了黑名单机制,系统会返回一个特定的错误码 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 值计算示例:

      JavaString requestBody = "{}";
      String MD5 = CheckSumBuilder.getMD5(requestBody); //参考 接口概述 -> API checksum 校验部分
      
    • CheckSum 值计算示例:

      JavaString 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
  • errCode1 时有效。
  • 取值范围:20,00020,099
  • 对于消息类型的第三方回调(eventType=1262241727374),支持设置为 200 的错误码,客户端表现为消息发送成功,其实消息发送失败。
  • modifyResponse
    • 仅对 IM & 圈组消息相关的回调类型有效(eventType=1262241727374),用于修改消息内容。JSON 格式,支持 bodyattachextpushContentpushPayloadpushEnableneedPushNickpersistEnableskipHistory(聊天室消息有效)、roamingEnablehistoryEnable 等字段(均可选,若不填则不替换),上述字段的长度限制和正常发消息的限制相同。示例:{"body":"xxx","attach":"xxx","ext":"123"}
    • 仅对登录聊天室回调类型有效(eventType=37)。JSON 格式,支持 tagnotifyTargetTag 字段,进入聊天室时会修改目标用户的 tagnotifyTargetTagnotifyTargetTag标签表达式。示例:{"tag":["tag1","tag2","tag3"],"notifyTargetTag":"{\"tag\":\"tag1\"} and {\"tag\":\"tag2\"}"}
    • 圈组相关:
      • 圈组发送消息有效:bodyattachextpushContentpushPayloadpushEnableneedPushNickhistoryEnable
      • 圈组发送系统消息有效:bodyattachextpushContentpushPayloadpushEnableneedPushNick
      • 圈组更新消息有效:bodyextmsgoperatorExtpushContentpushPayload
      • 圈组更新系统通知消息有效:bodyextmsgoperatorExtpushContentpushPayload
    • 效果:消息接收方收到消息的上述几个字段将会被替换,消息发送方无感知,但是消息发送方的多端设备收到的消息是修改后的,此外,离线消息、漫游消息、云端历史消息,存储的均是修改后的消息内容,因此不管是消息发送方还是接收方,从网易云信服务器获取到的消息均是修改后的消息。
    该 JSON 体中的字段如果超过其长度限制,则该字段的修改无效。
    callbackExt
  • 仅对 IM 消息相关的回调类型有效(eventType=12622),用于传递第三方回调的扩展信息,最大 1024 个字符。
  • 消息发送者和消息接收者均能获取该扩展字段(需要 SDK 版本大于等于 v7.7.0)。
  • errCode=1,则只有消息发送者能获取到该字段。只有服务端的 responseCode 返回 200 时,客户端才能读取 callbackExt 的内容。
  • 第三方回调事件类型

    登录

    eventType 功能 说明
    36 IM 登录回调 通过 SDK 登录时,参数检查通过后先回调应用服务器,回调通过后才允许登录,否则登录失败,不同于其他第三方回调,登录回调失败时返回 302 错误码。
    37 聊天室登录回调 通过 SDK 进入聊天室时,参数检查通过后先回调应用服务器,回调通过后才允许进入聊天室,否则登录失败。若回调通过且传入的参数包含 tagnotifyTargetTag 字段,则会使用该值替换该成员的标签信息。

    消息

    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 创建音视频多人房间,参数检查通过后先回调应用服务器,回调通过后才允许创建,否则创建失败。
    此文档是否对你有帮助?
    有帮助
    去反馈
    • 技术原理
    • 开通和配置第三方回调
    • 回调请求规范
    • 请求格式
    • 请求说明
    • 响应说明
    • 第三方回调事件类型
    • 登录
    • 消息
    • AI 数字人
    • 高级群
    • 超大群
    • 圈组
    • 用户&好友&黑名单关系
    • 融合存储
    • 音视频通话 1.0