Callback After Read Receipt
Feature Overview
The App Backend can use this callback to view the status of group message read receipts in real-time, and accordingly, perform operations such as data synchronization.
Notes
To enable the callback, you must configure a callback URL and toggle on the corresponding protocol switch. For detailed configuration methods, see Third-party Callback Configuration document.
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 consistent with its own SDKAppID.
For other security-related matters, please refer to the Webhook Overview - Security Considerations document.
Scenarios that may trigger this callback
An App user sends a read receipt message through the client.
An App user acknowledges group message read receipts through the client.
The App administrator sends a read receipt message via RESTful APIs.
Callback Trigger Time
Send a read receipt message or acknowledge a message as read.
API description
Sample request URL
In the subsequent example, the callback 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 | Callback URL |
SdkAppid | SDKAppID allocated by the Instant Messaging console at the time of Application creation |
CallbackCommand | Fixed to Group.CallbackAfterReadReceipt |
contenttype | Fixed value: JSON |
ClientIP | Client IP, such as 127.0.0.1 |
OptPlatform |
Sample request packets
{"CallbackCommand": "Group.CallbackAfterReadReceipt", // Callback after read receipt"GroupId": "@TGS#2TTV7VSII", // Group ID"Type": "Public", // Group Type"GroupMsgReceiptList": [ // Read Receipt Information{"MsgSeq": 1,"ReadNum": 1, // Group message read count"UnreadNum": 6 // Group message unread count"ReadReceiptMembers":[{"Member_Account":"user0"}]},{"MsgSeq": 2,"ReadNum": 1,"UnreadNum": 6,"ReadReceiptMembers":[{"Member_Account":"user0"}]}],"EventTime":"1670574414123"// Event trigger timestamp in milliseconds}
Request packet fields
Field | Type | Description |
CallbackCommand | String | Callback command |
GroupId | String | Operating Group ID |
Type | String | |
GroupMsgReceiptList | Array | Read Receipt Information |
MsgSeq | Integer | Message Seq |
ReadNum | Integer | Number of Read Members |
UnreadNum | Integer | Number of Unread Members |
ReadReceiptMembers | Array | List of Read Members, Member_Account is the UserID of members who have read |
EventTime | Integer | Event trigger timestamp in milliseconds |
Response packet example
Following data synchronization, the app backend dispatches a callback response packet.
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0 // Ignore callback result}
Response packet field description
Field | Type | Attribute | Description |
ActionStatus | String | Mandatory | Processed Request Result: OK: Indicates successful processing FAIL: Indicates failure |
ErrorCode | Integer | Mandatory | Error Code, entering 0 here means to ignore the response result |
ErrorInfo | String | Mandatory | Error message |
Reference
RESTful API:Sending Ordinary Messages in a Group