Webhook for Exceptions When Group Messages Are Sent
Feature Overview
This callback allows you to monitor the exceptions on the application backend when group messages are sent, including:
The message sent contains an incorrect parameter (for example, the group ID does not exist).
The message sending frequency exceeds the limit.
The message sent is found to be non-compliant after content filtering.
The sender is muted.
Notes
To enable this callback, you must configure a callback URL and enable the corresponding switch for this callback. For more information on the configuration method, see Callback Configuration.
During this callback, the Chat backend initiates an HTTP POST request to the app backend.
After receiving the callback request, the app backend must check whether the 
SDKAppID contained in the request URL is the SDKAppID of the app.For more security considerations, see the Security Considerations section in Third-Party Callback Overview.
Callback Triggering Scenarios
An app user sends a group message on the client.
The app admin sends a group message via a RESTful API call.
Callback Triggering Timing
It will be triggered after the Chat backend failed to deliver the group message to group members.
API Calling Description
Sample request URL
In the following sample, the callback URL configured in 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 | Callback URL | 
| SdkAppid | The  SDKAppIDassigned by the Chat console when the app is created | 
| CallbackCommand | Fixed value:  Group.CallbackSendMsgException. | 
| contenttype | Fixed value:  JSON. | 
| OptPlatform | Client platform. For valid values, see the description of  OptPlatformin the Callback Protocols section of Third-Party Callback Overview. | 
Sample request
{"CallbackCommand": "Group.CallbackSendMsgException", // Callback command"GroupId": "@TGS#2J4SZEAEL", // Group ID"Type": "Public", // Group type"From_Account": "jared", // Sender"Operator_Account":"admin", // Request initiator"Random": 123456, // Random number"OnlineOnlyFlag": 1, // The value is `1` if it is an online message and `0` (default) if it’s not. For audio-video groups, the value is `0`."MsgBody": [ // Message body. For more information, see the `TIMMessage` message object.{"MsgType": "TIMTextElem", // Text"MsgContent":{"Text": "red packet"}}],"CloudCustomData": "your cloud custom data","ErrorCode": 10023, // Message exception error code"ErrorInfo": "msg count exceeds limit,please retry later" // Message exception details"EventTime":"1670574414123"// Event trigger timestamp in milliseconds}
Request fields
| Field | Type | Description | 
| CallbackCommand | String | Callback command | 
| GroupId | String | ID of the group that generates group messages | 
| Type | String | Type of the group that generates group messages, such as  Public. For details, see Group Types section in Group System. | 
| From_Account | String | UserIDof the message sender | 
| Operator_Account | String | UserID of the request initiator, based on which the system can identify whether the request is initiated by the admin. | 
| Random | Integer | A 32-bit random number in the request | 
| OnlineOnlyFlag | Integer | The value is  1if it is an online message and0(default) if it’s not. For audio-video groups, the value is0. | 
| MsgBody | Array | |
| CloudCustomData | String | Custom message data. It is saved in the cloud and will be sent to the peer end. Such data can be pulled after the app is uninstalled and reinstalled. | 
| ErrorCode | Interger | |
| ErrorInfo | String | Message exception details | 
| EventTime | Integer | Event trigger timestamp in milliseconds | 
Sample response
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0}
Response fields
| Field | Type | Required | Description | 
| ActionStatus | String | Required | Request result. Fixed value:  OK. | 
| ErrorCode | Integer | Required | Error code. Fixed value:  0. | 
| ErrorInfo | String | Required | Error message. Fixed value: An empty string. | 
References
RESTful API: Sending Ordinary Messages in a Group