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. The app backend can 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 the callback request is received, 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 Chat 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 | Client platform, see the meaning of OptPlatform in Webhook Overview: Callback Protocol |
Sample Request Packets
{"CallbackCommand": "Group.CallbackAfterReadReceipt", // Callback after read receipt"GroupId": "@TGS#2TTV7VSII", // Group ID"Type": "Public", // Group Type"GroupMsgReceiptList": [ // Read Receipt Message{"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 | Required | Processed Request Result: OK: Indicates successful processing FAIL: Indicates failure |
ErrorCode | Integer | Required | Error Code, entering 0 here means to ignore the response result |
ErrorInfo | String | Required | Error message |
Reference
RESTful API: Sending Ordinary Messages in a Group