https://xxxxxx/v4/open_msg_svc/get_history?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json
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 |
v4/open_msg_svc/get_history | 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 . |
{"ChatType": "C2C","MsgTime": "2015120121"}
Field | Type | Required | Description |
ChatType | String | Required | Message type. C2C indicates a one-to-one message, whereas Group indicates a group message. |
MsgTime | String | Required | Period for downloading message records. MsgTime uses Beijing time and does not support other time zones. For example, 2015120121 indicates that messages in the period of 21:00 to 21:59 on December 1, 2015 will be downloaded. This field needs to be specified by a hour. Each request can only be used to obtain all one-to-one or group message records that occur at the specified hour on the specific day. |
{"File": [{"URL": "https://download.tim.qq.com/msg_history/2/9b8f8f063b73f61698ce11e58207e89ade40.gz","ExpireTime": "2015-12-02 16:45:23","FileSize": 65207,"FileMD5": "cceece008bb7f469a47cf8c4b7acb84e","GzipSize": 1815,"GzipMD5": "c3a0269dde393fd7a8bb18bfdeaeee2e"}],"ActionStatus": "OK","ErrorInfo": "","ErrorCode":0}
Field | Type | Description |
ActionStatus | String | The processing result of the request. OK: succeeded. FAIL: failed. |
ErrorCode | Integer | Error code. 0 : Successful; other values: Failed |
ErrorInfo | String | Error information |
File | Array | Download information of the message record file |
URL | String | Download address of the message record file |
ExpireTime | String | Expiration time of the download address. Always download the file before the address expires. If the address expires, obtain a new address through the API. |
FileSize | Integer | File size (in bytes) before GZip compression |
FileMD5 | String | File MD5 before GZip compression |
GzipSize | Integer | File size (in bytes) after GZip compression |
GzipMD5 | String | File MD5 after GZip compression |
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 |
1001 | Invalid request. Check whether the request URL is correct. |
1002 | Invalid parameter. Check whether the account is the admin, required fields are specified, and the values meet protocol requirements. |
1003 | System error. |
1004 | The file has not been generated yet, or no message is delivered in the requested period. |
1005 | File expired. |
//For one-to-one messages{"SdkAppId":1104620500,"ChatType":"C2C","MsgTime":"2015120121","MsgList":[{"From_Account":"peakerdong","To_Account":"qiyueliuhuo2018","MsgTimestamp":1448974806,"MsgSeq":3452069198,"MsgRandom":45838,"MsgBody":[{"MsgType":"TIMTextElem","MsgContent":{"Text":"Quartering"}}]},{"From_Account":"group_root","To_Account":"group_test4","MsgTimestamp":1448974808,"MsgSeq":462709847,"MsgRandom":19196437,"MsgBody":[{"MsgType":"TIMTextElem","MsgContent":{"Text":"hi, beauty"}}]}]}//For group messages{"SdkAppId":1104620500,"ChatType":"Group","MsgTime":"2015120121","MsgList":[{"From_Account":"Test_1","GroupId":"@TGS#1FDFVPAE2","MsgTimestamp":1448975384,"MsgSeq":1,"MsgBody":[{"MsgType":"TIMTextElem","MsgContent":{"Text":"Private activate"}}]},{"From_Account":"Test_1","GroupId":"@TGS#1FDFVPAE2","MsgTimestamp":1448975384,"MsgSeq":1,"MsgBody":[{"MsgType":"TIMTextElem","MsgContent":{"Text":"Private activate"}}]}]}
MsgList
indicates the message array for the specified period. For example:# Python sample codeimport gzip, jsonwith gzip.open('1104620500_Group_2015120121.gz', 'rb') as fp:info = json.load(fp)for msg in info['MsgList']:pass #do sth with msg
# Python sample codeimport gzip, jsonwith gzip.open('1104620500_Group_2015120121.gz', 'rb') as fp:cnt = -1for line in fp:line = line.strip().rstrip(b',')if line == b']}': breakif cnt < 0:info = json.loads(line + b']}')else:msg = json.loads(line)#do sth with msgcnt += 1
문제 해결에 도움이 되었나요?