• UIKit
  • SDK
  • 服务端 API
Chat/
SDK/
React Native/
消息/
SDK
  • Overview
    • Product Features
    • Pricing
      • Billing Overview
      • Chat Monthly Package
      • Billing of Chat Out-of-Package Usage
  • Quick Start
  • Init and Login
    • SDK 集成
    • Step 2: Initialize Chat SDK
    • Step 3: Login and Logout
  • 消息
    • 消息概述
    • 发送消息
    • 接收消息
    • 历史消息
    • 转发消息
    • 修改消息
    • 消息插入
    • 删除消息
    • 清空消息
    • 撤回消息
    • 在线消息
    • 已读回执
    • 查询消息
    • 群 @ 消息
    • 定向群消息
    • 通知免打扰
    • 消息扩展
    • Reactions
    • Translation
    • Voice-to-Text
  • Conversation
    • Overview
    • Conversation List
    • Get Conversations
    • Unread Count
    • Pin Conversations
    • Delete Conversations
    • Draft
    • Mark
    • Conversation Group
  • 群组
    • 产品概述
    • 群组管理
    • 群资料
    • 群成员管理
    • 群成员资料
    • 自定义群属性
    • 社群管理
  • Community and Topic
    • Manage Community
  • 用户
    • 用户资料
    • User Status
    • 好友管理
    • 好友列表
    • 黑名单
    • Follow
  • 信令管理
  • Client APIs
  • Changelog
  • 控制台指南
    • New Console Introduction
    • 创建和升级应用
    • 基本配置
    • 功能配置
    • 账号管理
    • 群组管理
    • 回调配置
    • 用量统计
    • 实时监控
    • 开发辅助工具
  • 产品介绍
    • 消息管理
      • 单聊消息
      • 消息存储
      • 离线推送
      • 群消息
      • 消息格式
    • 账号系统
      • 登陆验证
      • 在线状态管理
    • 群相关
      • 群组系统
      • 群组管理
    • 用户资料和关系链
      • 资料管理
      • 关系链管理
  • 场景化实践
    • AI 聊天机器人
    • 超大娱乐社群
    • 类Discord社群指南
  • 推送服务(Push)
    • 服务概述
    • 开通服务
    • 快速跑通
    • 厂商通道
      • 厂商配置
        • Android
        • iOS
        • Flutter
        • React-Native
      • 快速接入
        • Android
        • iOS
        • Flutter
        • React-Native
    • 数据统计
    • 排查工具
    • 客户端 API
      • Android
      • iOS
      • Flutter
      • React Native
    • 服务端 API
      • 发起全员/标签推送
      • 单发推送
      • 获取应用属性名称
      • 设置应用属性名称
      • 获取用户属性
      • 设置用户属性
      • 删除用户属性
      • 获取用户标签
      • 添加用户标签
      • 删除用户标签
      • 清空用户标签
      • 推送撤回
    • 推送回调
      • 全员/标签/单发回调
      • 其他推送回调
    • 高级功能
      • 自定义角标
      • 自定义铃音
      • 自定义小图标
      • 自定义点击跳转
      • 推送消息分类
    • 更新日志
      • Android
      • iOS
      • Flutter
      • React Native
    • 常见问题
  • 错误码

历史消息

功能描述

SDK 既支持分页续拉消息列表,也支持根据指定的消息 sequence 或消息时间跳拉消息列表。
云端存储的历史消息有存储时长的限制:
开发版:免费存储 7 天,不支持延长。
标准版:免费存储 7 天,支持延长。
专业版:免费存储 30 天,支持延长。
专业版plus:免费存储 90 天,支持延长。
企业版:免费存储 90 天,支持延长。
说明
延长历史消息存储时长是增值服务,您可以登录 Chat Console 修改相关配置,具体计费说明请参加 增值服务资费
富媒体消息(图片、文件、语音等)对应的文件存储时长,与历史消息存储时长保持一致。

拉取消息列表

getMessageList

分页拉取指定会话的消息列表的接口,当用户进入会话首次渲染消息列表或者用户“下拉查看更多消息”时,需调用该接口。
说明:
1. 该接口可用于"拉取历史消息"(直播群除外)。
2. 直播群默认不存储历史消息,当新用户进入直播间后,只能看到进入直播间后用户发送的消息。为了提升直播间用户粘性,让用户更有参与感,您可在即时通信 Chat 控制台>【应用配置】>【功能配置】>【群组配置】->【直播群新成员查看入群前消息量配置】变更新成员可查看最近消息数。该功能仅支持旗舰版使用,新入群成员查看入群前 24 小时内最新产生的消息,最多可查看 20 条。
3. 如果您想搜索本地消息,请使用 findMessage,如果您想搜索全量的云端消息,请使用 searchCloudMessages(此功能属于增值服务,需要您购买云端搜索插件,请点击 购买
接口
chat.getMessageList(options);
参数
参数 options Object 类型,包含的属性值如下:
名称
类型
描述
conversationID
String
会话 ID。
会话 ID 组成方式:
C2C${userID}(单聊)
GROUP${groupID}(群聊)
GROUP${topicID}(话题)
@TIM#SYSTEM(系统通知会话)
nextReqMessageID
String | undefined
用于分页续拉的消息 ID。第一次拉取时不要传入 nextReqMessageID,续拉时填入上次调用 getMessageList 接口返回的该字段的值。
返回值
Promise
示例
// 打开某个会话时,第一次拉取消息列表
let promise = chat.getMessageList({conversationID: 'C2Ctest'});
promise.then(function(imResponse) {
const messageList = imResponse.data.messageList; // 消息列表。
const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。
const isCompleted = imResponse.data.isCompleted; // 表示是否已经拉完所有消息。
});
// 下拉查看更多消息
let promise = chat.getMessageList({conversationID: 'C2Ctest', nextReqMessageID});
promise.then(function(imResponse) {
const messageList = imResponse.data.messageList; // 消息列表。
const nextReqMessageID = imResponse.data.nextReqMessageID; // 用于续拉,分页续拉时需传入该字段。
const isCompleted = imResponse.data.isCompleted; // 表示是否已经拉完所有消息。
});

getMessageListHopping

根据指定的消息 sequence 或 消息时间拉取会话的消息列表的接口。
接口
chat.getMessageListHopping(options);
参数
参数 options Object 类型,包含的属性值如下:
名称
类型
描述
conversationID
String
会话 ID。
会话 ID 组成方式:
C2C${userID}(单聊)
GROUP${groupID}(群聊)
GROUP${topicID}(话题)v2.19.1 起支持
sequence
Number | undefined
用于拉群组会话漫游消息的起始 sequence。
time
Number | undefined
消息的服务端时间,用于拉 C2C 会话漫游消息的起始时间。
direction
Number
消息拉取方向,默认 0。
0 向上拉,拉更旧的消息
1 向下拉,拉更新的消息
count
Number | undefined
需要拉取的消息数量,默认值和最大值为15,即一次拉取至多返回15条消息。
返回值
Promise
示例
// 根据 sequence 拉群漫游消息,direction 0 向上拉,拉更旧的消息,direction 1 向下拉,拉更新的消息
let promise = chat.getMessageListHopping({
conversationID: 'GROUPtest',
sequence: xxx,
count: 15,
direction: 0
});
promise.then(function(imResponse) {
const { messageList, isCompleted, nextMessageSeq } = imResponse.data;
// messageList - 消息列表
// isCompleted - 拉取完成标识, true 已拉完,false 未拉完,可以通过 nextMessageSeq 的返回值进行续拉
// nextMessageSeq - 续拉起始 sequence,当 isCompleted 返回 true 时,nextMessageSeq 返回空字符串
});
// 根据时间拉 C2C 会话漫游消息,direction 0 向上拉,拉更旧的消息,direction 1 向下拉,拉更新的消息
let promise = chat.getMessageListHopping({
conversationID: 'C2Ctest',
time: xxx,
count: 15,
direction: 0
});
promise.then(function(imResponse) {
const { messageList, isCompleted, nextMessageTime } = imResponse.data;
// messageList - 消息列表
// isCompleted - 拉取完成标识,true 已拉完,false 未拉完,可以通过 nextMessageTime 的返回值进行续拉
// nextMessageTime - 续拉起始时间,当 isCompleted 返回 true 时,nextMessageTime 返回空字符串
});

向社区提问!
开始技术讨论并获取即时专家支持!