tencent cloud

文档反馈

发单聊消息之后回调

最后更新时间:2024-06-25 16:45:40

    功能说明

    App 后台可以通过该回调实时对单聊消息进行操作,包括:
    对单聊消息进行实时记录(例如记录日志,或者同步到其他系统)。
    对单聊消息进行数据统计(例如人数,消息数等)。

    注意事项

    要启用回调,必须配置回调 URL,并打开本回调对应的开关,配置方法详见 第三方回调配置
    回调的方向是即时通信 IM 后台向 App 后台发起 HTTPS POST 请求。
    App 后台在收到回调请求之后,务必校验请求 URL 中的参数 SDKAppID 是否是自己的 SDKAppID。
    若同时开启发单聊消息之前和之后两种回调,且发单聊消息之前回调返回禁止发言,则发单聊消息之后回调将不会被触发。
    若同时开启发单聊消息之前和之后两种回调,且发单聊消息之前回调变动了消息体,则发单聊消息之后回调将使用变动过的消息进行回调。
    其他安全相关事宜请参考 第三方回调简介:安全考虑 文档。

    可能触发该回调的场景

    App 用户通过客户端发送单聊消息。
    App 管理员通过 REST API(sendmsg 接口)发送单聊消息。

    回调发生时机

    即时通信 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
    固定为 C2C.CallbackAfterSendMsg
    contenttype
    固定值为 JSON
    ClientIP
    客户端 IP,格式如:127.0.0.1
    OptPlatform
    客户端平台,取值参见 第三方回调简介:回调协议 中 OptPlatform 的参数含义

    请求包示例

    {
    "CallbackCommand": "C2C.CallbackAfterSendMsg", // 回调命令
    "From_Account": "jared", // 发送者
    "To_Account": "Jonh", // 接收者
    "MsgSeq": 48374, // 消息序列号
    "MsgRandom": 2837546, // 消息随机数
    "MsgTime": 1557481126, // 消息的发送时间戳,单位为秒
    "MsgKey": "48374_2837546_1557481126", // 消息的唯一标识,可用于 REST API 撤回单聊消息
    "OnlineOnlyFlag":1,//在线消息,为1,否则为0;
    "SendMsgResult": 0, // 该条消息的下发结果
    "ErrorInfo": "send msg succeed", // 该条消息下发失败的错误信息,若消息发送成功,则为"send msg succeed"
    "UnreadMsgNum": 7, // To_Account 未读的单聊消息总数量
    "MsgBody": [ // 消息体
    {
    "MsgType": "TIMTextElem", // 文本
    "MsgContent": {
    "Text": "red packet"
    }
    }
    ],
    "CloudCustomData": "your cloud custom data"
    }

    请求包字段说明

    字段
    类型
    说明
    CallbackCommand
    String
    回调命令
    From_Account
    String
    消息发送者 UserID
    To_Account
    String
    消息接收者 UserID
    MsgSeq
    Integer
    消息序列号,用于标记该条消息(32位无符号整数)
    MsgRandom
    Integer
    消息随机数,用于标记该条消息(32位无符号整数)
    MsgTime
    Integer
    消息的发送时间戳,单位为秒
    单聊消息优先使用 MsgTime 进行排序,同一秒发送的消息则按 MsgSeq 排序,MsgSeq 值越大消息越靠后
    MsgKey
    String
    该条消息的唯一标识,可根据该标识进行 REST API 撤回单聊消息
    MsgId
    String
    该条消息在客户端唯一标识。
    OnlineOnlyFlag
    Integer
    是否仅发送给在线用户标识。1代表仅发送给在线用户,否则为0
    SendMsgResult
    Integer
    该条消息的发送结果,0表示发送成功,非0表示发送失败,具体可参见 错误码
    ErrorInfo
    String
    该条消息下发失败的错误信息,若消息发送成功,则为"send msg succeed"
    UnreadMsgNum
    Integer
    To_Account 未读的单聊消息总数量(包含所有的单聊会话)。若该条消息下发失败(例如被脏字过滤),该字段值为-1
    MsgBody
    Array
    消息体,具体参见 消息格式描述
    CloudCustomData
    String
    消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)

    应答包示例

    {
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 0 // 0为回调成功,1为回调出错
    }

    应答包字段说明

    字段
    类型
    属性
    说明
    ActionStatus
    String
    必填
    请求处理的结果,OK 表示处理成功,FAIL 表示失败
    ErrorCode
    Integer
    必填
    错误码,0为回调成功;1为回调出错
    ErrorInfo
    String
    必填
    错误信息

    参考

    联系我们

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

    技术支持

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

    7x24 电话支持