tencent cloud

文档反馈

拉取公众号用户历史消息

最后更新时间:2024-07-16 10:41:26

    背景说明

    即时通信 IM 的公众号消息是按 Seq 排序的,按照 server 收到公众号消息的顺序分配 Seq,先发的公众号消息 Seq 小,后发的 Seq 大。
    即时通信 IM 会给每条公众号消息生成一个 MsgKey,格式为 "Seq_1_ServerTime"。
    如果用户想拉取一个公众号的全量消息,需要填写消息的 LastMsgKey,首次拉取时不用填拉取 LastMsgKey,Server 会自动返回最新的消息,以后拉取时拉取 LastMsgKey 填上次请求返回 LastMsgKey。
    如果返回消息的 IsPlaceMsg 为1,表示这个 Seq 的消息或者过期、或者存储失败、或者被删除了。

    功能说明

    App 管理员可以通过该接口拉取公众号的历史消息。

    接口调用说明

    请求 URL 示例

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

    请求参数说明

    下表仅列出调用本接口时涉及修改的参数及其说明,更多参数详情请参考 REST API 简介
    参数
    说明
    xxxxxx
    SDKAppID 所在国家/地区对应的专属域名:
    中国:console.tim.qq.com
    新加坡:adminapisgp.im.qcloud.com
    首尔: adminapikr.im.qcloud.com
    法兰克福:adminapiger.im.qcloud.com
    硅谷:adminapiusa.im.qcloud.com
    雅加达:adminapiidn.im.qcloud.com
    v4/official_account_open_http_svc/official_account_msg_get_simple
    请求接口
    sdkappid
    创建应用时即时通信 IM 控制台分配的 SDKAppID
    identifier
    必须为 App 管理员账号,更多详情请参见 App 管理员
    usersig
    App 管理员账号生成的签名,具体操作请参见 生成 UserSig
    random
    请输入随机的32位无符号整数,取值范围0 - 4294967295
    contenttype
    请求格式固定值为json

    最高调用频率

    200次/秒。

    请求包示例

    基础形式 拉取公众号的历史消息,返回公众号最新的 ReqMsgNumber 条消息。
    {
    "Official_Account": "@TOA#_15ERQPAER", //拉取消息的公众号用户
    "ReqMsgNumber": 2 //需要拉取的消息条数
    }
    LastMsgKey 续拉 返回早于指定 LastMsgKey 之前的消息。
    {
    "Official_Account": "@TOA#_15ERQPAER",
    "LastMsgKey": "71_1_1698741698", // 续拉 MsgKey
    "ReqMsgNumber": 2
    }

    请求包字段说明

    字段
    类型
    属性
    说明
    Official_Account
    String
    必填
    要拉取历史消息的公众号用户
    LastMsgKey
    String
    选填
    上一次拉取到的最后一条消息的 MsgKey,续拉时需要填该字段,填写方法见上方 示例
    ReqMsgNumber
    Integer
    选填
    请求的消息条数
    WithRecalledMsg
    Integer
    选填
    是否带撤回的消息,填1表明需要拉取撤回后的消息;默认不拉取撤回后的消息

    应答包体示例

    {
    "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\\u0006猫瞳",
    "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\\u000F西瓜妹妹。",
    "Desc": "MIF",
    "Ext": ""
    },
    "MsgType": "TIMCustomElem"
    },
    {
    "MsgContent": {
    "Text": "报上来"
    },
    "MsgType": "TIMTextElem"
    }
    ],
    "MsgSeq": 72,
    "MsgKey" :"72_1_1698741700"
    "MsgTimeStamp": 1698741700
    }
    ]
    }

    应答包字段说明

    字段
    类型
    说明
    ActionStatus
    String
    请求处理的结果:
    OK:表示处理成功
    FAIL:表示失败
    ErrorInfo
    String
    错误信息
    ErrorCode
    Integer
    错误码:
    0:表示成功
    非0:表示失败
    Official_Account
    String
    请求中的公众号用户
    IsFinished
    Integer
    是否返回了请求区间的全部消息
    当成功返回了请求区间的全部消息时,值为1
    当消息长度太长或者区间太大(超过20)导致无法返回全部消息时,值为0
    当请求区间之前的所有消息都过期时,值为2
    RspMsgList
    Array
    返回的消息列表
    IsPlaceMsg
    Integer
    是否是空洞消息,当消息被删除或者消息过期后:
    MsgBody 为空,该字段为1
    撤回的消息,该字段为2
    MsgKey
    String
    标识该条消息,可用于 撤回公众号消息
    MsgSeq
    Integer
    消息 seq,用于标识唯一消息,值越小发送的越早
    MsgTimeStamp
    Integer
    消息被发送的时间戳(单位:秒),server 的时间
    MsgBody
    Object / Array
    消息内容,详情请参见 消息内容 MsgBody 说明

    错误码说明

    除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的。 公共错误码(60000到79999)参见 错误码 文档。 本 API 私有错误码如下:
    错误码
    描述
    10002
    服务器内部错误,请重试
    10003
    请求命令字非法
    10004
    参数非法,请根据错误描述检查请求是否正确
    10007
    操作权限不足,操作人必须为该公众号中有权限执行对应操作的角色
    10010
    公众号用户不存在,或者曾经存在过,但是目前已经被解散
    10015
    公众号用户 ID 非法,请检查公众号用户 ID 是否填写正确

    接口调试工具

    通过 REST API 在线调试工具 调试本接口。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持