Pulling Historical Group Messages
Background
Tencent Chat group messages are sorted by seq, and seq is allocated according to the order in which group messages are received by the server. The seq is greater for group messages sent earlier and smaller for group messages sent later.
To pull all the messages of a group, you do not need to enter the seq for the initial pull. Instead, the server automatically returns the latest messages. For subsequent pulls, enter the previously returned smallest seq minus 1.
If the value of
IsPlaceMsg
in the returned message is 1
, it indicates that the message with this seq has expired, failed to be stored, or been deleted.Feature Overview
This API allows the app administrator to pull the historical messages of a group.
API Calling Description
Applicable group types
Group Type ID | Support for This RESTful API |
Private | Yes. Same as work groups (Work) in the new version. |
Public | Yes |
ChatRoom | Yes. Same as meeting groups (Meeting) in the new version. |
AVChatRoom | No |
Community | Yes |
Note
Audio-video groups (AVChatRoom) do not support this API because the historical messages of this type of group cannot be stored.
Sample request URL
https://xxxxxx/v4/group_open_http_svc/group_msg_get_simple?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json
Request parameters
The following table describes the modified parameters when this API is called. For other parameters, see RESTful API Overview.
Parameter | Description |
xxxxxx | Domain name corresponding to the country/region where your SDKAppID is located. China: console.tim.qq.com Singapore: adminapisgp.im.qcloud.com Seoul: adminapikr.im.qcloud.com Frankfurt: adminapiger.im.qcloud.com Silicon Valley: adminapiusa.im.qcloud.com Jakarta: adminapiidn.im.qcloud.com |
v4/group_open_http_svc/group_msg_get_simple | The request API |
sdkappid | SDKAppID assigned by the Chat console when an app is created |
identifier | |
usersig | |
random | A random 32-bit unsigned integer ranging from 0 to 4294967295. |
contenttype | Request format. The value is fixed to json . |
Maximum call frequency
200 calls per second
Sample request
Basic format
Pulls the historical messages of a group. The most recent
ReqMsgNumber
group messages will be returned.{"GroupId": "@TGS#15ERQPAER", // The ID of the group of which messages are to be pulled"ReqMsgNumber": 2 // The number of messages to be pulled}
Pulling by seq
Pulls the historical messages of a group based on the specified seq.
The seq of the returned messages is less than or equal to the
ReqMsgNumber
of ReqMsgSeq
.{"GroupId": "@TGS#15ERQPAER","ReqMsgSeq": 7803321, // The maximum seq of the requested messages. The messages with a seq less than or equal to `ReqMsgSeq` will be returned."ReqMsgNumber": 2}
Request fields
Field | Type | Required | Description |
GroupId | String | Yes | The ID of the group of which messages are to be pulled |
ReqMsgNumber | Integer | Yes | The number of historical messages to be pulled. At present, a maximum of 20 historical messages can be returned per request. Therefore, please set the value of this field to 20 or less. |
ReqMsgSeq | Integer | No | The maximum seq of the messages to be pulled |
WithRecalledMsg | Integer | Optional | Whether to pull recalled messages. 1 : pull recalled messages. Recalled messages are not pulled by default. |
TopicId | String | No | ID of the topic for which messages are pulled. This field applies only to topic-enabled communities. |
Sample response
{"ActionStatus": "OK","ErrorInfo": "","ErrorCode": 0,"GroupId": "@TGS#15ERQPAER","IsFinished": 1,"RspMsgList": [{"From_Account": "144115197276518801","IsPlaceMsg": 0,"MsgBody": [{"MsgContent": {"Data": "\b\u0001\u0010\u0006\u001A\u0006 MaoTong","Desc": "MIF","Ext": ""},"MsgType": "TIMCustomElem"},{"MsgContent": {"Data": "","Index": 15},"MsgType": "TIMFaceElem"}],"MsgPriority": 1,"MsgRandom": 51083293,"MsgSeq": 7803321,"MsgTimeStamp": 1458721802},{"From_Account": "144115198339527735","IsPlaceMsg": 0,"MsgBody": [{"MsgContent": {"Data": "\b\u0001\u0010\u0006\u001A\u000F Watermelon Girl","Desc": "MIF","Ext": ""},"MsgType": "TIMCustomElem"},{"MsgContent": {"Text": "Report"},"MsgType": "TIMTextElem"}],"MsgPriority": 1,"MsgRandom": 235168582,"MsgSeq": 7803320,"MsgTimeStamp": 1458721797}]}
Response fields
Field | Type | Description |
ActionStatus | String | Request result. OK : successful; FAIL : failed |
ErrorInfo | String | Error information |
ErrorCode | Integer | Error code. 0 : Successful; other values: Failed |
groupID | String | The group ID in the request |
IsFinished | Integer | Whether all the requested messages are returned. 1 : All the requested messages are returned.0 : Not all requested messages are returned because the messages are too long or the number of messages is greater than 20.2 : The requested messages are too long or the number of messages is greater than 20 and all the messages have expired. |
MsgList | Array | A list of returned messages |
From_Account | String | The UserID of the message sender |
IsPlaceMsg | Integer | Whether a message is empty. If the message has been deleted or expired, MsgBody is empty and the value of this field is 1 . If the message has been recalled, the value of this field is 2 . |
MsgPriority | Integer | Message priority, which is used for message deduplication. A value is entered when the client sends a message. If no value is entered, the server automatically generates one. 1 : high priority; 2 : normal priority, 3 : low priority; 4 : lowest priority |
MsgRandom | Integer | Message random value, which is used for message deduplication. A value is entered when the client sends a message. If no value is entered, the server automatically generates one. |
MsgSeq | Integer | The unique seq of the message. The smaller the value, the earlier the message was sent. |
MsgTimeStamp | Integer | The timestamp when the message was sent, which follows the server time system |
MsgBody | Array | |
IsSystemMsg | Integer | Whether the message is a system message. 1 : Yes |
Error Codes
The returned HTTP status code for this API is always 200 unless a network error (such as error 502) occurs. The specific error code and details can be found in the response fields
ErrorCode
and ErrorInfo
respectively.
For public error codes (60000 to 79999), see Error Codes.
The following table describes the error codes specific to this API:Error Code | Description |
10002 | Internal server error. Try again. |
10003 | Invalid command word. |
10004 | Invalid parameter. Check the error description and troubleshoot the issue. |
10007 | No operation permissions. The operator must have permissions to perform corresponding operations. |
10010 | The group does not exist or has been deleted. |
10015 | Invalid group ID. Use the correct group ID. |