TIMExperimentalAPI.h 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308
  1. // Copyright (c) 2023 Tencent. All rights reserved.
  2. #ifndef SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_EXPERIMENTAL_API_H_
  3. #define SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_EXPERIMENTAL_API_H_
  4. #include "TIMCloudDef.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. // 模块简介
  9. // - 实验性 API, 用于提供一些实验性功能
  10. //
  11. // 模块参数说明
  12. // - API 的参数采用 json 字符串格式,请使用文件中预先定义的 JsonKey 进行参数传递和解析
  13. // - 如果参数中包含非英文字符,请使用 UTF-8 编码
  14. //
  15. // 模块回调说明
  16. // 1. 回调的类型:
  17. // - 调用 API 时传入的 TIMCommCallback 回调,用于异步返回 API 的调用结果
  18. // - 调用 TIMSetXXXCallback 设置的全局回调,用于接收后台推送的通知
  19. // 2. 回调触发的线程:
  20. // - 对于 Windows 平台,当在主线程中调用 @ref TIMInit 接口时,SDK 会将所有回调抛到主线程,请确保主线程已创建消息循环;否则,回调将在 SDK 内部的逻辑线程触发
  21. // - 对于 Android 平台,当调用 @ref TIMInit 接口的线程支持消息循环时,SDK 会将所有回调抛到该线程;否则,回调将在 SDK 内部的逻辑线程触发
  22. // - 对于 iOS 和 MAC 平台,SDK 默认将所有回调抛到主线程
  23. // - 对于 Linux 平台,暂不支持将回调抛到主线程,回调将在 SDK 内部的逻辑线程触发
  24. /////////////////////////////////////////////////////////////////////////////////
  25. //
  26. // 一. ImSDK 实验性通知回调
  27. //
  28. /////////////////////////////////////////////////////////////////////////////////
  29. /**
  30. * 1.1 实验性通知的回调(7.4 及其以上版本支持)
  31. *
  32. * @param key 通知 key
  33. * @param data 通知数据
  34. */
  35. typedef void (*TIMExperimentalNotifyCallback)(const char* key, const char* data, const void* user_data);
  36. /////////////////////////////////////////////////////////////////////////////////
  37. //
  38. // 二. 注册实验性通知回调
  39. //
  40. /////////////////////////////////////////////////////////////////////////////////
  41. /**
  42. * 2.1 实验性通知的回调
  43. * @param cb 实验性通知的回调,请参考 @ref TIMExperimentalNotifyCallback
  44. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  45. */
  46. TIM_API void TIMSetExperimentalNotifyCallback(TIMExperimentalNotifyCallback cb, const void *user_data);
  47. /////////////////////////////////////////////////////////////////////////////////
  48. //
  49. // 三. 实验性 API
  50. //
  51. /////////////////////////////////////////////////////////////////////////////////
  52. /**
  53. * 3.1 实验性 API
  54. *
  55. * @note 该接口提供一些实验性功能
  56. */
  57. TIM_API int callExperimentalAPI(const char* json_param, TIMCommCallback cb, const void* user_data);
  58. /////////////////////////////////////////////////////////////////////////////////
  59. //
  60. // 四. 实验性 API 参数相关的 Json Key 定义
  61. //
  62. /////////////////////////////////////////////////////////////////////////////////
  63. //------------------------------------------------------------------------------
  64. // 4.1 TIMInternalOperation(实验性接口的操作类型)
  65. static const char* kTIMInternalOperationSSOData = "internal_operation_sso_data";
  66. static const char* kTIMInternalOperationUserId2TinyId = "internal_operation_userid_tinyid";
  67. static const char* kTIMInternalOperationTinyId2UserId = "internal_operation_tinyid_userid";
  68. static const char* kTIMInternalOperationSetEnv = "internal_operation_set_env";
  69. static const char* kTIMInternalOperationSetIPv6Prior = "internal_operation_set_ipv6_prior";
  70. static const char* kTIMInternalOperationSetMaxRetryCount = "internal_operation_set_max_retry_count";
  71. static const char* kTIMInternalOperationSetPacketRequestTimeout = "internal_operation_set_packet_request_timeout";
  72. static const char* kTIMInternalOperationSetCustomServerInfo = "internal_operation_set_custom_server_info";
  73. static const char* kTIMInternalOperationEnableQuicChannel = "internal_operation_enable_quic_channel";
  74. static const char* kTIMInternalOperationSetSM4GCMCallback = "internal_operation_set_sm4_gcm_callback";
  75. static const char* kTIMInternalOperationInitLocalStorage = "internal_operation_init_local_storage";
  76. static const char* kTIMInternalOperationSetCosSaveRegionForConversation = "internal_operation_set_cos_save_region_for_conversation";
  77. static const char* kTIMInternalOperationSetUIPlatform = "internal_operation_set_ui_platform";
  78. static const char* kTIMInternalOperationSetDatabaseEncryptInfo = "internal_operation_set_database_encrypt_info";
  79. static const char* kTIMInternalOperationIsCommercialAbilityEnabled = "internal_operation_is_commercial_ability_enabled";
  80. static const char* kTIMInternalOperationSetOfflinePushState = "internal_operation_set_offline_push_state";
  81. static const char* kTIMInternalOperationGetOfflinePushState = "internal_operation_get_offline_push_state";
  82. static const char* kTIMInternalOperationGetMessageRevoker = "internal_operation_get_message_revoker";
  83. static const char* kTIMInternalOperationSetLogSetting = "internal_operation_set_log_setting";
  84. static const char* kTIMInternalOperationWriteLog = "internal_operation_write_log";
  85. static const char* kTIMInternalOperationClearLocalHistoryMessage = "internal_operation_clear_local_history_message";
  86. static const char* kTIMInternalOperationUpdateProxyInfo = "internal_operation_update_proxy_info";
  87. static const char* kTIMInternalOperationReportTUIComponentUsage = "internal_operation_report_tuicomponent_usage";
  88. static const char* kTIMInternalOperationSendTRTCCustomData = "internal_operation_send_trtc_custom_data";
  89. static const char* kTIMInternalOperationSendRoomCustomData = "internal_operation_send_room_custom_data";
  90. static const char* kTIMInternalOperationSetApplicationID = "internal_operation_set_application_id";
  91. static const char* kTIMInternalOperationGetServerConfig = "internal_operation_get_server_config";
  92. static const char* kTIMInternalOperationSetIgnoreRepeatLogin = "internal_operation_set_ignore_repeat_login";
  93. static const char* kTIMInternalOperationStartMessageLongPolling = "internal_operation_start_message_long_polling";
  94. static const char* kTIMInternalOperationStopMessageLongPolling = "internal_operation_stop_message_long_polling";
  95. static const char* kTIMInternalOperationFindMergerMessages = "internal_operation_find_merger_messages";
  96. static const char* kTIMInternalOperationGetBriefGroupMemberList = "internal_operation_get_brief_group_member_list";
  97. static const char* kTIMInternalOperationSetCustomLoginInfo = "internal_operation_set_custom_login_info";
  98. static const char* kTIMInternalOperationDisableHttpRequest = "internal_operation_disable_http_request";
  99. //------------------------------------------------------------------------------
  100. // 4.2 SSODataParam(发送 sso data 的参数)
  101. // string, 只写(必填), sso请求的命令字
  102. static const char* kTIMSSODataParamCmd = "sso_data_param_cmd";
  103. // string, 只写(必填), sso请求的内容,内容是二进制,需要外部传入base64编码后的字符串,sdk内部回解码成原二进制
  104. static const char* kTIMSSODataParamBody = "sso_data_param_body";
  105. // uint64, 只写(选填), sso请求的超时时间,默认是15秒
  106. static const char* kTIMSSODataParamTimeout = "sso_data_param_timeout";
  107. //------------------------------------------------------------------------------
  108. // 4.3 SSODataRes(发送 sso data 的返回信息)
  109. // string, 只读(必填), sso返回数据对应请求的命令字
  110. static const char* kTIMSSODataResCmd = "sso_data_res_cmd";
  111. // string, 只读(必填), sso返回的内容,内容是二进制,sdk内部使用base64编码了,外部使用前需要base64解码
  112. static const char* kTIMSSODataResBody = "sso_data_res_body";
  113. //------------------------------------------------------------------------------
  114. // 4.4 UserInfo(用户账号信息)
  115. static const char* kTIMUserInfoUserId = "user_info_userid";
  116. static const char* kTIMUserInfoTinyId = "user_info_tinyid";
  117. //------------------------------------------------------------------------------
  118. // 4.5 ServerAddress(服务器地址)
  119. // string, 只写(必填), 服务器 IP
  120. static const char* kTIMServerAddressIp = "server_address_ip";
  121. // int, 只写(必填), 服务器端口
  122. static const char* kTIMServerAddressPort = "server_address_port";
  123. // bool, 只写(选填), 是否 IPv6 地址,默认为 false
  124. static const char* kTIMServerAddressIsIPv6 = "server_address_is_ipv6";
  125. // bool, 只写(选填), 是否 Quic 地址,默认为 false
  126. static const char* kTIMServerAddressIsQuic = "server_address_is_quic";
  127. //------------------------------------------------------------------------------
  128. // 4.6 CustomServerInfo(自定义服务器信息)
  129. // array @ref ServerAddress, 只写(必填), 长连接服务器地址列表
  130. static const char* kTIMCustomServerInfoLongConnectionAddressArray = "longconnection_address_array";
  131. // array @ref ServerAddress, 只写(选填), 短连接服务器地址列表
  132. static const char* kTIMCustomServerInfoShortConnectionAddressArray = "shortconnection_address_array";
  133. // string, 只写(必填), 服务器公钥
  134. static const char* kTIMCustomServerInfoServerPublicKey = "server_public_key";
  135. //------------------------------------------------------------------------------
  136. // 4.7 QuicChannelInfo(Quic 通道信息)
  137. // bool, 只写(必填), 是否启用 Quic 通道,true:打开,false:不打开
  138. static const char* kTIMQuicChannelInfoEnableQuic = "quic_channel_info_enable_quic";
  139. //------------------------------------------------------------------------------
  140. // 4.8 SM4GCMCallbackParam(国密 SM4 GCM 回调函数地址的参数)
  141. // uint64 只写(必填), SM4 GCM 加密回调函数地址
  142. static const char* kTIMSM4GCMCallbackParamEncrypt = "sm4_gcm_callback_param_encrypt";
  143. // uint64, 只写(必填), SM4 GCM 解密回调函数地址
  144. static const char* kTIMSM4GCMCallbackParamDecrypt = "sm4_gcm_callback_param_decrypt";
  145. //------------------------------------------------------------------------------
  146. // 4.9 CosSaveRegionForConversationParam(设置 cos 存储区域)
  147. // string, 只写(必填), 会话 ID
  148. static const char* kTIMCosSaveRegionForConversationParamConversationID = "cos_save_region_for_conversation_param_conversation_id";
  149. // string, 只写(必填), 存储区域
  150. static const char* kTIMCosSaveRegionForConversationParamCosSaveRegion = "cos_save_region_for_conversation_param_cos_save_region";
  151. //------------------------------------------------------------------------------
  152. // 4.10 DatabaseEncryptInfo(数据库加密信息)
  153. // int, 只写(必填), 数据库加密类型,0 不加密(默认),1:按位异或,2:TEA,3:国密,4:AES
  154. static const char* kTIMDatabaseEncryptInfoEncryptType = "database_encrypt_info_encrypt_type";
  155. // string, 只写(选填), 数据库加密类型 key ,除了 按位异或 算法,其他算法的加密 key,必须是长度是 32 base16 字符串,不填写就使用 IMSDK 内部生成的 key,由于数据库加密数据持久化到文件中,因此,一旦 key 被使用过,不能够再更换
  156. static const char* kTIMDatabaseEncryptInfoEncryptKey = "database_encrypt_info_encrypt_key";
  157. //------------------------------------------------------------------------------
  158. // 4.11 CommercialAbilityResult(商业化能力项的查询结果)
  159. // bool, 只读(必填), 查询是否支持指定的商业化能力项的结果,true:支持,false:不支持
  160. static const char* kTIMCommercialAbilityResultEnabled = "commercial_ability_result_enabled";
  161. //------------------------------------------------------------------------------
  162. // 4.12 LogSetting(日志配置)
  163. // bool, 只写(必填), 是否关闭自动清理,true:是,false:否
  164. static const char* kTIMLogSettingDisableAutoClean = "log_setting_disable_auto_clean";
  165. // uint64, 只写(选填), 日志文件的最大大小,单位 Bytes,默认 100MB,不能小于 150KB
  166. static const char* kTIMLogSettingMaxFileSize = "log_setting_max_file_size";
  167. //------------------------------------------------------------------------------
  168. // 4.13 RequestParam(callExperimentalAPI 接口请求的参数)
  169. // string @ref TIMInternalOperation, 只写(必填), 内部接口的操作类型
  170. static const char* kTIMRequestInternalOperation = "request_internal_operation";
  171. // object @ref SSODataParam, 只写(选填), sso发包请求, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSSOData 时需要设置
  172. static const char* kTIMRequestSSODataParam = "request_sso_data_param";
  173. // array string, 只写(选填), 请求需要转换成tinyid的userid列表, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationUserId2TinyId 时需要设置
  174. static const char* kTIMRequestUserId2TinyIdParam = "request_userid_tinyid_param";
  175. // array uint64, 只写(选填), 请求需要转换成userid的tinyid列表, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationTinyId2UserId 时需要设置
  176. static const char* kTIMRequestTinyId2UserIdParam = "request_tinyid_userid_param";
  177. // bool, 只写(选填), true 表示设置当前环境为测试环境,false表示设置当前环境是正式环境,默认是正式环境, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetEnv 时需要设置
  178. static const char* kTIMRequestSetEnvParam = "request_set_env_param";
  179. // bool, 只写(选填), 在 IPv6 双栈网络下,是否优先使用 IPv6 协议,当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetIPv6Prior 时需要设置
  180. static const char* kTIMRequestSetIPv6PriorParam = "request_set_ipv6_prior_param";
  181. // uint32, 只写(选填), 设置登录、发消息请求的重试次数, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetMaxRetryCount 时需要设置
  182. static const char* kTIMRequestSetMaxRetryCountParam = "request_set_max_retry_count_param";
  183. // int64, 只写(选填), 设置登录、发消息请求的超时时间, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetPacketRequestTimeout 时需要设置
  184. static const char* kTIMRequestSetPacketRequestTimeoutParam = "request_set_packet_request_timeout_param";
  185. // object @ref CustomServerInfo, 只写(选填), 自定义服务器信息, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetCustomServerInfo 时需要设置
  186. static const char* kTIMRequestSetCustomServerInfoParam = "request_set_custom_server_info_param";
  187. // bool, 只写(选填), true 表示设置 Quic 通道信息, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationEnableQuicChannel 时需要设置
  188. static const char* kTIMRequestEnableQuicChannelParam = "request_enable_quic_channel_param";
  189. // object @ref SM4GCMCallbackParam, 只写(选填), 国密 SM4 GCM 回调函数地址的参数, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetSM4GCMCallback 时需要设置
  190. static const char* kTIMRequestSetSM4GCMCallbackParam = "request_set_sm4_gcm_callback_param";
  191. // string, 只写(选填), 初始化 Database 的用户 ID, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationInitLocalStorage 时需要设置
  192. static const char* kTIMRequestInitLocalStorageParam = "request_init_local_storage_user_id_param";
  193. // object @ref CosSaveRegionForConversationParam, 只写(选填), 设置 cos 存储区域的参数, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetCosSaveRegionForConversation 时需要设置
  194. static const char* kTIMRequestSetCosSaveRegionForConversationParam = "request_set_cos_save_region_for_conversation_param";
  195. // uint32, 只写(选填), 设置 UI 平台,当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetUIPlatform 时需要设置
  196. static const char* kTIMRequestSetUIPlatformParam = "request_set_ui_platform_param";
  197. // object @ref DatabaseEncryptInfo, 只写(选填), 设置数据库加密信息, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetDatabaseEncryptInfo 时需要设置
  198. static const char* kTIMRequestSetDatabaseEncryptInfoParam = "request_set_database_encrypt_info_param";
  199. // uint64, 只写(选填), 商业化能力项枚举的组合值, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationIsCommercialAbilityEnabled 时需要设置
  200. static const char* kTIMRequestIsCommercialAbilityEnabledParam = "request_is_commercial_ability_enabled_param";
  201. // uint32, 只写(选填), 设置推送状态:0 - 不设置 1 - 开启推送 2 - 关闭推送, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetOfflinePushState 时需要设置
  202. static const char* kTIMRequestSetOfflinePushStateParam = "request_set_offline_push_state_param";
  203. // array string, 只写(选填), 撤回消息的 id, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationGetMessageRevoker 时需要设置
  204. static const char* kTIMRequestMessageRevokerMessageIdArray = "request_message_revoker_message_id_array";
  205. // object @ref LogSetting, 只写(选填), 设置日志参数, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetLogSetting 时需要设置
  206. static const char* kTIMRequestSetLogSettingParam = "request_set_log_setting_param";
  207. // int, 只写(选填), 打印日志的级别, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationWriteLog 时需要设置
  208. static const char* kTIMRequestWriteLogLogLevelParam = "request_write_log_log_level_param";
  209. // string, 只写(选填), 打印日志的内容, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationWriteLog 时需要设置
  210. static const char* kTIMRequestWriteLogLogContentParam = "request_write_log_log_content_param";
  211. // string, 只写(选填), 打印日志的文件名, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationWriteLog 时需要设置
  212. static const char* kTIMRequestWriteLogFileNameParam = "request_write_log_file_name_param";
  213. // string, 只写(选填), 打印日志的函数名, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationWriteLog 时需要设置
  214. static const char* kTIMRequestWriteLogFuncNameParam = "request_write_log_func_name_param";
  215. // int, 只写(选填), 打印日志的所在行数, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationWriteLog 时需要设置
  216. static const char* kTIMRequestWriteLogLineNumberParam = "request_write_log_line_number_param";
  217. // string, 只写(选填), 设置要删除消息的会话 ID, 其中单聊格式为 "c2c_userID", 群聊会话格式为 "group_groupID", 当输入为 "c2c" 或者 "group" 时会同时操作所有 单聊 或者 群聊 会话,当输入为 "" 时会同时操纵所有会话,当 kTIMRequestInternalOperation 为 kTIMInternalOperationClearLocalHistoryMessage 时需要设置
  218. static const char* kTIMRequestClearLocalHistoryMessageConversationIDParam = "request_clear_local_history_message_conversation_id_param";
  219. // uint64, 只写(选填), 设置要删除消息时间范围的开始时间, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationClearLocalHistoryMessage 时需要设置
  220. static const char* kTIMRequestClearLocalHistoryMessageBeginTimestampParam = "request_clear_local_history_message_begin_timestamp_param";
  221. // uint64, 只写(选填), 设置要删除消息时间范围的结束时间,删除消息时间范围为 [begin_time, end_time],若结束时间设置为 0,则删除开始时间之后的所有消息,若开始和结束时间都被设置为 0,则清空指定会话的所有消息,当 kTIMRequestInternalOperation 为 kTIMInternalOperationClearLocalHistoryMessage 时需要设置
  222. static const char* kTIMRequestClearLocalHistoryMessageEndTimestampParam = "request_clear_local_history_message_end_timestamp_param";
  223. static const char* kTIMRequestReportTUIComponentUsageUIComponentTypeParam = "report_tuicomponent_usage_uicomponent_type_param";
  224. static const char* kTIMRequestReportTUIComponentUsageUIStyleTypeParam = "report_tuicomponent_usage_uistyle_type_param";
  225. // string, 只写(必填),长连接透传发送的数据,当 kTIMRequestInternalOperation 为 kTIMInternalOperationSendTRTCCustomData 时需要设置
  226. static const char* kTIMRequestSendTRTCCustomDataParam = "request_send_trtc_custom_data_param";
  227. // string, 只写(必填),长连接透传发送的数据,当 kTIMRequestInternalOperation 为 kTIMInternalOperationSendRoomCustomData 时需要设置
  228. static const char* kTIMRequestSendRoomCustomDataServiceCommandParam = "request_send_room_custom_data_service_command_param";
  229. // string, 只写(必填),长连接透传发送的数据,当 kTIMRequestInternalOperation 为 kTIMInternalOperationSendRoomCustomData 时需要设置
  230. static const char* kTIMRequestSendRoomCustomDataRequestContentParam = "request_send_room_custom_data_request_content_param";
  231. // uint8, 只写(选填), 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetApplicationID 时需要设置
  232. static const char* kTIMRequestSetApplicationIDParam = "request_set_application_id_param";
  233. // string, 只写(必填), 当 kTIMRequestInternalOperation 为 kTIMInternalOperationGetServerConfig 时需要设置
  234. static const char* kTIMRequestGetServerConfigKeyParam = "request_get_server_config_key_param";
  235. // string, 只写(必填), 当 kTIMRequestInternalOperation 为 kTIMInternalOperationGetServerConfig 时需要设置
  236. // 0或不填: 无效, 1:数值类型 2:字符串类型
  237. static const char* kTIMRequestGetServerConfigValueTypeParam = "request_get_server_config_value_type_param";
  238. // bool, 只写(选填), 设置「SDK 是否忽略重复登录请求」, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetIgnoreRepeatLogin 时有效
  239. static const char* kTIMRequestSetIgnoreRepeatLoginParam = "request_set_ignore_repeat_login_param";
  240. // string, 只写(必填),直播群 ID, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationStartMessageLongPolling 时需要设置
  241. static const char* kTIMRequestStartMessageLongPollingIDParam = "request_start_message_long_polling_id_param";
  242. // string, 只写(必填),直播群长轮询的 key, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationStartMessageLongPolling 时需要设置
  243. static const char* kTIMRequestStartMessageLongPollingKeyParam = "request_start_message_long_polling_key_param";
  244. // string, 只写(必填),长轮询起始的 sequence, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationStartMessageLongPolling 时需要设置
  245. static const char* kTIMRequestStartMessageLongPollingSequenceParam = "request_start_message_long_polling_sequence_param";
  246. // string, 只写(必填),直播群 ID, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationStopMessageLongPolling 时需要设置
  247. static const char* kTIMRequestStopMessageLongPollingIDParam = "request_stop_message_long_polling_id_param";
  248. // string, 只写(必填),消息 ID,当 kTIMRequestInternalOperation 为 kTIMInternalOperationFindMergerMessages 时需要设置
  249. static const char* kTIMRequestFindMergerMessagesMessageIDParam = "request_find_merger_messages_message_id_param";
  250. // array, 只写(必填),合并消息 ID 列表,当 kTIMRequestInternalOperation 为 kTIMInternalOperationFindMergerMessages 时需要设置
  251. static const char* kTIMRequestFindMergerMessagesMergerMessageIDListParam = "request_find_merger_messages_merger_message_id_list_param";
  252. // string, 只写(选填),群 ID, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationGetBriefGroupMemberList 时需要设置
  253. static const char* kTIMRequestGetBriefGroupMemberListGroupIDParam = "request_get_brief_group_member_list_group_id_param";
  254. // string, 只写(选填), 自定义登录信息, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationSetCustomLoginInfo 时需要设置
  255. static const char* kTIMRequestSetCustomLoginInfoUserIDParam = "request_set_custom_login_info_user_id_param";
  256. static const char* kTIMRequestSetCustomLoginInfoCustomInfoParam = "request_set_custom_login_info_custom_info_param";
  257. // bool, 只写(选填), 设置是否禁用 http 请求, 当 kTIMRequestInternalOperation 为 kTIMInternalOperationDisableHttpRequest 时需要设置
  258. static const char* kTIMRequestDisableHttpRequestParam = "request_disable_http_request_param";
  259. //------------------------------------------------------------------------------
  260. // 4.14 ResponseInfo(callExperimentalAPI 接口回调返回的数据)
  261. // string @ref TIMInternalOperation, 只读(必填), 响应的内部操作
  262. static const char* kTIMResponseInternalOperation = "response_internal_operation";
  263. // object @ref SSODataRes, 只读(选填), sso发包请求的响应, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationSSOData 时有值
  264. static const char* kTIMResponseSSODataRes = "response_sso_data_res";
  265. // array @ref UserInfo, 只读(选填), 响应的tinyid列表, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationUserId2TinyId 时有值
  266. static const char* kTIMResponseUserId2TinyIdRes = "response_userid_tinyid_res";
  267. // array @ref UserInfo, 只读(选填), 响应的tinyid列表, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationTinyId2UserId 时有值
  268. static const char* kTIMResponseTinyId2UserIdRes = "response_tinyid_userid_res";
  269. // bool, 只读(选填), true 表示当前环境为测试环境,false表示当前环境是正式环境, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationSetEnv 时有值
  270. static const char* kTIMResponseSetEvnRes = "response_set_env_res";
  271. // uint32, 只读(选填), 推送状态:0 - 不设置 1 - 开启推送 2 - 关闭推送, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationGetOfflinePushState 时有值
  272. static const char* kTIMResponseGetOfflinePushStateRes = "response_get_offline_push_state_res";
  273. // string, 只读(选填), 撤回消息的 id, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationGetMessageRevoker 时有值
  274. static const char* kTIMResponseMessageId = "response_message_id";
  275. // string, 只读(选填), 撤回消息的操作者, 当 kTIMResponseInternalOperation 为 kTIMInternalOperationGetMessageRevoker 时有值
  276. static const char* kTIMResponseMessageRevoker = "response_message_revoker";
  277. #ifdef __cplusplus
  278. }
  279. #endif // __cplusplus
  280. #endif // SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_EXPERIMENTAL_API_H_