tencent cloud

Feedback

Pulling Historical Official Account Messages

Last updated: 2024-06-18 16:49:44

    Background

    Chat's Official Account messages are sorted by Seq, which is assigned according to the order in which the server receives the Official Account messages. Earlier messages have a smaller Seq, and later ones have a larger Seq.
    Chat generates a MsgKey for each Official Account message, in the format of "Seq_1_ServerTime".
    If users want to pull all messages from a Official Account, they need to provide the LastMsgKey of the message. There is no need to fill in the LastMsgKey for the first pull, as the Server will automatically return the latest messages. For subsequent pulls, fill in the LastMsgKey with the LastMsgKey returned from the last request.
    If the returned message's IsPlaceMsg is 1, it means that the message of this Seq has either expired, failed to store, or has been deleted.

    Feature Overview

    App administrators can use this interface to pull historical messages from the official account.

    API Calling Description

    Sample request URL

    https://xxxxxx/v4/official_account_open_http_svc/official_account_msg_get_simple?sdkappid=88888888&identifier=admin&usersig=xxx&random=99999999&contenttype=json

    Request parameters

    The table below only lists the parameters modified when calling this API and their descriptions. For more details on the parameters, please refer to RESTful API Overview.
    Parameter
    Description
    xxxxxx
    The dedicated domain for 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
    Mumbai :adminapiind.im.qcloud.com
    Silicon Valley :adminapiusa.im.qcloud.com
    Jakarta :adminapiidn.im.qcloud.com
    v4/official_account_open_http_svc/official_account_msg_get_simple
    Request API
    sdkappid
    SDKAppID assigned by the Chat console when an app is created
    identifier
    You must be an App admin account. For more details, see App Admins
    usersig
    The Signature generated by the App admin account. For details, see Generating UserSig
    random
    A random 32-bit unsigned integer ranging from 0 to 4294967295
    contenttype
    Request format fixed value: json

    Maximum calling frequency

    200 queries/sec.

    Sample request packets

    Basic form Pulling the official account's historical messages returns the latest ReqMsgNumber messages from the official account.
    {
    "Official_Account": "@TOA#_15ERQPAER", //Pull messages from the official account user
    "ReqMsgNumber": 2 //Number of messages to pull
    }
    Continue pulling by LastMsgKey Returns messages earlier than the specified LastMsgKey.
    {
    "Official_Account": "@TOA#_15ERQPAER",
    "LastMsgKey": "71_1_1698741698", // Continuation MsgKey
    "ReqMsgNumber": 2
    }

    Request packet fields

    Field
    Type
    Attribute
    Description
    Official_Account
    String
    Mandatory
    Official account user whose historical messages are to be pulled
    LastMsgKey
    String
    Optional
    The MsgKey of the last message fetched last time. This field must be filled for continuation pulling. See the method of filling above in Sample
    ReqMsgNumber
    Integer
    Optional
    Number of requested messages
    WithRecalledMsg
    Integer
    Optional
    Whether to pull messages that have been revoked, filling in 1 indicates the need to pull messages after revocation; by default, messages after revocation are not pulled

    Sample response packets

    {
    "ActionStatus": "OK",
    "ErrorInfo": "",
    "ErrorCode": 0,
    "Official_Account": "@TOA#_15ERQPAER",
    "IsFinished": 1,
    "LastMsgKey": "71_1_1698741698"
    "RspMsgList": [
    {
    "From_Account": "144115197276518801",
    "IsPlaceMsg": 0,
    "MsgBody": [
    {
    "MsgContent": {
    "Data": "\\b\\u0001\\u0010\\u0006\\u001A\\u0006Cat's Eye",
    "Desc": "MIF",
    "Ext": ""
    },
    "MsgType": "TIMCustomElem"
    },
    {
    "MsgContent": {
    "Data": "",
    "Index": 15
    },
    "MsgType": "TIMFaceElem"
    }
    ],
    "MsgSeq": 71,
    "MsgKey" :"71_1_1698741698"
    "MsgTimeStamp": 1698741698
    },
    {
    "From_Account": "144115198339527735",
    "IsPlaceMsg": 0,
    "MsgBody": [
    {
    "MsgContent": {
    "Data": "\\b\\u0001\\u0010\\u0006\\u001A\\u000FWatermelon Sister.",
    "Desc": "MIF",
    "Ext": ""
    },
    "MsgType": "TIMCustomElem"
    },
    {
    "MsgContent": {
    "Text": "Report"
    },
    "MsgType": "TIMTextElem"
    }
    ],
    "MsgSeq": 72,
    "MsgKey" :"72_1_1698741700"
    "MsgTimeStamp": 1698741700
    }
    ]
    }

    Response packet field description

    Field
    Type
    Description
    ActionStatus
    String
    Processed Request Result:
    OK: Indicates successful processing
    FAIL: Indicates failure
    ErrorInfo
    String
    Error message
    ErrorCode
    Integer
    Error Identifier:
    0: Indicates success
    Non-zero: Indicates failure
    Official_Account
    String
    Official Account Users in the Request
    IsFinished
    Integer
    Whether all messages in the request range have been returned
    When all messages in the request range are successfully returned, the value is 1
    When the message length is too long or the range is too large (exceeding 20), resulting in the inability to return all messages, the value is 0
    When all messages before the request range have expired, the value is 2
    RspMsgList
    Array
    The returned message list
    IsPlaceMsg
    Integer
    Whether it is a hollow message, when the message is deleted or expired:
    If MsgBody is empty, this field is 1
    For a recalled message, this field is 2
    MsgKey
    String
    This tag identifies the message, which can be used for recalling Official Account Messages
    MsgSeq
    Integer
    Message seq, used to identify unique messages, the smaller the value, the earlier it is sent
    MsgTimeStamp
    Integer
    Timestamp when the message was sent (in seconds), server time
    MsgBody
    Object / Array
    Message Content, for details please refer to the Message Content MsgBody

    Error codes

    Unless a network error occurs (such as a 502 error), the HTTP return code for this interface is always 200. The real error code and error message are indicated by ErrorCode, ErrorInfo in the response body. Common error codes (60000 to 79999) can be found in the Error Codes document. The private error codes for this API are as follows:
    Error code
    Description
    10002
    Internal server error, please try again
    10003
    Illegal Request Command Word
    10004
    Invalid parameter, please check if the request is correct based on the error description
    10007
    Insufficient Operational Permissions, the operator must be a role that is authorized to perform the corresponding operations in the Official Account
    10010
    Official Account User does not exist, or may have existed in the past, but is now dissolved
    10015
    Invalid Official Account User ID, please check if the Official Account User ID is correctly filled in

    API Debugging Tool

    Use the RESTful API Online Debugging Tool to debug this API.
    
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support