tencent cloud

文档反馈

群内发言之前回调

最后更新时间:2024-02-19 11:11:51

    功能说明

    App 后台可以通过该回调实时查看用户的群发消息,包括:
    对群消息进行实时记录(例如记录日志,或者同步到其他系统)。
    拦截用户在群内发言的请求。
    注意:
    消息前回调默认2s超时且不建议调整,使用前回调处理内容审核,可能导致整个前回调超时。

    注意事项

    要启用回调,必须配置回调 URL,并打开本条回调协议对应的开关,配置方法详见 第三方回调配置 文档。
    回调的方向是即时通信 IM 后台向 App 后台发起 HTTP POST 请求。
    App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
    其他安全相关事宜请参考 第三方回调简介:安全考虑 文档。

    可能触发该回调的场景

    App 用户通过客户端发送群消息。
    App 管理员通过 REST API 发送群组消息。

    回调发生时机

    即时通信 IM 后台把群消息下发给群成员之前。

    接口说明

    请求 URL 示例

    以下示例中 App 配置的回调 URL 为 https://www.example.com示例:
    https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform

    请求参数说明

    参数
    说明
    https
    请求协议为 HTTPS,请求方式为 POST
    www.example.com
    回调 URL
    SdkAppid
    创建应用时在即时通信 IM 控制台分配的 SDKAppID
    CallbackCommand
    固定为 Group.CallbackBeforeSendMsg
    contenttype
    固定值为 JSON
    ClientIP
    客户端 IP,格式如:127.0.0.1
    OptPlatform
    客户端平台,取值参见 第三方回调简介:回调协议 中 OptPlatform 的参数含义

    请求包示例

    {
    "CallbackCommand": "Group.CallbackBeforeSendMsg", // 回调命令
    "GroupId": "@TGS#2J4SZEAEL", // 群组 ID
    "Type": "Community", // 群组类型
    "From_Account": "jared", // 发送者
    "Operator_Account":"admin", // 请求的发起者
    "Random": 123456, // 随机数
    "OnlineOnlyFlag": 1, //在线消息,为1,否则为0;直播群忽略此属性,为默认值0。
    "MsgBody": [ // 消息体,参见 TIMMessage 消息对象
    {
    "MsgType": "TIMTextElem", // 文本
    "MsgContent": {
    "Text": "red packet"
    }
    }
    ],
    "CloudCustomData": "your cloud custom data",
    "TopicId":"@TGS#_@TGS#cQVLVHIM62CJ@TOPIC#_TestTopic",// 话题的 ID, 仅支持话题的社群适用此选项
    "EventTime":"1670574414123"//毫秒级别,事件触发时间戳
    }

    请求包字段说明

    字段
    类型
    说明
    CallbackCommand
    String
    回调命令
    GroupId
    String
    产生群消息的群组 ID
    Type
    String
    产生群消息的 群组类型介绍,例如 Public
    From_Account
    String
    消息发送者 UserID
    Operator_Account
    String
    请求发起者 UserID,可以用来识别是否为管理员请求的
    Random
    Integer
    发消息请求中的 32 位随机数
    OnlineOnlyFlag
    Integer
    在线消息,为1,否则为0;直播群忽略此属性,为默认值0。
    MsgBody
    Array
    消息体,具体参见 消息格式描述
    CloudCustomData
    String
    消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)
    TopicId
    String
    话题的 ID,若具有此选项表示在话题内发言,仅支持话题的社群适用此选项
    EventTime
    Integer
    事件触发的毫秒级别时间戳

    应答包示例

    允许发言

    允许用户发言,同时也不变动即将下发的消息的内容。
    {
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 0 // 0 为允许发言
    }

    禁止发言

    不允许用户发言,该消息将不会下发,同时给调用方返回错误码10016
    {
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 1 // 1 为拒绝发言
    }

    静默丢弃

    不允许用户发言,该消息将不会下发,但会给调用方返回成功,使调用方以为消息已经发出。
    {
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 2 // 2 为静默丢弃
    }

    变动消息内容

    如下的应答示例为:对用户发送的群消息进行了变动(增加了自定义消息)。即时通信 IM 后台将会下发经过变动之后的消息。App 后台可以基于这一特性在用户发送的消息中增加一些特殊内容,例如用户等级、头衔等信息。
    {
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 0, // 必须为 0,只有这样,变动之后的消息才能正常下发
    "MsgBody": [ // App 变动之后的消息,如果没有,则默认使用用户发送的消息
    {
    "MsgType": "TIMTextElem", // 文本
    "MsgContent": {
    "Text": "red packet"
    }
    },
    {
    "MsgType": "TIMCustomElem", // 自定义消息
    "MsgContent": {
    "Desc": "CustomElement.MemberLevel", // 描述
    "Data": "LV1" // 数据
    }
    }
    ],
    "CloudCustomData": "your cloud custom data"
    }

    应答包字段说明

    字段
    类型
    属性
    说明
    ActionStatus
    String
    必填
    请求处理的结果,OK 表示处理成功,FAIL 表示失败
    ErrorCode
    Integer
    必填
    错误码,0为允许发言;1为拒绝发言;2为静默丢弃。若业务希望拒绝发言的同时,将错误码 ErrorCode 和 ErrorInfo 传递至客户端,请将错误码 ErrorCode 设置在 [10100, 10200] 区间内
    ErrorInfo
    String
    必填
    错误信息
    MsgBody
    Array
    选填
    经过App变动之后的消息体,云通讯后台将把变动后的消息发送到群组中,具体格式参见 消息格式描述
    CloudCustomData
    String
    选填
    消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)

    参考

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持