tencent cloud

即时通信 IM

动态与公告
产品动态
公告
产品简介
产品概述
基本概念
应用场景
功能介绍
账号系统
用户资料与关系链
消息管理
群组相关
公众号系统
音视频通话 Call
使用限制
购买指南
计费概述
价格说明
购买指引
续费指引
停服说明
退费说明
开发指引
Demo 专区
开通服务
体验 Demo
快速跑通
下载中心
SDK & Demo 源码
更新日志
聊天互动(含 UI)
TUIKit 组件介绍
快速开始
全功能接入
单功能接入
AI 集成
构建基础界面
更多特性
定义外观
国际化界面语言
推送服务(Push)
服务概述
名词解释
开通服务
快速跑通
厂商通道
数据统计
排查工具
客户端 API
服务端 API
推送回调
高级功能
更新日志
错误码
常见问题
智能客服
功能概述
快速入门
集成指引
管理员操作手册
客服操作手册
更多实践
直播间搭建
AI 聊天机器人方案
超大娱乐协作社群
Discord 实现指南
游戏内集成 Chat 指南
类 WhatsApp Channel 搭建方案
发送红包
Chat 应对防火墙限制相关
无 UI 集成
快速开始
集成 SDK
初始化
登录登出
消息相关
会话相关
群组相关
社群话题
用户管理
离线推送
云端搜索
本地搜索
公众号
客户端 API
JavaScript
Android
iOS & macOS
Swift
Flutter
Electron
Unity
React Native
C 接口
C++
服务端 API
生成 UserSig
REST API
第三方回调
控制台指南
新版控制台介绍
创建并升级应用
基本配置
功能配置
账号管理
群组管理
公众号管理
回调配置
用量统计
资源包查看指南
实时监控
开发辅助工具
访问管理
高级功能
常见问题
uni-app 常见问题
购买相关问题
SDK 相关问题
账号鉴权相关问题
用户资料与关系链相关问题
消息相关问题
群组相关问题
直播群相关问题
昵称头像相关问题
协议与认证
服务等级协议
安全合规认证
IM 政策
隐私政策
数据隐私和安全协议
平滑迁移方案
平滑迁移完整版
平滑迁移简化版
错误码
联系我们

发单聊消息之前回调

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-03-10 14:47:07

功能描述

App 后台可以通过该回调实时对用户的单聊消息进行操作,包括:
对发单聊消息进行实时记录(例如记录日志,或者同步到其他系统)。
拦截用户的违规发言请求。可自定义拦截违规消息,如文本、图像、自定义消息等。
注意:
消息前回调默认2s超时且不建议调整,使用前回调处理内容审核,可能导致整个前回调超时。

注意事项

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

可能触发该回调的场景

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

回调发生时机

即时通信 Chat 后台收到用户发送的单聊消息之后、将该消息下发给目标用户之前。

接口说明

请求 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](http://www.example.com)
回调 URL
SdkAppid
创建应用时在即时通信 Chat 控制台分配的 SDKAppID
CallbackCommand
固定为:C2C.CallbackBeforeSendMsg
contenttype
请求包体固定为 JSON
ClientIP
客户端 IP,格式如:127.0.0.1
OptPlatform
客户端平台,取值参见 第三方回调简介:回调协议 中 OptPlatform 的参数含义

请求包示例

{
"CallbackCommand": "C2C.CallbackBeforeSendMsg", // 回调命令
"From_Account": "jared", // 发送者
"To_Account": "Jonh", // 接收者
"MsgSeq": 48374, // 消息序列号
"MsgRandom": 2837546, // 消息随机数
"MsgTime": 1557481126, // 消息的发送时间戳,单位为秒
"MsgKey": "48374_2837546_1557481126", //消息的唯一标识,可用于 REST API 撤回单聊消息
"OnlineOnlyFlag":1, //在线消息,为1,否则为0;
"MsgBody": [ // 消息体,参见 TIMMessage 消息对象
{
"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 撤回单聊消息
OnlineOnlyFlag
Integer
在线消息,为1,否则为0
MsgBody
Array
消息体,详情请参见 消息格式描述
CloudCustomData
String
消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)

应答包示例(允许发言)

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

应答包示例(禁止发言)

不允许用户发言,该消息将不会下发,同时给用户(即消息发送者)返回错误码20006
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 1 // 1 为拒绝发言
}

应答包示例(静默丢弃)

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

应答包示例(变动消息内容)

如下的应答示例为:对用户发送的单聊消息进行了变动(增加了自定义消息或消息自定义数据),即时通信 Chat 后台将会下发经过变动之后的消息。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 new cloud custom data" // 消息自定义数据
}

应答包字段说明

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

参考

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック