tencent cloud

Chat

제품 소개
제품 개요
Basic Concepts
응용 시나리오
기능 소개
계정 시스템
사용자 정보 및 관계망
메시지 관리
그룹 시스템
Official Account
Audio/Video Call
사용 제한
구매 가이드
과금 개요
요금 안내
Purchase Instructions
Renewal Guide
연체 안내
Refund Policy
다운로드 센터
SDK & Demo 소스 코드
업데이트 로그
시나리오 솔루션
Live Streaming Setup Guide
AI Chatbot
대규모 엔터테인먼트 협업 커뮤니티
Discord 구현 가이드
IM을 게임에 통합하는 방법
WhatsApp Channel-style Official Account Integration Solution
Send Red Packet
Firewall Restrictions
클라이언트 APIs
SDK API(Web)
Android
iOS & macOS
Swift
Flutter
Electron
Unity
React Native
C APIs
C++
서버 APIs
Secure authentication with UserSig
RESTful APIs
Webhooks
콘솔 가이드
New Console Introduction
애플리케이션 생성 및 업그레이드
기본 설정
기능 설정
계정 관리
그룹 관리
Official Channel Management
콜백 설정
모니터링 대시보드
Viewing Guide for Resource Packages
Real-Time Monitor
개발 보조 툴
액세스 관리
Advanced Features
FAQ
uni-app FAQs
구매
SDK 관련 질문
계정 인증
사용자 정보 및 관계망
메시지
그룹
라이브 방송 그룹
닉네임 및 프로필 사진
협약 및 인증
Service Level Agreement
컴플라이언스 인증
IM 정책
개인 정보 보호 정책
데이터 개인 정보 보호 및 보안 계약
에러 코드
문의하기

Before Official Channel Message Is Sent

PDF
포커스 모드
폰트 크기
마지막 업데이트 시간: 2025-05-27 10:18:57

Feature Overview

This webhook allows the app backend to view the broadcast messages of a official channel in real time, including:
Records official channel messages in real time, for example, by recording a log or synchronizing the messages to other systems.
Blocks users' requests to send messages on a official channel.
Caution
The pre-message webhook defaults to a 2-second timeout and does not support adjustments. Using this for content review will add two instances of public network transmission, thereby at least doubling the overall latency compared to regular scenarios.

Notes

To enable the webhook, you must configure the Webhook URL and activate the switch corresponding to this webhook protocol. For detailed configuration instructions, please refer to the Webhook Configuration document.
During this webhook, the IM backend initiates an HTTP POST request to the app backend.
After receiving the webhook request, the app backend must check whether the SDKAppID contained in the request URL is consistent with its own SDKAppID.
For additional safety-related concerns, please refer to the Webhook Overview: Security Considerations document.

Webhook Triggering Scenarios

An app user sends a Official Account Message via the client.
The app administrator sends a Official Account Message via RESTful APIs.

Webhook Triggering Timing

The webhook is triggered before the Chat backend sends a Official Account Message to subscribers.

API Calling Description

Sample request URL

In the subsequent example, the webhook URL configured within the app is https://www.example.com. Example:
https://www.example.com?SdkAppid=$SDKAppID&CallbackCommand=$CallbackCommand&contenttype=json&ClientIP=$ClientIP&OptPlatform=$OptPlatform

Request parameters

Parameter
Description
https
The request protocol is HTTPS, and the request method is POST.
www.example.com
Webhook URL.
SdkAppid
The SDKAppID assigned by the Chat console when an app is created.
CallbackCommand
Fixed as OfficialAccount.CallbackBeforeSendMsg.
contenttype
Fixed value: JSON.
ClientIP
Client IP, such as: 127.0.0.1.
OptPlatform
Client Platform, for values please refer to Webhook Overview: Webhook Protocol for the meaning of the OptPlatform parameter.

Sample request

{
"CallbackCommand": "OfficialAccount.CallbackBeforeSendMsg", // Webhook command
"Official_Account": "@TOA#_2J4SZEAEL", // Official Account User ID
"OnlineOnlyFlag": 1, // The value is `1` if it is an online message and `0` if it's not
"MsgBody": [ // Message body, refer to TIMMessage object
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
}
],
"CloudCustomData": "your cloud custom data",
"EventTime": 1670574414123 // Event trigger timestamp in milliseconds
}

Request fields

Field
Type
Description
CallbackCommand
String
Webhook command.
Official_Account
String
Official Account User ID.
OnlineOnlyFlag
Integer
Online message, `1` if true, otherwise `0`.
MsgBody
Array
Message body, please refer to Message Formats.
CloudCustomData
String
Custom message data (stored in the cloud, will be sent to the peer, and can be retrieved even after the app is uninstalled and reinstalled).
EventTime
Integer
Event trigger timestamp in milliseconds.

Sample response

Allow speaking

Allow users to speak, without modifying the content of the message to be sent.
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0 // 0 means allowed to speak
}

Prohibit speaking

The user is not allowed to speak. Consequently, the message will not be sent, and the error code 10016 is returned to the requester.
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 1 // 1 means speaking is not allowed
}

Silent discard

The user is not allowed to speak. In this case, the message will not be sent, but a success response will be returned to the caller, making them believe that the message has been dispatched.
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 2 // 2 means Silent Discard
}

Change Message Content

In the following response example: The message sent to the official channel is modified (a custom Definition message was added). The Chat backend will send the modified message. Based on this feature, the app backend can add special content, such as user level and title, to the message sent by the user.
{
"ActionStatus": "OK",
"ErrorInfo": "",
"ErrorCode": 0, // Must be 0, only then can the modified message be properly dispatched
"MsgBody": [ // Message after App changes; if absent, the user's sent message is the default
{
"MsgType": "TIMTextElem", // Text
"MsgContent": {
"Text": "red packet"
}
},
{
"MsgType": "TIMCustomElem", // Custom message
"MsgContent": {
"Desc": "CustomElement.MemberLevel", // Description
"Data": "LV1" // Data
}
}
],
"CloudCustomData": "your cloud custom data"
}

Response fields

Field
Type
Attribute
Description
ActionStatus
String
Mandatory
Processed Request Result:
OK Signifies Successful Handling
FAILURE signifies unsuccessful execution
ErrorCode
Integer
Mandatory
Error Identifier:
0: Allow Speaking
1: Refuse to Speak
2: Silent discard
If the service wishes to reject a speech while conveying the error code ErrorCode and ErrorInfo to the client, please set the ErrorCode within the range [120001, 130000].
ErrorInfo
String
Mandatory
Error message.
MsgBody
Array
Optional
After modifications by the app, the modified message body will be sent to Official Account Messages by the cloud communication backend. For the specific format, refer to Message Format Description.
CloudCustomData
String
Optional
Custom message data (stored in the cloud, will be sent to the peer, and can be retrieved even after the app is uninstalled and reinstalled).

References




도움말 및 지원

문제 해결에 도움이 되었나요?

피드백