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
Group Type (Community not supported for now) Group Type Introduction, for example, Public
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