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 IM 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 IM 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 SDKAppID assigned by the IM 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 OptPlatform in 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 | UserID of 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 1 if it is an online message and 0 (default) if it’s not. For audio-video groups, the value is 0 . |
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