IMSDK
即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、账号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
TIMMessageManagerJsonKey


一. 消息收发 API 参数相关的 Json Key 定义


1.1 ElemType (元素的类型)

JSON 键 值类型 属 性 含 义
kTIMElemType uint TIMElemType 读写(必填) 元素类型


1.2 TextElem (文本元素)

JSON 键 值类型 属 性 含 义
kTIMTextElemContent string 读写(必填) 文本内容


1.3 CustomElem (自定义元素)

注意
  • 自定义消息是指当内置的消息类型无法满足特殊需求, 开发者可以自定义消息格式, 内容全部由开发者定义, ImSDK 只负责透传
JSON 键 值类型 属 性 含 义
kTIMCustomElemData string 读写(选填) 数据, 支持二进制数据
kTIMCustomElemDesc string 读写(选填) 自定义描述
kTIMCustomElemExt string 读写(选填) 后台推送对应的 ext 字段
kTIMCustomElemSound string 读写(选填) 自定义声音


1.4 ImageElem (图片元素)

注意
图片规格说明: 每幅图片有三种规格, 分别是 Original (原图) 、 Large (大图) 、 Thumb (缩略图)
  • 原图: 指用户发送的原始图片, 尺寸和大小都保持不变
  • 大图: 是将原图等比压缩, 压缩后宽、高中较小的一个等于 720 像素
  • 缩略图: 是将原图等比压缩, 压缩后宽、高中较小的一个等于 198 像素
如果原图尺寸就小于 198 像素, 则三种规格都保持原始尺寸, 不需压缩 如果原图尺寸在 198-720 之间, 则大图和原图一样, 不需压缩 在手机上展示图片时, 建议优先展示缩略图, 用户单击缩略图时再下载大图, 单击大图时再下载原图。 当然开发者也可以选择跳过大图, 单击缩略图时直接下载原图 在 Pad 或 PC 上展示图片时, 由于分辨率较大, 且基本都是 Wi- Fi 或有线网络, 建议直接显示大图, 用户单击大图时再下载原图
JSON 键 值类型 属 性 含 义
kTIMImageElemOrigPath string 读写(必填) 发送图片的路径
kTIMImageElemLevel uint TIMImageLevel 读写(必填) 发送图片的质量级别
kTIMImageElemFormat int 读写 发送图片格式:, 0xff: 未知格式, 1: JPG, 2: GIF, 3: PNG, 4: BMP
kTIMImageElemOrigId string 只读 原图 ID
kTIMImageElemOrigPicHeight int 只读 原图的图片高度
kTIMImageElemOrigPicWidth int 只读 原图的图片宽度
kTIMImageElemOrigPicSize int 只读 原图的图片大小
kTIMImageElemThumbId string 只读 缩略图 ID
kTIMImageElemThumbPicHeight int 只读 缩略图的图片高度
kTIMImageElemThumbPicWidth int 只读 缩略图的图片宽度
kTIMImageElemThumbPicSize int 只读 缩略图的图片大小
kTIMImageElemLargeId string 只读 大图片 uuid
kTIMImageElemLargePicHeight int 只读 大图片的图片高度
kTIMImageElemLargePicWidth int 只读 大图片的图片宽度
kTIMImageElemLargePicSize int 只读 大图片的图片大小
kTIMImageElemOrigUrl string 只读 原图 URL
kTIMImageElemThumbUrl string 只读 缩略图 URL
kTIMImageElemLargeUrl string 只读 大图片 URL
kTIMImageElemTaskId int 只读 任务 ID, 已废弃


1.5 SoundElem (音频元素)

注意
  • 语音是否已经播放, 可使用 消息自定义字段 实现, 如定义一个字段值 0 表示未播放, 1 表示播放, 当用户单击播放后可设置改字段的值为 1
  • 一条消息只能添加一个声音元素, 添加多个声音元素时, 发送消息可能失败
JSON 键 值类型 属 性 含 义
kTIMSoundElemFilePath string 读写(必填) 语音文件路径, 需要开发者自己先保存语言然后指定路径
kTIMSoundElemFileSize int 读写(必填) 语言数据文件大小, 以秒为单位
kTIMSoundElemFileTime int 读写(必填) 语音时长
kTIMSoundElemFileId string 只读 语音 ID
kTIMSoundElemBusinessId int 只读 下载时用到的 businessID
kTIMSoundElemUrl string 只读 下载的 URL
kTIMSoundElemTaskId int 只读 任务 ID, 已废弃


1.6 VideoElem (视频元素)

JSON 键 值类型 属 性 含 义
kTIMVideoElemVideoType string 读写(必填) 视频文件类型, 发送消息时进行设置
kTIMVideoElemVideoSize uint 读写(必填) 视频文件大小
kTIMVideoElemVideoDuration uint 读写(必填) 视频时长, 发送消息时进行设置
kTIMVideoElemVideoPath string 读写(必填) 适配文件路径
kTIMVideoElemVideoId string 只读 视频 ID
kTIMVideoElemBusinessId int 只读 下载时用到的 businessID
kTIMVideoElemVideoUrl string 只读 视频文件下载的 URL
kTIMVideoElemImageType string 读写(必填) 截图文件类型, 发送消息时进行设置
kTIMVideoElemImageSize uint 读写(必填) 截图文件大小
kTIMVideoElemImageWidth uint 读写(必填) 截图高度, 发送消息时进行设置
kTIMVideoElemImageHeight uint 读写(必填) 截图宽度, 发送消息时进行设置
kTIMVideoElemImagePath string 读写(必填) 保存截图的路径
kTIMVideoElemImageId string 只读 截图 ID
kTIMVideoElemImageUrl string 只读 截图文件下载的 URL
kTIMVideoElemTaskId uint 只读 任务 ID, 已废弃


1.7 FileElem (文件元素)

JSON 键 值类型 属 性 含 义
kTIMFileElemFilePath string 读写(必填) 文件所在路径 (包含文件名)
kTIMFileElemFileName string 读写(必填) 文件名, 显示的名称。 不设置该参数时, kTIMFileElemFileName 默认为 kTIMFileElemFilePath 指定的文件路径中的文件名
kTIMFileElemFileSize int 读写(必填) 文件大小
kTIMFileElemFileId string 只读 文件 ID
kTIMFileElemBusinessId int 只读 下载时用到的 businessID
kTIMFileElemUrl string 只读 文件下载的 URL
kTIMFileElemTaskId int 只读 任务 ID, 已废弃


1.8 LocationElem (位置元素)

JSON 键 值类型 属 性 含 义
kTIMLocationElemDesc string 读写(选填) 位置描述
kTIMLocationElemLongitude double 读写(必填) 经度
kTIMLocationElemLatitude double 读写(必填) 纬度


1.9 FaceElem (表情元素)

注意
  • ImSDK 并不提供表情包, 如果开发者有表情包, 可使用 kTIMFaceElemIndex 存储表情在表情包中的索引, 由用户自定义
  • 或者直接使用 kTIMFaceElemBuf 存储表情二进制信息 (必须转换成 String, Json 不支持二进制传输), 由用户自定义, ImSDK 内部只做透传
JSON 键 值类型 属 性 含 义
kTIMFaceElemIndex int 读写(必填) 表情索引
kTIMFaceElemBuf string 读写(选填) 其他额外数据, 可由用户自定义填写。 若要传输二进制, 麻烦先转码成字符串。 JSON 只支持字符串


1.10 MergerElem (合并消息元素)

JSON 键 值类型 属 性 含 义
kTIMMergerElemTitle string 读写(必填) 合并消息 title
kTIMMergerElemAbstractArray array string 读写(必填) 合并消息摘要列表
kTIMMergerElemCompatibleText string 读写(必填) 合并消息兼容文本, 低版本 SDK 如果不支持合并消息, 默认会收到一条文本消息, 文本消息的内容为 compatibleText, 该参数不能为空
kTIMMergerElemMsgArray array Message 读写(必填) 消息列表 (最大支持 300 条, 消息对象必须是 kTIMMsg_SendSucc 状态, 消息类型不能为 GroupTipsElemGroupReportElem)
kTIMMergerElemLayersOverLimit bool 只读 合并消息里面又包含合并消息我们称之为合并嵌套, 合并嵌套层数不能超过 100 层, 如果超过限制, layersOverLimit 会返回 YES, kTIMMergerElemTitlekTIMMergerElemAbstractArray 为空, DownloadMergerMessage 会返回 ERR_MERGER_MSG_LAYERS_OVER_LIMIT 错误码
kTIMMergerElemRelayPbKey string 只读 native 端消息列表下载 key
kTIMMergerElemRelayJsonKey string 只读 web 端消息列表下载 key
kTIMMergerElemRelayBuffer string 只读 转发消息的 buffer


1.11 GroupMessageAtALL ( @ 群里所有人的参数)

JSON 键 值类型 属 性 含 义
kImSDK string 只读 在消息 kTIMMsgGroupAtUserArray 字段中填入 kImSDK_MessageAtALL 表示当前消息需要 @ 群里所有人


1.12 GroupTipsElem (群组系统消息元素)

注意
针对所有群成员, 可以通过监听 TIMSetGroupTipsEventCallback 获取, Json Key 请参考 GroupTipsElem


1.13 GroupReportElem (群组系统通知元素)

注意
针对个人, 可以通过监听 TIMAddRecvNewMsgCallback 获取
JSON 键 值类型 属 性 含 义
kTIMGroupReportElemReportType uint TIMGroupReportType 只读 类型
kTIMGroupReportElemGroupId string 只读 群组 ID
kTIMGroupReportElemGroupName string 只读 群组名称 (已废弃)
kTIMGroupReportElemOpUser string 只读 操作者 ID
kTIMGroupReportElemMsg string 只读 操作理由
kTIMGroupReportElemUserData string 只读 操作者填的自定义数据
kTIMGroupReportElemOpUserInfo object UserProfile 只读 操作者个人资料
kTIMGroupReportElemOpGroupMemberInfo object GroupMemberInfo 只读 操作者群内资料
kTIMGroupReportElemPlatform string 只读 操作方平台信息
kTIMGroupReportElemShutUpTime uint 只读 被操作者的禁言时间 (禁言某些用户时, 被禁言的用户会收到该信息)
kTIMGroupReportElemGroupMessageReceiveOption uint TIMReceiveMessageOpt 只读 消息接收选项, 用户修改群消息接收选项时会收到该信息


1.14 Message (消息)

注意
对应消息元素的顺序:
  • 目前文件和语音元素不一定会按照添加顺序传输, 其他元素按照顺序, 不过建议不要过于依赖元素顺序进行处理, 应该逐个按照元素类型处理, 防止异常情况下进程 Crash
针对群组的红包和点赞消息:
  • 对于直播场景, 会有点赞和发红包功能, 点赞相对优先级较低, 红包消息优先级较高, 具体消息内容可以使用自定义消息 CustomElem 进行定义, 发送消息时, 可通过 TIMMsgPriority 定义消息优先级
在线消息: 开发者通过设置 kTIMMsgIsOnlineMsg 字段为 true 时, 表示发送在线消息, 该消息有如下特性:
  • C2C 会话, 当此消息发送时, 只有对方在线, 对方才会收到。 如果当时离线, 后续再登录也收不到此消息
  • 群会话, 当此消息发送时, 只有群里在线的成员才会收到。 如果当时离线, 后续再登录也收不到此消息
  • 此消息服务器不会保存
  • 此消息不计入未读计数
  • 此消息在本地不会存储
消息自定义字段:
  • 开发者可以对消息增加自定义字段, 如自定义整数 (通过 kTIMMsgCustomInt 指定) 、自定义二进制数据 (通过 kTIMMsgCustomStr 指定, 必须转换成 String, Json 不支持二进制传输), 可以根据这两个字段做出各种不同效果, 例如语音消息是否已经播放等等。 另外需要注意, 此自定义字段仅存储于本地, 不会同步到 Server, 更换终端获取不到
JSON 键 值类型 属 性 含 义
kTIMMsgElemArray array elem 读写(必填) 消息内元素列表
kTIMMsgConvId string 读写(选填) 消息所属会话 ID
kTIMMsgConvType uint TIMConvType 读写(选填) 消息所属会话类型
kTIMMsgSender string 读写(选填) 消息的发送者
kTIMMsgPriority uint TIMMsgPriority 读写(选填) 消息优先级
kTIMMsgClientTime uint64 读写(选填) 客户端时间
kTIMMsgServerTime uint64 读写(选填) 服务端时间
kTIMMsgIsFormSelf bool 读写(选填) 消息是否来自自己
kTIMMsgPlatform uint TIMPlatform 读写(选填) 发送消息的平台
kTIMMsgIsRead bool 读写(选填) 消息是否已读
kTIMMsgIsOnlineMsg bool 读写(选填) 消息是否是在线消息, false 表示普通消息, true 表示在线消息, 默认为 false
kTIMMsgIsPeerRead bool 只读 对方是否已读 (会话维度, 已读的条件: msg_time <= 对端标记会话已读的时间), 该字段为 true 的条件是消息 timestamp <= 对端标记会话已读的时间
kTIMMsgReceiptPeerRead bool 只读 对方是否已读 (消息维度, 已读的条件: 对端针对该消息上报了已读)
kTIMMsgNeedReadReceipt bool 读写(选填) 消息是否需要已读回执 (6.1 以上版本有效, 需要您购买旗舰版套餐), 群消息在使用该功能之前, 需要先到 IM 控制台设置已读回执支持的群类型
kTIMMsgSupportMessageExtension bool 读写(选填) 是否支持消息扩展
kTIMMsgIsBroadcastMessage bool 只读 是否是广播消息, 仅直播群支持 (6.5 及以上版本支持, 需要您购买旗舰版套餐);
kTIMMsgHasSentReceipt bool 只读 是否已经发送了已读回执 (只有 Group 消息有效)
kTIMMsgGroupReceiptReadCount int32 只读 注意: 这个字段是内部字段, 不推荐使用, 推荐调用 TIMMsgGetMessageReadReceipts 获取群消息已读回执
kTIMMsgGroupReceiptUnreadCount int32 只读 注意: 这个字段是内部字段, 不推荐使用, 推荐调用 TIMMsgGetMessageReadReceipts 获取群消息已读回执
kTIMMsgVersion uint64 只读 注意: 这个字段是内部字段, 不推荐使用
kTIMMsgStatus uint TIMMsgStatus 读写(选填) 消息当前状态
kTIMMsgUniqueId uint64 只读 消息的唯一标识, 推荐使用 kTIMMsgMsgId
kTIMMsgMsgId string 只读 消息的唯一标识
kTIMMsgRand uint64 只读 消息的随机码
kTIMMsgSeq uint64 只读 消息序列
kTIMMsgCustomInt uint32 读写(选填) 自定义整数值字段 (本地保存, 不会发送到对端, 程序卸载重装后失效)
kTIMMsgCustomStr string 读写(选填) 自定义数据字段 (本地保存, 不会发送到对端, 程序卸载重装后失效)
kTIMMsgCloudCustomStr string 读写(选填) 消息自定义数据 (云端保存, 会发送到对端, 程序卸载重装后还能拉取到)
kTIMMsgIsExcludedFromUnreadCount bool 读写(选填) 消息是否不计入未读计数: 默认为 NO, 表明需要计入未读计数, 设置为 YES, 表明不需要计入未读计数
kTIMMsgGroupAtUserArray array string 读写(选填) 群消息中被 @ 的用户 UserID 列表 (即该消息都 @ 了哪些人), 如果需要 @ALL, 请传入 kImSDK_MessageAtALL 字段
kTIMMsgIsForwardMessage bool 只写(选填) 如果需要转发一条消息, 不能直接调用 sendMessage 接口发送原消息, 原消息 kTIMMsgIsForwardMessage 设置为 true 再发送
kTIMMsgSenderProfile object UserProfile 读写(选填) 消息的发送者的用户资料
kTIMMsgSenderGroupMemberInfo object GroupMemberInfo 读写(选填) 消息发送者在群里面的信息, 只有在群会话有效。 目前仅能获取字段 kTIMGroupMemberInfoIdentifierkTIMGroupMemberInfoNameCard 其他的字段建议通过 TIMGroupGetMemberInfoList 接口获取
kTIMMsgExcludedFromLastMessage bool 读写 是否作为会话的 lastMessage, true: 不作为, false: 作为
kTIMMsgExcludedFromContentModeration bool 读写 是否不过内容审核 (包含【本地审核】和【云端审核】),只有在开通【本地审核】或【云端审核】功能后, 该字段设置才有效, 设置为 true, 表明不过内容审核, 设置为 false: 表明过内容审核。 【本地审核】开通流程请参考 本地审核功能。 【云端审核】开通流程请参考 云端审核功能
kTIMMsgCustomModerationConfigurationID string 读写 消息自定义审核配置 ID (从 7.8 版本开始支持)在开通【云端审核】功能后, 您可以请前往 控制台 (云端审核 -> 审核配置 -> 自定义配置 -> 添加自定义配置) 获取配置 ID。 【自定义审核】配置流程请参考 云端审核功能
注意
该字段需要发消息前设置, 仅用于控制发消息时的消息审核策略, 其值不会存储在漫游和本地
kTIMMsgHasRiskContent bool 只读(选填) 是否被标记为有安全风险的消息 (暂时只支持语音和视频消息), 只有在开通【云端审核】功能后才生效, 如果您发送的语音或视频消息内容不合规, 云端异步审核后会触发 SDK 的 TIMMsgMessageModifiedCallback 回调, 回调里的 message 对象该字段值为 true, 从 7.4 版本开始支持
kTIMMsgRiskTypeIdentified - - 该字段为内部使用字段
kTIMMsgTargetGroupMemberArray array string 只写(选填) 指定群消息接收成员 (定向消息); 不支持群 @ 消息设置, 不支持社群 (Community) 和直播群 (AVChatRoom) 消息设置; 该字段设置后, 消息会不计入会话未读数
kTIMMsgOfflinePushConfig object OfflinePushConfig 读写(选填) 消息的离线推送设置
kTIMMsgRevokerUserId string 只读(选填) 消息撤回者的 user_id, 仅当消息为撤回状态时有效, 从 7.4 版本开始支持
kTIMMsgRevokerNickName string 只读(选填) 消息撤回者的昵称, 仅当消息为撤回状态时有效, 从 7.4 版本开始支持
kTIMMsgRevokerFaceUrl string 只读(选填) 消息撤回者的头像地址, 仅当消息为撤回状态时有效, 从 7.4 版本开始支持
kTIMMsgRevokeReason string 只读(选填) 消息撤回的原因, 仅当消息为撤回状态时有效, 从 7.4 版本开始支持
kTIMMsgPinnerUserId string 只读(选填) 消息置顶者的 user_id, 只有通过 GetPinnedGroupMessageList 获取到的置顶消息才包含该字段, 从 8.0 版本开始支持
kTIMMsgPinnerNickName string 只读(选填) 消息置顶者的昵称, 只有通过 GetPinnedGroupMessageList 获取到的置顶消息才包含该字段, 从 8.0 版本开始支持
kTIMMsgPinnerFriendRemark string 只读(选填) 消息置顶者的好友备注, 只有通过 GetPinnedGroupMessageList 获取到的置顶消息才包含该字段, 从 8.0 版本开始支持
kTIMMsgPinnerNameCard string 只读(选填) 消息置顶的群成员名片, 只有通过 GetPinnedGroupMessageList 获取到的置顶消息才包含该字段, 从 8.0 版本开始支持
kTIMMsgPinnerFaceURL string 只读(选填) 消息置顶者的头像, 只有通过 GetPinnedGroupMessageList 获取到的置顶消息才包含该字段, 从 8.0 版本开始支持


1.15 MsgBatchSendParam (消息群发接口的参数)

JSON 键 值类型 属 性 含 义
kTIMMsgBatchSendParamIdentifierArray array string 只写(必填) 接收群发消息的用户 ID 列表
kTIMMsgBatchSendParamMsg object Message 只写(必填) 群发的消息


1.16 MsgBatchSendResult (消息群发接口的返回)

JSON 键 值类型 属 性 含 义
kTIMMsgBatchSendResultIdentifier string 只读 接收群发消息的用户 ID
kTIMMsgBatchSendResultCode int 错误码 只读 消息发送结果
kTIMMsgBatchSendResultDesc string 只读 消息发送的描述
kTIMMsgBatchSendResultMsg object Message 只读 发送的消息


1.17 DownloadElemParam (下载元素接口的参数)

JSON 键 值类型 属 性 含 义
kTIMMsgDownloadElemParamType uint TIMDownloadType 只写 从消息元素里面取出来, 元素的类型
kTIMMsgDownloadElemParamId string 只写 从消息元素里面取出来, 元素的 ID
kTIMMsgDownloadElemParamBusinessId uint 只写 从消息元素里面取出来, 元素的 BusinessID
kTIMMsgDownloadElemParamUrl string 只写 从消息元素里面取出来, 元素 URL


1.18 MsgDownloadElemResult (下载元素接口的返回)

JSON 键 值类型 属 性 含 义
kTIMMsgDownloadElemResultCurrentSize uint 只读 当前已下载的大小
kTIMMsgDownloadElemResultTotalSize uint 只读 需要下载的文件总大小


二. 消息拉取、查找、删除操作 API 参数相关的 Json Key 定义


2.1 MsgGetMsgListParam (获取历史消息接口的参数)

JSON 键 值类型 属 性 含 义
kTIMMsgGetMsgListParamLastMsg object Message 只写(选填) 指定的消息, 不允许为 null
kTIMMsgGetMsgListParamCount uint 只写(选填) 从指定消息往后的消息数
kTIMMsgGetMsgListParamIsRamble bool 只写(选填) 是否漫游消息
kTIMMsgGetMsgListMessageTypeArray array uint32 只写(选填) 拉取的消息类型集合, kTIMMsgGetMsgListParamIsRamble 为 false 有效, 传入空数组表示拉取全部类型消息, 取值详见 TIMElemType
kTIMMsgGetMsgListParamIsForward bool 只写(选填) 是否向前排序
kTIMMsgGetMsgListParamLastMsgSeq uint64 只写(选填) 指定的消息的 seq
kTIMMsgGetMsgListParamTimeBegin uint64 只写(选填) 开始时间; UTC 时间戳, 单位: 秒
kTIMMsgGetMsgListParamTimePeriod uint64 只写(选填) 持续时间; 单位: 秒
kTIMMsgGetMsgListParamMessageSeqArray array uint64 只写(选填) 拉取的消息 seq 集合, 仅针对 group 有效


2.2 MsgLocator (消息定位符)

JSON 键 值类型 属 性 含 义
kTIMMsgLocatorConvId bool 读写 要查找的消息所属的会话 ID
kTIMMsgLocatorConvType bool 读写 要查找的消息所属的会话类型
kTIMMsgLocatorIsRevoked bool 读写(必填) 要查找的消息是否是被撤回。 true 表示被撤回的, false 表示未撤回的。 默认为 false
kTIMMsgLocatorTime uint64 读写(必填) 要查找的消息的时间戳
kTIMMsgLocatorSeq uint64 读写(必填) 要查找的消息的序列号
kTIMMsgLocatorIsSelf bool 读写(必填) 要查找的消息的发送者是否是自己。 true 表示发送者是自己, false 表示发送者不是自己。 默认为 false
kTIMMsgLocatorRand uint64 读写(必填) 要查找的消息随机码
kTIMMsgLocatorUniqueId uint64 读写(必填) 要查找的消息的唯一标识


2.3 MessageSearchParam (消息搜索参数)

JSON 键 值类型 属 性 含 义
kTIMMsgSearchParamKeywordArray array string 只写(必填) 搜索关键字列表, 最多支持 5 个
kTIMMsgSearchParamMessageTypeArray array TIMElemType 只写(选填) 指定搜索的消息类型集合, 传入空数组, 表示搜索支持的全部类型消息( FaceElemGroupTipsElem 暂不支持) 取值详见 TIMElemType
kTIMMsgSearchParamConvId string 只写(选填) 会话唯一 ID, C2C 单聊为对方的 userID, 群聊为群 ID
kTIMMsgSearchParamConvType uint TIMConvType 只写(选填) 会话类型, 如果设置 kTIMConv_Invalid, 代表搜索全部会话。 否则, 代表搜索指定会话
kTIMMsgSearchParamSearchTimePosition uint64 只写(选填) 搜索的起始时间点。 默认为 0 即代表从现在开始搜索。 UTC 时间戳, 单位: 秒
kTIMMsgSearchParamSearchTimePeriod uint64 只写(选填) 从起始时间点开始的过去时间范围, 单位秒。 默认为 0 即代表不限制时间范围, 传 24x60x60 代表过去一天
kTIMMsgSearchParamPageIndex uint 只写(选填) 分页的页号: 用于分页展示查找结果, 从零开始起步。 首次调用: 通过参数 pageSize = 10, pageIndex = 0 调用 searchLocalMessage, 从结果回调中的 totalCount 可以获知总共有多少条结果。 计算页数: 可以获知总页数: totalPage = (totalCount % loadCount == 0) ? (totalCount / pageIndex) : (totalCount / pageIndex + 1) 。再次调用: 可以通过指定参数 pageIndex (pageIndex < totalPage) 返回后续页号的结果
kTIMMsgSearchParamPageSize uint 只写(选填) 每页结果数量: 用于分页展示查找结果, 如不希望分页可将其设置成 0, 但如果结果太多, 可能会带来性能问题
kTIMMsgSearchParamKeywordListMatchType uint TIMKeywordListMatchType 只写(选填) 关键字进行 Or 或者 And 进行搜索 (不填写时, 默认为 Or)
kTIMMsgSearchParamSenderIdentifierArray array string 只写(选填) 按照发送者的 userid 进行搜索
kTIMMsgSearchParamSearchCount uint 只写(选填) 服务器搜索结果数量
kTIMMsgSearchParamSearchCursor string 只写(选填) 服务器搜索游标。 第一次填空字符串, 续拉时填写 MessageSearchResult 中的返回值


2.4 MessageSearchResultItem (消息搜索结果项)

JSON 键 值类型 属 性 含 义
kTIMMsgSearchResultItemConvId string 只读 会话 ID
kTIMMsgSearchResultItemConvType uint TIMConvType 只读 会话类型
kTIMMsgSearchResultItemTotalMessageCount uint 只读 当前会话一共搜索到了多少条符合要求的消息
kTIMMsgSearchResultItemMessageArray array Message 只读 满足搜索条件的消息列表
注意
  • 如果您本次搜索【指定会话】,那么消息列表装载的是本会话中所有满足搜索条件的消息。
  • 如果您本次搜索【全部会话】,那么消息列表中装载的消息会有如下两种可能:
  • (1) 如果某个会话中匹配到的消息条数 > 1, 则消息列表为空, 您可以在 UI 上显示 “ messageCount 条相关记录”。
  • (2) 如果某个会话中匹配到的消息条数 = 1, 则消息列表为匹配到的那条消息, 您可以在 UI 上显示之, 并高亮匹配关键词。


2.5 MessageSearchResult (消息搜索结果返回)

JSON 键 值类型 属 性 含 义
kTIMMsgSearchResultTotalCount uint 只读 如果您本次搜索【指定会话】,那么返回满足搜索条件的消息总数量; 如果您本次搜索【全部会话】,那么返回满足搜索条件的消息所在的所有会话总数量
kTIMMsgSearchResultItemArray array MessageSearchResultItem 只读 如果您本次搜索【指定会话】,那么返回结果列表只包含该会话结果; 如果您本次搜索【全部会话】,那么对满足搜索条件的消息根据会话 ID 分组, 分页返回分组结果;
kTIMMsgSearchResultSearchCursor string 只写(选填) 服务器搜索游标


2.6 MsgDeleteParam (消息删除接口的参数)

JSON 键 值类型 属 性 含 义
kTIMMsgDeleteParamMsg object Message 只写(选填) 要删除的消息
kTIMMsgDeleteParamIsRamble bool 只写(选填) 是否删除本地/漫游所有消息。 true 删除漫游消息, false 删除本地消息, 默认值 false


三. 消息接收选项 API 参数相关的 Json Key 定义


3.1 GetC2CRecvMsgOptResult (查询 C2C 消息接收选项的返回)

JSON 键 值类型 属 性 含 义
kTIMMsgGetC2CRecvMsgOptResultIdentifier string 只读 用户 ID
kTIMMsgGetC2CRecvMsgOptResultOpt uint TIMReceiveMessageOpt 只读 消息接收选项


3.2 TIMReceiveMessageOptInfo (全局消息消息接收选项)

JSON 键 值类型 属 性 含 义
kTIMMsgAllRecvMsgOptStartHour uint 只读 获取消息免打扰开始时间: 小时
kTIMMsgAllRecvMsgOptStartMinute uint 只读 获取消息免打扰开始时间: 分钟
kTIMMsgAllRecvMsgOptStartSecond uint 只读 获取消息免打扰开始时间: 秒
kTIMMsgAllRecvMsgOptStartTimeStamp uint 只读 获取消息免打扰开始的 UTC 时间戳, 如果返回的 startTimeStamp 大于 0, 您可以直接使用; 如果返回的 startTimeStamp 等于 0, 您需要调用 getStartHour ()、 getStartMinute ()、 getStartSecond () 来获取免打扰的相对开始时间
kTIMMsgAllRecvMsgDuration uint 只读 获取免打扰持续时长, 单位: 秒
kTIMMsgAllRecvMsgOptLevel uint TIMReceiveMessageOpt 只读 消息接收选项, 支持两种类型: kTIMRecvMsgOpt_ReceivekTIMRecvMsgOpt_Not_NotifykTIMRecvMsgOpt_Not_Notify_Except_At


四. 消息翻译、已读回执、扩展、回应等 API 参数相关的 Json Key 定义


4.1 MessageTranslateTextResult (文本消息翻译结果)

JSON 键 值类型 属 性 含 义
kTIMMsgTranslateTextSourceText string 只读 待翻译的文本
kTIMMsgTranslateTextTargetText string 只读 翻译后的文本


4.2 MessageReceipt (消息已读回执)

JSON 键 值类型 属 性 含 义
kTIMMsgReceiptConvId string 只读 会话 ID
kTIMMsgReceiptConvType uint TIMConvType 只读 会话类型
kTIMMsgReceiptMsgId string 只读 群消息 ID
kTIMMsgReceiptTimeStamp uint64 只读 时间戳
kTIMMsgReceiptIsPeerRead bool 只读 C2C 对端消息是否已读
kTIMMsgReceiptReadCount uint64 只读 群消息已读人数
kTIMMsgReceiptUnreadCount uint64 只读 群消息未读人数


4.3 MessageExtension (消息扩展信息)

JSON 键 值类型 属 性 含 义
kTIMMsgExtensionKey string 读写(选填) 扩展字段的 key
kTIMMsgExtensionValue string 读写(选填) 扩展字段的 value


4.4 MessageExtensionResult (消息扩展操作结果)

JSON 键 值类型 属 性 含 义
kTIMMsgExtensionResultCode uint32 只读 消息扩展操作的返回码
kTIMMsgExtensionResultInfo string 只读 消息扩展操作的返回信息提示
kTIMMsgExtensionItem object 只读 消息扩展操作返回结果所对应的扩展字段 (每一对 key- value 都会自己的操作返回码以及返回信息提示)


4.5 MessageReaction (消息回应信息)

JSON 键 值类型 属 性 含 义
kTIMMsgReactionID string 只读 消息回应 ID
kTIMMsgReactionTotalUserCount uint32 只读 消息回应总用户个数
kTIMMsgReactionPartialUserInfoList array UserInfo 只读 使用同一个 reaction_id 回应消息的部分用户列表 (用户列表数量取决于调用 TIMMsgGetMessageReactions 接口时设置的 max_user_count_per_reaction 值)
kTIMMsgReactionReactedByMyself bool 只读 自己是否使用了该 reaction


4.6 MessageReactionResult (消息回应列表拉取结果)

JSON 键 值类型 属 性 含 义
kTIMMsgReactionResultCode uint32 只读 消息扩展操作的返回码
kTIMMsgReactionResultInfo string 只读 消息扩展操作的返回信息提示
kTIMMsgReactionResultMsgId string 只读 消息 ID
kTIMMsgReactionResultReactionList array MessageReaction 只读 消息回应列表


4.7 MessageReactionUserResult (消息回应用户列表拉取结果)

JSON 键 值类型 属 性 含 义
kTIMMsgReactionUserResultUserInfoArray array UserInfo 只读 消息回应用户列表
kTIMMsgReactionUserResultNextSeq uint32 只读 消息回应用户列表下次拉取 seq
kTIMMsgReactionUserResultIsFinished bool 只读 true: 已拉取完所有消息回应用户列表, false: 未拉取完所有消息回应用户列表


4.8 MessageReactionChangeInfo (消息回应列表更新信息)

JSON 键 值类型 属 性 含 义
kTIMMsgReactionChangeInfoMsgId string 只读 消息 ID
kTIMMsgReactionChangeInfoReactionList array MessageReaction 只读 变更的消息回应列表