tencent cloud

文档反馈

导入单聊消息

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

    功能说明

    按时间顺序导入历史单聊消息到即时通信 IM。
    平滑过渡期间,将原有即时通信实时单聊消息按时间顺序导入到即时通信 IM。
    该接口会更新会话。
    该接口不会触发回调。
    对于同一个单聊会话的消息,该接口会根据 MsgSeq , MsgRandom , MsgTimeStamp 字段的值对导入的消息进行去重。仅当这三个字段的值都对应相同时,才判定消息是重复的,消息是否重复与消息内容本身无关。 另外,若两条消息的 MsgSeq , MsgRandom , MsgTimeStamp 字段对应相同,而 from_account 和 to_account 相反,则这两条消息也认为是重复的。
    重复导入的消息不会覆盖之前已导入的消息(即消息内容以首次导入的为准)。
    单聊消息 MsgSeq 字段的作用及说明:该字段在发送消息时由用户自行指定,该值可以重复,非后台生成,非全局唯一。与群聊消息的 MsgSeq 字段不同,群聊消息的 MsgSeq 由后台生成,每个群都维护一个 MsgSeq,从1开始严格递增。单聊消息历史记录对同一个会话的消息先以时间戳排序,同秒内的消息再以 MsgSeq 排序

    接口调用说明

    请求 URL 示例

    https://xxxxxx/v4/openim/importmsg?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/openim/importmsg
    请求接口
    sdkappid
    创建应用时即时通信 IM 控制台分配的 SDKAppID
    identifier
    必须为 App 管理员账号,更多详情请参见 App 管理员
    usersig
    App 管理员账号生成的签名,具体操作请参见 生成 UserSig
    random
    请输入随机的32位无符号整数,取值范围0 - 4294967295
    contenttype
    请求格式固定值为json

    最高调用频率

    200次/秒。

    请求包示例

    平滑过渡期间,实时消息导入
    {
    "SyncFromOldSystem": 5, // 平滑过渡期间,实时消息导入,消息计入未读计数,且消息会推送到终端
    "From_Account": "lumotuwe1", // 消息发送方账号
    "To_Account": "lumotuwe2", // 接收方账号
    "MsgSeq": 827092, // 消息序列号
    "MsgRandom": 1287657, // 消息随机数
    "MsgTimeStamp": 1556178721, // 消息时间,UNIX 时间戳,单位为秒
    "MsgBody": [ // 消息内容,本条消息是一条文本消息
    {
    "MsgType": "TIMTextElem", // 文本消息元素
    "MsgContent": {
    "Text": "hi, beauty"
    }
    }
    ],
    "CloudCustomData": "your cloud custom data"
    }
    历史消息导入
    {
    "SyncFromOldSystem": 2, // 历史消息导入,消息不计入未读计数,且消息不会推送到终端
    "From_Account": "lumotuwe1", // 消息发送方账号
    "To_Account": "lumotuwe2", // 接收方账号
    "MsgSeq": 827092, // 消息序列号
    "MsgRandom": 1287657, // 消息随机数
    "MsgTimeStamp": 1556178721, // 消息时间,UNIX 时间戳,单位为秒
    "MsgBody": [ // 消息内容,本条消息是一条文本消息
    {
    "MsgType": "TIMTextElem", // 文本消息元素
    "MsgContent": {
    "Text": "hi, beauty" // 消息内容
    }
    }
    ],
    "CloudCustomData": "your cloud custom data"
    }

    请求包字段说明

    字段
    类型
    属性
    说明
    SyncFromOldSystem
    Integer
    必填
    该字段只能填2或5,其他值是非法值
    2表示历史消息导入,消息不计入未读计数,且消息不会推送到终端
    5表示实时消息导入,消息计入未读计数,且消息会推送到终端
    From_Account
    String
    必填
    消息发送方 UserID,用于指定发送消息方
    To_Account
    String
    必填
    消息接收方 UserID
    MsgSeq
    Integer
    选填
    消息序列号(32位无符号整数),后台会根据该字段去重及进行同秒内消息的排序,详细规则请看本接口的功能说明。若不填该字段,则由后台填入随机数
    MsgRandom
    Integer
    必填
    消息随机数(32位无符号整数),后台用于同一秒内的消息去重。请确保该字段填的是随机
    MsgTimeStamp
    Integer
    必填
    消息时间戳,UNIX 时间戳,单位为秒。后台会根据该字段去重,详细规则请看本接口的功能说明。
    MsgBody
    Array
    必填
    消息内容,具体格式请参考 消息格式描述(注意,一条消息可包括多种消息元素,MsgBody 为 Array 类型)
    MsgType
    String
    必填
    TIM 消息对象类型,目前支持的消息对象包括:
    TIMTextElem(文本消息)
    TIMLocationElem(位置消息)
    TIMFaceElem(表情消息)
    TIMCustomElem(自定义消息)
    TIMSoundElem(语音消息)
    TIMImageElem(图像消息)
    TIMFileElem(文件消息)
    TIMVideoFileElem(视频消息)
    MsgContent
    Object
    必填
    对于每种 MsgType 用不同的 MsgContent 格式,具体可参考 消息格式描述
    CloudCustomData
    String
    选填
    消息自定义数据(云端保存,会发送到对端,程序卸载重装后还能拉取到)

    应答包体示例

    {
       "ActionStatus" : "OK",
       "ErrorInfo" : "",
       "ErrorCode" : 0
    }
    

    应答包字段说明

    字段
    类型
    说明
    ActionStatus
    String
    请求处理的结果,OK 表示处理成功,FAIL 表示失败
    ErrorCode
    Integer
    错误码,0表示成功,非0表示失败
    ErrorInfo
    String
    错误信息

    错误码说明

    除非发生网络错误(例如502错误),否则该接口的 HTTP 返回码均为200。真正的错误码,错误信息是通过应答包体中的 ErrorCode、ErrorInfo 来表示的; 公共错误码(60000到79999)参见 错误码 文档。
    本 API 私有错误码如下:
    错误码
    描述
    90001
    JSON 格式解析失败,请检查请求包是否符合 JSON 规范
    90002
    JSON 格式请求包中 MsgBody 不符合消息格式描述,或者 MsgBody 不是 Array 类型,请参考 TIMMsgElement 对象 的定义
    90003
    JSON 格式请求包体中缺少 To_Account 字段或者 To_Account 字段不是 String 类型
    90005
    JSON 格式请求包体中缺少 MsgRandom 字段或者 MsgRandom 字段不是 Integer 类型
    90006
    JSON 格式请求包体中缺少 MsgTimeStamp 字段或者 MsgTimeStamp 字段不是 Integer 类型
    90007
    JSON 格式请求包体中 MsgBody 类型不是 Array 类型,请将其修改为 Array 类型
    90008
    JSON 格式请求包体中缺少 From_Account 字段或者 From_Account 字段不是 Integer 类型
    90009
    请求需要 App 管理员权限
    90010
    JSON 格式请求包不符合消息格式描述,请参考 TIMMsgElement 对象 的定义
    90011
    批量发消息目标账号超过500个,请减少 To_Account 中目标账号数量
    90012
    To_Account 没有注册或不存在,请确认 To_Account 是否导入即时通信 IM 或者是否拼写错误
    90026
    消息离线存储时间错误(最多不能超过7天)
    90030
    JSON 格式请求包体中缺少 SyncFromOldSystem 字段或者 SyncFromOldSystem 字段不是 Integer 类型
    90048
    请求的用户账号不存在
    90992
    服务内部错误,请重试;如果所有请求都返回该错误码,且 App 配置了第三方回调,请检查 App 服务器是否正常向即时通信 IM 后台服务器返回回调结果
    91000
    服务内部错误,请重试
    93000
    JSON 数据包超长,消息包体请不要超过12k

    接口调试工具

    通过 REST API 在线调试工具 调试本接口。

    参考

    联系我们

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

    技术支持

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

    7x24 电话支持