类型定义 | |
typedef void(* | TIMRecvNewMsgCallback) (const char *json_msg_array, const void *user_data) |
typedef void(* | TIMMsgElemUploadProgressCallback) (const char *json_msg, uint32_t index, uint32_t cur_size, uint32_t total_size, const void *user_data) |
typedef void(* | TIMMsgGroupMessageReadMemberListCallback) (const char *json_group_member_array, uint64_t next_seq, bool is_finished, const void *user_data) |
typedef void(* | TIMMsgReadedReceiptCallback) (const char *json_msg_read_receipt_array, const void *user_data) |
typedef void(* | TIMMsgRevokeCallback) (const char *json_msg_revoke_info_array, const void *user_data) |
typedef void(* | TIMMsgUpdateCallback) (const char *json_msg_array, const void *user_data) |
typedef void(* | TIMMsgExtensionsChangedCallback) (const char *message_id, const char *message_extension_array, const void *user_data) |
typedef void(* | TIMMsgExtensionsDeletedCallback) (const char *message_id, const char *message_extension_key_array, const void *user_data) |
typedef void(* | TIMMsgReactionsChangedCallback) (const char *message_reaction_change_info_array, const void *user_data) |
typedef void(* | TIMMsgAllMessageReceiveOptionCallback) (const char *json_receive_message_option_info, const void *user_data) |
typedef void(* | TIMMsgGroupPinnedMessageChangedCallback) (const char *group_id, const char *json_msg, bool is_pinned, const char *op_user, const void *user_data) |
函数 | |
TIM_API void | TIMAddRecvNewMsgCallback (TIMRecvNewMsgCallback cb, const void *user_data) |
TIM_API void | TIMRemoveRecvNewMsgCallback (TIMRecvNewMsgCallback cb) |
TIM_API void | TIMSetMsgElemUploadProgressCallback (TIMMsgElemUploadProgressCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgReadedReceiptCallback (TIMMsgReadedReceiptCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgRevokeCallback (TIMMsgRevokeCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgUpdateCallback (TIMMsgUpdateCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgExtensionsChangedCallback (TIMMsgExtensionsChangedCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgExtensionsDeletedCallback (TIMMsgExtensionsDeletedCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgReactionsChangedCallback (TIMMsgReactionsChangedCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgAllMessageReceiveOptionCallback (TIMMsgAllMessageReceiveOptionCallback cb, const void *user_data) |
TIM_API void | TIMSetMsgGroupPinnedMessageChangedCallback (TIMMsgGroupPinnedMessageChangedCallback cb, const void *user_data) |
TIM_API int | TIMMsgSendMessage (const char *conv_id, enum TIMConvType conv_type, const char *json_msg_param, char *message_id_buffer, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgCancelSend (const char *conv_id, enum TIMConvType conv_type, const char *message_id, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgBatchSend (const char *json_batch_send_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgDownloadElemToPath (const char *json_download_elem_param, const char *path, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgDownloadMergerMessage (const char *json_single_msg, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSetLocalCustomData (const char *json_msg_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSetC2CReceiveMessageOpt (const char *json_identifier_array, enum TIMReceiveMessageOpt opt, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetC2CReceiveMessageOpt (const char *json_identifier_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSetGroupReceiveMessageOpt (const char *group_id, enum TIMReceiveMessageOpt opt, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSetAllReceiveMessageOpt (enum TIMReceiveMessageOpt opt, int32_t start_hour, int32_t start_minute, int32_t start_second, uint32_t duration, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSetAllReceiveMessageOpt2 (enum TIMReceiveMessageOpt opt, uint32_t start_time_stamp, uint32_t duration, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetAllReceiveMessageOpt (TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetMsgList (const char *conv_id, enum TIMConvType conv_type, const char *json_get_msg_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgRevoke (const char *conv_id, enum TIMConvType conv_type, const char *json_msg_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgModifyMessage (const char *json_msg_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgDelete (const char *conv_id, enum TIMConvType conv_type, const char *json_msgdel_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgListDelete (const char *conv_id, enum TIMConvType conv_type, const char *json_msg_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgClearHistoryMessage (const char *conv_id, enum TIMConvType conv_type, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSaveMsg (const char *conv_id, enum TIMConvType conv_type, const char *json_msg_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgImportMsgList (const char *conv_id, enum TIMConvType conv_type, const char *json_msg_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgFindMessages (const char *json_message_id_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgFindByMsgLocatorList (const char *conv_id, enum TIMConvType conv_type, const char *json_msg_Locator_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSearchLocalMessages (const char *json_search_message_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSearchCloudMessages (const char *json_search_message_param, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgSendMessageReadReceipts (const char *json_msg_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetMessageReadReceipts (const char *json_msg_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetGroupMessageReadMemberList (const char *json_msg, enum TIMGroupMessageReadMembersFilter filter, uint64_t next_seq, uint32_t count, TIMMsgGroupMessageReadMemberListCallback cb, const void *user_data) |
TIM_API int | TIMMsgSetMessageExtensions (const char *json_msg, const char *json_extension_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetMessageExtensions (const char *json_msg, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgDeleteMessageExtensions (const char *json_msg, const char *json_extension_key_array, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgAddMessageReaction (const char *json_msg, const char *reaction_id, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgRemoveMessageReaction (const char *json_msg, const char *reaction_id, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetMessageReactions (const char *json_msg_array, uint32_t max_user_count_per_reaction, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgGetAllUserListOfMessageReaction (const char *json_msg, const char *reaction_id, uint32_t next_seq, uint32_t count, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgTranslateText (const char *json_source_text_array, const char *source_language, const char *target_language, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMMsgConvertVoiceToText (const char *url, const char *language, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMPinGroupMessage (const char *group_id, const char *json_msg, bool is_pinned, TIMCommCallback cb, const void *user_data) |
TIM_API int | TIMGetPinnedGroupMessageList (const char *group_id, TIMCommCallback cb, const void *user_data) |
typedef void(* TIMRecvNewMsgCallback) (const char *json_msg_array, const void *user_data) |
1.1 新消息回调
json_msg_array | 新消息数组, Json Key 请参考 Message |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
消息数组解析示例
返回一个文本消息的Json示例 (Json Key 请参考 Message、 TextElem)
返回一个群通知消息的Json示例 (Json Key 请参考 Message、 GroupReportElem)
返回一个群提示消息的Json示例 (Json Key 请参考 Message、 GroupTipsElem)
typedef void(* TIMMsgElemUploadProgressCallback) (const char *json_msg, uint32_t index, uint32_t cur_size, uint32_t total_size, const void *user_data) |
1.2 消息内元素相关文件上传进度回调
json_msg | 新消息, Json Key 请参考 Message |
index | 上传的富媒体消息元素在 json_msg 消息的下标 |
cur_size | 上传当前大小 |
total_size | 上传总大小 |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
示例
typedef void(* TIMMsgGroupMessageReadMemberListCallback) (const char *json_group_member_array, uint64_t next_seq, bool is_finished, const void *user_data) |
1.3 获取群消息已读群成员列表
json_group_member_array | 群消息已读群成员列表, Json Key 请参考 GroupMemberInfo |
next_seq | 下一次分页拉取的游标 |
is_finished | 群消息已读群成员列表是否已经拉取完毕 |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
示例
typedef void(* TIMMsgReadedReceiptCallback) (const char *json_msg_read_receipt_array, const void *user_data) |
1.4 收到消息已读回执
json_msg_read_receipt_array | 消息已读回执数组, Json Key 请参考 MessageReceipt |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
示例
typedef void(* TIMMsgRevokeCallback) (const char *json_msg_revoke_info_array, const void *user_data) |
1.5 接收的消息被撤回回调
json_msg_revoke_info_array | 撤回信息数组, Json Key 请参考 Message, MsgLocator |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
示例
typedef void(* TIMMsgUpdateCallback) (const char *json_msg_array, const void *user_data) |
1.6 消息更新回调
json_msg_array | 更新的消息数组, Json Key 请参考 Message |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
typedef void(* TIMMsgExtensionsChangedCallback) (const char *message_id, const char *message_extension_array, const void *user_data) |
1.7 消息扩展信息更新回调
message_id | 消息 ID |
message_extension_array | 扩展信息列表, Json Key 请参考 MessageExtension |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
返回的扩展信息列表 json 示例
typedef void(* TIMMsgExtensionsDeletedCallback) (const char *message_id, const char *message_extension_key_array, const void *user_data) |
1.8 消息扩展信息删除回调
message_id | 消息 ID |
message_extension_key_array | 扩展信息的关键字列表, Json Key 请参考 MessageExtension |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
返回的扩展信息的关键字列表 json 示例
typedef void(* TIMMsgReactionsChangedCallback) (const char *message_reaction_change_info_array, const void *user_data) |
1.9 消息回应信息更新回调
message_reaction_change_info_array | 回应信息变更列表, Json Key 请参考 MessageReactionChangeInfo |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
返回的回应信息列表 json 示例
typedef void(* TIMMsgAllMessageReceiveOptionCallback) (const char *json_receive_message_option_info, const void *user_data) |
1.10 登录用户全局消息接收选项变更通知
json_receive_message_option_info | 当前用户全局消息接收选项,请参考 TIMReceiveMessageOptInfo |
user_data | ImSDK负责透传的用户自定义数据,未做任何处理 |
typedef void(* TIMMsgGroupPinnedMessageChangedCallback) (const char *group_id, const char *json_msg, bool is_pinned, const char *op_user, const void *user_data) |
1.11 群置顶消息更新的回调
group_id | 群组 ID |
json_msg | 变更的置顶消息 |
is_pinned | 变更类型 |
op_user | 操作人信息 |
TIM_API void TIMAddRecvNewMsgCallback | ( | TIMRecvNewMsgCallback | cb, |
const void * | user_data | ||
) |
2.1 添加接收新消息回调
cb | 新消息回调函数,请参考 TIMRecvNewMsgCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMRemoveRecvNewMsgCallback | ( | TIMRecvNewMsgCallback | cb | ) |
2.2 删除接收新消息回调
cb | 新消息回调函数,请参考 TIMRecvNewMsgCallback |
TIM_API void TIMSetMsgElemUploadProgressCallback | ( | TIMMsgElemUploadProgressCallback | cb, |
const void * | user_data | ||
) |
2.3 设置消息内元素相关文件上传进度回调
cb | 文件上传进度回调,请参考 TIMMsgElemUploadProgressCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgReadedReceiptCallback | ( | TIMMsgReadedReceiptCallback | cb, |
const void * | user_data | ||
) |
2.4 设置消息已读回执回调
cb | 消息已读回执回调,请参考 TIMMsgReadedReceiptCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgRevokeCallback | ( | TIMMsgRevokeCallback | cb, |
const void * | user_data | ||
) |
2.5 设置接收的消息被撤回回调
cb | 消息撤回通知回调,请参考 TIMMsgRevokeCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgUpdateCallback | ( | TIMMsgUpdateCallback | cb, |
const void * | user_data | ||
) |
2.6 设置消息更新的回调
cb | 消息更新回调,请参考 TIMMsgUpdateCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgExtensionsChangedCallback | ( | TIMMsgExtensionsChangedCallback | cb, |
const void * | user_data | ||
) |
2.7 设置消息扩展信息更新的回调
cb | 消息扩展信息更新回调,请参考 TIMMsgExtensionsChangedCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgExtensionsDeletedCallback | ( | TIMMsgExtensionsDeletedCallback | cb, |
const void * | user_data | ||
) |
2.8 设置消息扩展信息删除的回调
cb | 消息扩展信息删除回调,请参考 TIMMsgExtensionsDeletedCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgReactionsChangedCallback | ( | TIMMsgReactionsChangedCallback | cb, |
const void * | user_data | ||
) |
2.9 设置消息回应信息更新的回调
cb | 消息回应信息更新回调,请参考 TIMMsgReactionsChangedCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgAllMessageReceiveOptionCallback | ( | TIMMsgAllMessageReceiveOptionCallback | cb, |
const void * | user_data | ||
) |
2.10 设置全局消息接收选项的回调
cb | 消息更新回调,请参考 TIMMsgAllMessageReceiveOptionCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API void TIMSetMsgGroupPinnedMessageChangedCallback | ( | TIMMsgGroupPinnedMessageChangedCallback | cb, |
const void * | user_data | ||
) |
2.11 设置置顶消息变更的回调
cb | 群组置顶消息变更回调,请参考 TIMMsgGroupPinnedMessageChangedCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API int TIMMsgSendMessage | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msg_param, | ||
char * | message_id_buffer, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
3.1 发送新消息
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msg_param | 消息 json 字符串, Json Key 请参考 Message |
message_id_buffer | 消息 ID ,分配内存大小不能低于 128 字节,如果不需要,可传入 nullptr,调用接口后,可以读取到以 '\0' 结尾的字符串 |
cb | 发送新消息成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数 cb,不做任何处理 |
示例
TIM_API int TIMMsgCancelSend | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | message_id, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
3.2 根据消息 messageID 取消发送中的消息
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
message_id | 消息 ID |
cb | 取消结果的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgBatchSend | ( | const char * | json_batch_send_param, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
3.3 群发消息,该接口不支持向群组发送消息。
json_batch_send_param | 群发消息 json 字符串, Json Key 请参考 Message |
cb | 群发消息成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgDownloadElemToPath | ( | const char * | json_download_elem_param, |
const char * | path, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
3.4 下载消息内元素到指定文件路径(图片、视频、音频、文件)
json_download_elem_param | 下载的参数 Json 字符串, Json Key 请参考 DownloadElemParam |
path | 下载文件保存路径 |
cb | 下载成功与否的回调以及下载进度回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgDownloadMergerMessage | ( | const char * | json_single_msg, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
3.5 下载合并消息
json_single_msg | 单条消息的 JSON 字符串,接收消息、查找消息或查询历史消息时获取到的消息, Json Key 请参考 Message |
cb | 下载成功与否的回调以及下载进度回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgSetLocalCustomData | ( | const char * | json_msg_param, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
3.6 设置消息自定义数据(本地保存,不会发送到对端,程序卸载重装后失效)
json_msg_param | 消息 json 字符串, Json Key 请参考 Message |
cb | 保存自定义消息成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgSetC2CReceiveMessageOpt | ( | const char * | json_identifier_array, |
enum TIMReceiveMessageOpt | opt, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
4.1 设置针对某个用户的 C2C 消息接收选项(支持批量设置)
json_identifier_array | 用户 ID 列表 |
opt | 消息接收选项,请参考 TIMReceiveMessageOpt |
cb | 设置成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgGetC2CReceiveMessageOpt | ( | const char * | json_identifier_array, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
4.2 查询针对某个用户的 C2C 消息接收选项
json_identifier_array | 用户 ID 列表 |
cb | 查询结果的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
回调的 json_param 示例 (Json Key 请参考 GetC2CRecvMsgOptResult)
TIM_API int TIMMsgSetGroupReceiveMessageOpt | ( | const char * | group_id, |
enum TIMReceiveMessageOpt | opt, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
4.3 设置群消息的接收选项
group_id | 群 ID |
opt | 消息接收选项,请参考 TIMReceiveMessageOpt |
cb | 设置成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgSetAllReceiveMessageOpt | ( | enum TIMReceiveMessageOpt | opt, |
int32_t | start_hour, | ||
int32_t | start_minute, | ||
int32_t | start_second, | ||
uint32_t | duration, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
4.4 设置登录用户全局消息接收选项,从 7.4 版本开始支持
opt | 全局消息接收选项设置,请参考 TIMReceiveMessageOpt |
start_hour | (0 - 23) 免打扰开始时间:小时,取值范围[0 - 23] |
start_minute | (0 - 59) 免打扰开始时间:分钟,取值范围[0 - 59] |
start_second | (0 - 59) 免打扰开始时间:秒,取值范围[0 - 59] |
duration | 免打扰持续时长:单位:秒,取值范围 [0 - 24*60*60]. |
cb | 设置成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgSetAllReceiveMessageOpt2 | ( | enum TIMReceiveMessageOpt | opt, |
uint32_t | start_time_stamp, | ||
uint32_t | duration, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
4.5 设置登录用户全局消息接收选项,从 7.4 版本开始支持
opt | 全局消息接收选项设置,请参考 TIMReceiveMessageOpt |
start_time_stamp | 免打扰开始时间,UTC 时间戳,单位:秒 |
duration | 免打扰持续时长:单位:秒 |
cb | 设置成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgGetAllReceiveMessageOpt | ( | TIMCommCallback | cb, |
const void * | user_data | ||
) |
4.6 获取登录用户全局消息接收选项,从 7.4 版本开始支持
cb | 查询结果的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
回调的 json_param 示例 (Json Key 请参考 TIMReceiveMessageOptInfo)
TIM_API int TIMMsgGetMsgList | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_get_msg_param, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.1 获取指定会话的历史消息
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_get_msg_param | 消息获取参数,Json Key 定义请参考 MsgGetMsgListParam |
cb | 获取指定会话的消息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
拉取 kTIMConv_C2C 消息时,只能使用 kTIMMsgGetMsgListParamLastMsg 作为消息的拉取起点;如果没有指定 kTIMMsgGetMsgListParamLastMsg,默认使用会话的最新消息作为拉取起点 拉取 kTIMConv_Group 消息时,除了可以使用 kTIMMsgGetMsgListParamLastMsg 作为消息的拉取起点外,也可以使用 kTIMMsgGetMsgListParamLastMsgSeq 来指定消息的拉取起点,二者的区别在于:
在拉取 kTIMConv_Group 消息时
请注意以下特殊逻辑:
获取 C2C 会话 Windows-02 消息列表示例
TIM_API int TIMMsgRevoke | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msg_param, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.2 消息撤回
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msg_param | 消息 json 字符串, Json Key 请参考 Message |
cb | 消息撤回成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgModifyMessage | ( | const char * | json_msg_param, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.3 消息变更
json_msg_param | 消息 json 字符串, Json Key 请参考 Message |
cb | 修改消息内容成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgDelete | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msgdel_param, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.4 删除指定会话的消息
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msgdel_param | 删除消息的参数, Json Key 请参考 MsgDeleteParam |
cb | 删除指定会话的消息成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgListDelete | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msg_array, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.5 删除指定会话的本地及漫游消息列表
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msg_array | 消息数组, 消息的 Json Key 请参考 Message |
cb | 删除消息成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgClearHistoryMessage | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.6 清空指定会话的消息
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
cb | 清空成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgSaveMsg | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msg_param, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.7 保存自定义消息
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msg_param | 消息 json 字符串, 消息的 Json Key 请参考 Message |
cb | 保存自定义消息成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API int TIMMsgImportMsgList | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msg_array, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.8 导入消息列表到指定会话
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msg_array | 消息数组, 消息的 Json Key 请参考 Message |
cb | 导入消息列表到指定会话成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgFindMessages | ( | const char * | json_message_id_array, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.9 根据消息 messageID 查询本地的消息列表,包括状态 kTIMMsgStatus 为 kTIMMsg_Revoked(已撤回)和 kTIMMsg_Deleted(已删除))的消息
json_message_id_array | 消息 ID 列表 |
cb | 根据消息 messageID 查询本地的消息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
TIM_API int TIMMsgFindByMsgLocatorList | ( | const char * | conv_id, |
enum TIMConvType | conv_type, | ||
const char * | json_msg_Locator_array, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.10 根据消息定位精准查找指定会话的消息,包括状态 kTIMMsgStatus 为 kTIMMsg_Revoked(已撤回)和 kTIMMsg_Deleted(已删除)
conv_id | 会话的ID |
conv_type | 会话类型,请参考 TIMConvType |
json_msg_Locator_array | 消息定位符数组, Json Key 请参考 MsgLocator |
cb | 根据消息定位精准查找指定会话的消息成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例
TIM_API int TIMMsgSearchLocalMessages | ( | const char * | json_search_message_param, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.11 搜索本地消息(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
json_search_message_param | 消息搜索参数, Json Key 请参考 MessageSearchParam |
cb | 搜索成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
搜索本地消息示例
TIM_API int TIMMsgSearchCloudMessages | ( | const char * | json_search_message_param, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.12 搜索云端消息(7.3 及以上版本支持,需要您购买旗舰版套餐)
json_search_message_param | 消息搜索参数, Json Key 请参考 MessageSearchParam |
cb | 搜索成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
搜索云端消息示例
TIM_API int TIMMsgSendMessageReadReceipts | ( | const char * | json_msg_array, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.13 发送消息已读回执 (6.1 及其以上版本支持,需要您购买旗舰版套餐)
json_msg_array | 消息列表, 消息的 Json Key 请参考 Message |
cb | 成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
发送消息已读回执示例
TIM_API int TIMMsgGetMessageReadReceipts | ( | const char * | json_msg_array, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.14 获取消息已读回执(6.1 及其以上版本支持,需要您购买旗舰版套餐)
json_msg_array | 消息列表, 消息的 Json Key 请参考 Message |
cb | 成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
获取消息已读回执示例
TIM_API int TIMMsgGetGroupMessageReadMemberList | ( | const char * | json_msg, |
enum TIMGroupMessageReadMembersFilter | filter, | ||
uint64_t | next_seq, | ||
uint32_t | count, | ||
TIMMsgGroupMessageReadMemberListCallback | cb, | ||
const void * | user_data | ||
) |
5.15 获取群消息已读群成员列表(6.1 及其以上版本支持,需要您购买旗舰版套餐)
json_msg | 单条群消息, Json Key 请参考 Message |
filter | 指定拉取已读或未读群成员列表。 |
next_seq | 分页拉取的游标,第一次默认取传 0,后续分页拉取时,传上一次分页拉取成功回调里的 next_seq |
count | 分页拉取的个数,最大支持 100 个。 |
cb | 成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
发送群消息已读回执示例
TIM_API int TIMMsgSetMessageExtensions | ( | const char * | json_msg, |
const char * | json_extension_array, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.16 设置消息扩展 (6.7 及其以上版本支持,需要您购买旗舰版套餐)
json_msg | 消息 json 字符串, Json Key 请参考 Message。消息需满足三个条件:1、消息发送前需设置 kTIMMsgSupportMessageExtension 为 true,2、消息必须是发送成功的状态,3、消息不能是直播群(AVChatRoom)消息。 |
json_extension_array | 消息扩展信息 json 字符串, Json Key 请参考 MessageExtension。如果扩展的 key 已经存在,则修改扩展的 value 信息,否则新增扩展 |
cb | 成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
设置消息扩展示例
TIM_API int TIMMsgGetMessageExtensions | ( | const char * | json_msg, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.17 获取消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
json_msg | 消息 json 字符串, Json Key 请参考 Message |
cb | 成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
获取消息扩展示例
TIM_API int TIMMsgDeleteMessageExtensions | ( | const char * | json_msg, |
const char * | json_extension_key_array, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.18 删除消息扩展(6.7 及其以上版本支持,需要您购买旗舰版套餐)
json_msg | 消息 json 字符串, Json Key 请参考 Message |
json_extension_key_array | 扩展信息 key 列表,单次最大支持删除 20 个消息扩展,如果设置为空,表示删除消息所有扩展 |
cb | 成功与否的回调。回调函数定义请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
删除消息扩展示例
TIM_API int TIMMsgAddMessageReaction | ( | const char * | json_msg, |
const char * | reaction_id, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.19 添加消息回应(可以用于实现表情回应,7.4 及其以上版本支持,需要您购买旗舰版套餐)
表情回应功能是指对某条消息通过表情符号进行互动回应,我们可以看到每种表情的回应人数和回应人列表。
目前常见的消息回应展示方式会有如下两种风格:
风格一:
-------------------------—
| lucy, happy birthday! |
-------------------------—
| 😄 1 💐 2 👍🏻 10 |
-------------------------—
风格二:
---------------------------------------------—
| lucy, happy birthday! |
---------------------------------------------—
| 😁 bob 💐olivia 🎂david |
| 👍🏻 denny、james、lucy、linda、thomas 等10人 |
---------------------------------------------—
当用户点击某个表情后,会跳转到表情回应详情界面:
| 😄 | 💐 | 👍🏻 |
| bob | olivia | lucy |
| ... | ... | denny |
| ... | ... | ... |
用户可以根据某个表情分页拉取使用该表情的用户信息。
您可以基于 SDK API 实现表情回应能力:
1、调用 TIMMsgAddMessageReaction 接口为一条消息添加一个 emoji,添加成功后,emoji 下就会存储当前操作用户。
2、调用 TIMMsgRemoveMessageReaction 接口删除已经添加的 emoji,删除成功后,emoji 下就不再存储当前操作用户。
3、调用 TIMMsgGetMessageReactions 接口批量拉取多条消息的 emoji 列表,其中每个 emoji 都包含了当前使用者总人数以及前 N(默认 10)个使用者用户资料。
4、调用 TIMMsgGetAllUserListOfMessageReaction 接口分页拉取消息 emoji 的全量使用者用户资料。
5、监听 TIMMsgReactionsChangedCallback 回调,感知 emoji 的使用者信息变更,该回调会携带 emoji 最新的使用者信息(包含使用者总人数以及前 N 个使用者用户资料)。
json_msg | 消息 json 字符串, Json Key 请参考 Message |
reaction_id | 消息回应 ID,在表情回应场景,reaction_id 为表情 ID,单条消息最大支持 10 个 Reaction,单个 Reaction 最大支持 100 个用户。 |
添加消息回应示例
TIM_API int TIMMsgRemoveMessageReaction | ( | const char * | json_msg, |
const char * | reaction_id, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.20 删除消息回应(7.4 及其以上版本支持,需要您购买旗舰版套餐)
json_msg | 消息 json 字符串, Json Key 请参考 Message |
reaction_id | 消息回应 ID,在表情回复场景,reaction_id 为表情 ID。 |
删除消息回应示例
TIM_API int TIMMsgGetMessageReactions | ( | const char * | json_msg_array, |
uint32_t | max_user_count_per_reaction, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.21 批量拉取多条消息回应信息(7.4 及其以上版本支持,需要您购买旗舰版套餐)
json_msg_array | 消息列表, Json Key 请参考 Message。一次最大支持 20 条消息,消息必须属于同一个会话。 |
max_user_count_per_reaction | 取值范围 [0,10],每个 Reaction 最多只返回前 10 个用户信息,如需更多用户信息,可以按需调用 TIMMsgGetMessageReactionUserList 接口分页拉取。 |
批量拉取消息回应列表示例
TIM_API int TIMMsgGetAllUserListOfMessageReaction | ( | const char * | json_msg, |
const char * | reaction_id, | ||
uint32_t | next_seq, | ||
uint32_t | count, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.22 分页拉取使用指定消息回应用户信息(7.4 及其以上版本支持,需要您购买旗舰版套餐)
json_msg | 消息 json 字符串, Json Key 请参考 Message |
reaction_id | 消息回应 ID,在表情回复场景,reaction_id 为表情 ID。 |
next_seq | 分页拉取的游标,第一次传 0,后续分页传 succ 返回的 nextSeq。 |
count | 一次分页最大拉取个数,最大支持 100 个。 |
拉取消息回应用户列表示例
TIM_API int TIMMsgTranslateText | ( | const char * | json_source_text_array, |
const char * | source_language, | ||
const char * | target_language, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.23 翻译文本消息
json_source_text_array | 待翻译文本数组。 |
source_language | 源语言。可以设置为特定语言或 ”auto“。“auto“ 表示自动识别源语言。传空默认为 ”auto“。 |
target_language | 目标语言。支持的目标语言有多种,例如:英语-“en“,简体中文-”zh“,法语-”fr“,德语-”de“等。详情请参考文档 文本翻译语言支持。 |
cb | 翻译结果的回调。回调函数定义和参数解析请参考 TIMCommCallback。 |
示例
TIM_API int TIMMsgConvertVoiceToText | ( | const char * | url, |
const char * | language, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.24 识别语音消息,将语音转换成文字(7.4 及以上版本支持)
url | 语音消息下载 url,可在消息对象中获取到。 |
language | 识别的语言。 |
cb | 识别结果的回调。回调函数定义和参数解析请参考 TIMCommCallback。 |
示例
TIM_API int TIMPinGroupMessage | ( | const char * | group_id, |
const char * | json_msg, | ||
bool | is_pinned, | ||
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.25 设置群消息置顶(7.9 及以上版本支持,需要您购买旗舰版套餐)
group_id | 群 ID |
is_pinned | 是否置顶 |
json_msg | 消息 json 字符串, Json Key 请参考 Message |
cb | 根据消息 messageID 查询本地的消息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
添加消息回应示例
TIM_API int TIMGetPinnedGroupMessageList | ( | const char * | group_id, |
TIMCommCallback | cb, | ||
const void * | user_data | ||
) |
5.26 获取已置顶的群消息列表(7.9 及以上版本支持,需要您购买旗舰版套餐)
group_id | 群 ID |
cb | 根据消息 messageID 查询本地的消息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback |
user_data | 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理 |
示例