TIMGroupManager.h 121 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186
  1. // Copyright (c) 2023 Tencent. All rights reserved.
  2. #ifndef SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_GROUP_MANAGER_H_
  3. #define SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_GROUP_MANAGER_H_
  4. #include "TIMCloudDef.h"
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. // 模块简介
  9. // - 群组接口,包含建群、加群、退群、群成员邀请、非群成员申请进群等功能
  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. // 一. 群组功能相关配置选项定义
  27. //
  28. /////////////////////////////////////////////////////////////////////////////////
  29. // 1.1 群组信息修改的类型
  30. enum TIMGroupTipGroupChangeFlag {
  31. // 未知的修改
  32. kTIMGroupTipChangeFlag_Unknown = 0x0,
  33. // 修改群组名称
  34. kTIMGroupTipChangeFlag_Name = 0x1,
  35. // 修改群简介
  36. kTIMGroupTipChangeFlag_Introduction = 0x2,
  37. // 修改群公告
  38. kTIMGroupTipChangeFlag_Notification = 0x3,
  39. // 修改群头像URL
  40. kTIMGroupTipChangeFlag_FaceUrl = 0x4,
  41. // 修改群所有者
  42. kTIMGroupTipChangeFlag_Owner = 0x5,
  43. // 修改群自定义信息
  44. kTIMGroupTipChangeFlag_Custom = 0x6,
  45. // 群属性变更 (新增)
  46. kTIMGroupTipChangeFlag_Attribute = 0x7,
  47. // 全员禁言字段变更
  48. kTIMGroupTipChangeFlag_ShutupAll = 0x08,
  49. // 话题自定义字段
  50. kTIMGroupTipChangeFlag_TopicCustomData = 0x09,
  51. // 消息接收选项变更
  52. kTIMGroupTipChangeFlag_MessageReceiveOpt = 0x0A,
  53. // 申请加群方式下管理员审批选项变更
  54. kTIMGroupTipChangeFlag_GroupAddOpt = 0x0B,
  55. // 邀请进群方式下管理员审批选项变更
  56. kTIMGroupTipChangeFlag_GroupApproveOpt = 0x0C,
  57. // 开启权限组功能,只支持社群,7.8 版本开始支持
  58. kTIMGroupTipChangeFlag_EnablePermissionGroup = 0x0D,
  59. // 群默认权限,只支持社群,7.8 版本开始支持
  60. kTIMGroupTipChangeFlag_DefaultPermissions = 0x0E,
  61. // 申请加入私密话题时管理员的审批选项变更
  62. kTIMGroupTipChangeFlag_TopicAddOpt = 0x0F,
  63. // 邀请进入私密话题时管理员的审批选项变更
  64. kTIMGroupTipChangeFlag_TopicApproveOpt = 0x10,
  65. // 私密话题最大成员数量
  66. kTIMGroupTipChangeFlag_TopicMemberMaxCount = 0x11,
  67. };
  68. // 1.2 群组系统消息类型
  69. enum TIMGroupTipType {
  70. // 无效的群提示
  71. kTIMGroupTip_None,
  72. // 邀请加群提示
  73. kTIMGroupTip_Invite,
  74. // 退群提示
  75. kTIMGroupTip_Quit,
  76. // 踢人提示
  77. kTIMGroupTip_Kick,
  78. // 设置管理员提示
  79. kTIMGroupTip_SetAdmin,
  80. // 取消管理员提示
  81. kTIMGroupTip_CancelAdmin,
  82. // 群信息修改提示
  83. kTIMGroupTip_GroupInfoChange,
  84. // 群成员信息修改提示
  85. kTIMGroupTip_MemberInfoChange,
  86. // 群成员标记修改提示
  87. kTIMGroupTip_MemberMarkChange,
  88. // 话题资料修改提示
  89. kTIMGroupTip_TopicInfoChange,
  90. // 置顶群消息
  91. KTIMGroupTip_PinnedMessageAdded,
  92. // 取消置顶群消息
  93. KTIMGroupTip_PinnedMessageDeleted,
  94. };
  95. // 1.3 群组类型
  96. enum TIMGroupType {
  97. // 公开群(Public),成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
  98. kTIMGroup_Public,
  99. // 工作群(Work),成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
  100. kTIMGroup_Private,
  101. // 会议群(Meeting),成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
  102. kTIMGroup_ChatRoom,
  103. // 在线成员广播大群,推荐使用 直播群(AVChatRoom)
  104. kTIMGroup_BChatRoom,
  105. // 直播群(AVChatRoom),人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
  106. kTIMGroup_AVChatRoom,
  107. // 社群(Community),成员上限 100000 人,任何人都可以自由进出,且加群无需被审批,适合用于知识分享和游戏交流等超大社区群聊场景。5.8 版本开始支持,需要您购买旗舰版套餐。
  108. kTIMGroup_Community,
  109. };
  110. // 1.4 群组加群选项
  111. enum TIMGroupAddOption {
  112. // 禁止加群
  113. kTIMGroupAddOpt_Forbid = 0,
  114. // 需要管理员审批
  115. kTIMGroupAddOpt_Auth = 1,
  116. // 任何人都可以加群
  117. kTIMGroupAddOpt_Any = 2,
  118. // 未定义
  119. kTIMGroupAddOpt_Unknown = 3,
  120. };
  121. // 1.5 群组成员角色类型
  122. enum TIMGroupMemberRole {
  123. // 未定义
  124. kTIMMemberRole_None = 0,
  125. // 群成员
  126. kTIMMemberRole_Normal = 200,
  127. // 管理员
  128. kTIMMemberRole_Admin = 300,
  129. // 超级管理员(群主)
  130. kTIMMemberRole_Owner = 400,
  131. };
  132. // 1.6 群搜索 Field 的枚举
  133. enum TIMGroupSearchFieldKey {
  134. // 群 ID
  135. kTIMGroupSearchFieldKey_GroupId = 0x01,
  136. // 群名称
  137. kTIMGroupSearchFieldKey_GroupName = 0x01 << 1,
  138. };
  139. // 1.7 设置(修改)群组信息的类型
  140. enum TIMGroupModifyInfoFlag {
  141. // 未定义
  142. kTIMGroupModifyInfoFlag_None = 0x00,
  143. // 修改群组名称
  144. kTIMGroupModifyInfoFlag_Name = 0x01,
  145. // 修改群公告
  146. kTIMGroupModifyInfoFlag_Notification = 0x01 << 1,
  147. // 修改群简介
  148. kTIMGroupModifyInfoFlag_Introduction = 0x01 << 2,
  149. // 修改群头像URL
  150. kTIMGroupModifyInfoFlag_FaceUrl = 0x01 << 3,
  151. // 申请加群管理员审批选项
  152. kTIMGroupModifyInfoFlag_AddOption = 0x01 << 4,
  153. // 修改群最大成员数
  154. kTIMGroupModifyInfoFlag_MaxMemberNum = 0x01 << 5,
  155. // 修改群是否可见
  156. kTIMGroupModifyInfoFlag_Visible = 0x01 << 6,
  157. // 修改群是否允许被搜索
  158. kTIMGroupModifyInfoFlag_Searchable = 0x01 << 7,
  159. // 修改群是否全体禁言
  160. kTIMGroupModifyInfoFlag_ShutupAll = 0x01 << 8,
  161. // 修改群自定义信息
  162. kTIMGroupModifyInfoFlag_Custom = 0x01 << 9,
  163. // 话题自定义字段
  164. kTIMGroupTopicModifyInfoFlag_CustomString = 0x01 << 11,
  165. // 邀请进群管理员审批选项
  166. kTIMGroupModifyInfoFlag_ApproveOption = 0x01 << 12,
  167. // 开启权限组功能,仅支持社群,7.8 版本开始支持
  168. kTIMGroupModifyInfoFlag_EnablePermissionGroup = 0x1 << 13,
  169. // 群默认权限,仅支持社群,7.8 版本开始支持
  170. kTIMGroupModifyInfoFlag_DefaultPermissions = 0x1 << 14,
  171. // 修改群主
  172. kTIMGroupModifyInfoFlag_Owner = 0x01 << 31,
  173. };
  174. // 1.8 群组成员角色标识
  175. enum TIMGroupMemberRoleFlag {
  176. // 获取全部角色类型
  177. kTIMGroupMemberRoleFlag_All = 0x00,
  178. // 获取所有者(群主)
  179. kTIMGroupMemberRoleFlag_Owner = 0x01,
  180. // 获取管理员,不包括群主
  181. kTIMGroupMemberRoleFlag_Admin = 0x01 << 1,
  182. // 获取普通群成员,不包括群主和管理员
  183. kTIMGroupMemberRoleFlag_Member = 0x01 << 2,
  184. };
  185. // 1.9 群成员搜索 Field 的枚举
  186. enum TIMGroupMemberSearchFieldKey {
  187. // 用户 ID
  188. kTIMGroupMemberSearchFieldKey_Identifier = 0x01,
  189. // 昵称
  190. kTIMGroupMemberSearchFieldKey_NickName = 0x01 << 1,
  191. // 备注
  192. kTIMGroupMemberSearchFieldKey_Remark = 0x01 << 2,
  193. // 名片
  194. kTIMGroupMemberSearchFieldKey_NameCard = 0x01 << 3,
  195. };
  196. // 1.10 设置(修改)群成员信息的类型
  197. enum TIMGroupMemberModifyInfoFlag {
  198. // 未定义
  199. kTIMGroupMemberModifyFlag_None = 0x00,
  200. // 修改消息接收选项
  201. kTIMGroupMemberModifyFlag_MsgFlag = 0x01,
  202. // 修改成员角色
  203. kTIMGroupMemberModifyFlag_MemberRole = 0x01 << 1,
  204. // 修改禁言时间
  205. kTIMGroupMemberModifyFlag_ShutupTime = 0x01 << 2,
  206. // 修改群名片
  207. kTIMGroupMemberModifyFlag_NameCard = 0x01 << 3,
  208. // 修改群成员自定义信息
  209. kTIMGroupMemberModifyFlag_Custom = 0x01 << 4,
  210. };
  211. // 1.11 群成员操作结果
  212. enum HandleGroupMemberResult {
  213. // 失败
  214. kTIMGroupMember_HandledErr,
  215. // 成功
  216. kTIMGroupMember_HandledSuc,
  217. // 已是群成员
  218. kTIMGroupMember_Included,
  219. // 已发送邀请
  220. kTIMGroupMember_Invited,
  221. };
  222. // 1.12 群未决请求类型
  223. enum TIMGroupPendencyType {
  224. // 需要群主或管理员审批的申请加群请求
  225. kTIMGroupPendency_GroupJoinNeedApprovedByAdmin = 0,
  226. // 需要被邀请者同意的邀请入群请求
  227. kTIMGroupPendency_GroupInviteNeedApprovedByInvitee = 1,
  228. // 需要群主或管理员审批的邀请入群请求
  229. kTIMGroupPendency_GroupInviteNeedApprovedByAdmin = 2,
  230. };
  231. // 1.13 群未决处理状态
  232. enum TIMGroupPendencyHandle {
  233. // 未处理
  234. kTIMGroupPendency_NotHandle = 0,
  235. // 他人处理
  236. kTIMGroupPendency_OtherHandle = 1,
  237. // 操作方处理
  238. kTIMGroupPendency_OperatorHandle = 2,
  239. };
  240. // 1.14 群未决处理操作类型
  241. enum TIMGroupPendencyHandleResult {
  242. // 拒绝
  243. kTIMGroupPendency_Refuse = 0,
  244. // 同意
  245. kTIMGroupPendency_Accept = 1,
  246. };
  247. // 1.15 加群类型
  248. enum TIMGroupJoinType {
  249. // 未知
  250. kTIMGroupJoin_None = 0,
  251. // 主动加群
  252. kTIMGroupJoin_Apply = 1,
  253. // 邀请进群
  254. kTIMGroupJoin_Invite = 2,
  255. };
  256. /////////////////////////////////////////////////////////////////////////////////
  257. //
  258. // 二. 群组事件回调定义
  259. //
  260. /////////////////////////////////////////////////////////////////////////////////
  261. /**
  262. * 2.1 群事件回调
  263. *
  264. * @param json_group_tip 群提示列表,Json Key 详情请参考 @ref GroupTipsElem
  265. * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
  266. *
  267. * @note
  268. * 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的
  269. */
  270. typedef void (*TIMGroupTipsEventCallback)(const char* json_group_tip, const void* user_data);
  271. /**
  272. * 2.2 群属性变更回调
  273. *
  274. * @param json_group_attribute_array 变更的群属性列表, Json Key 请参考 @ref GroupAttributes
  275. * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
  276. *
  277. * __json_group_attribute_array 的示例 (json key 请参考 @ref GroupAttributes)__
  278. * @code{.cpp}
  279. * [{"group_attribute_key":"attribute_key1","group_attribute_value":"attribute_value1"}]
  280. * @endcode
  281. */
  282. typedef void (*TIMGroupAttributeChangedCallback)(const char *group_id, const char* json_group_attribute_array, const void* user_data);
  283. /**
  284. * 2.3 群计数器变更的回调
  285. *
  286. * @param group_id 群组 ID
  287. * @param group_counter_key 变更的群计数器的 key
  288. * @param group_counter_new_value 变更后的群计数器的 value
  289. */
  290. typedef void (*TIMGroupCounterChangedCallback)(const char *group_id, const char *group_counter_key, int64_t group_counter_new_value, const void *user_data);
  291. /**
  292. * 2.4 话题创建的回调
  293. *
  294. * @param topic_id 话题 ID
  295. */
  296. typedef void (*TIMGroupTopicCreatedCallback)(const char *group_id, const char *topic_id, const void* user_data);
  297. /**
  298. * 2.5 话题被删除的回调
  299. *
  300. * @param group_id 话题所属的社群 ID
  301. * @param topic_id_array 话题列表
  302. */
  303. typedef void (*TIMGroupTopicDeletedCallback)(const char *group_id, const char *topic_id_array, const void* user_data);
  304. /**
  305. * 2.6 话题更新的回调
  306. *
  307. * @param topic_info 话题信息,参见 TIMGroupTopicInfo 类型
  308. */
  309. typedef void (*TIMGroupTopicChangedCallback)(const char *group_id, const char *topic_info, const void* user_data);
  310. /////////////////////////////////////////////////////////////////////////////////
  311. //
  312. // 三. 注册群组事件回调 API
  313. //
  314. /////////////////////////////////////////////////////////////////////////////////
  315. /**
  316. * 3.1 设置群组系统消息回调
  317. *
  318. * @param cb 群消息回调,请参考 @ref TIMGroupTipsEventCallback
  319. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  320. *
  321. * @note
  322. * 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的
  323. */
  324. TIM_API void TIMSetGroupTipsEventCallback(TIMGroupTipsEventCallback cb, const void* user_data);
  325. /**
  326. * 3.2 设置群组属性变更回调
  327. *
  328. * @param cb 群组属性变更回调,请参考 @ref TIMGroupAttributeChangedCallback
  329. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  330. *
  331. * @note
  332. * 某个已加入的群的属性被修改了,会返回所在群组的所有属性(该群所有的成员都能收到)
  333. */
  334. TIM_API void TIMSetGroupAttributeChangedCallback(TIMGroupAttributeChangedCallback cb, const void* user_data);
  335. /**
  336. * 3.3 设置群计数器变更回调
  337. *
  338. * @param cb 群计数器变更回调,请参考 @ref TIMGroupCounterChangedCallback
  339. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  340. *
  341. * @note
  342. * 某个已加入的群的计数器被修改了,会返回当前变更的群计数器(该群所有的成员都能收到)
  343. */
  344. TIM_API void TIMSetGroupCounterChangedCallback(TIMGroupCounterChangedCallback cb, const void* user_data);
  345. /**
  346. * 3.4 设置话题被创建的回调
  347. *
  348. * @param cb 群组属性变更回调,请参考 @ref TIMGroupTopicCreatedCallback
  349. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  350. */
  351. TIM_API void TIMSetGroupTopicCreatedCallback(TIMGroupTopicCreatedCallback cb, const void* user_data);
  352. /**
  353. * 3.5 设置话题被删除的回调
  354. *
  355. * @param cb 群组属性变更回调,请参考 @ref TIMGroupTopicDeletedCallback
  356. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  357. */
  358. TIM_API void TIMSetGroupTopicDeletedCallback(TIMGroupTopicDeletedCallback cb, const void* user_data);
  359. /**
  360. * 3.6 设置话题更新的回调
  361. *
  362. * @param cb 群组属性变更回调,请参考 @ref TIMGroupTopicChangedCallback
  363. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  364. */
  365. TIM_API void TIMSetGroupTopicChangedCallback(TIMGroupTopicChangedCallback cb, const void* user_data);
  366. /////////////////////////////////////////////////////////////////////////////////
  367. //
  368. // 四. 群管理相关 API
  369. //
  370. /////////////////////////////////////////////////////////////////////////////////
  371. /**
  372. * 4.1 创建群组
  373. *
  374. * @param json_group_create_param 创建群组的参数Json字符串, Json Key 请参考 @ref CreateGroupParam
  375. * @param cb 创建群组成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  376. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  377. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  378. *
  379. * @note
  380. * - 创建群组时可以指定群ID,若未指定时IM通讯云服务器会生成一个唯一的ID,以便后续操作,群组ID通过创建群组时传入的回调返回
  381. *
  382. * __示例__
  383. * @code{.cpp}
  384. * Json::Value json_group_member_array(Json::arrayValue);
  385. *
  386. * Json::Value json_value_param;
  387. * json_value_param[kTIMCreateGroupParamGroupId] = "first group id";
  388. * json_value_param[kTIMCreateGroupParamGroupType] = kTIMGroup_Public;
  389. * json_value_param[kTIMCreateGroupParamGroupName] = "first group name";
  390. * json_value_param[kTIMCreateGroupParamGroupMemberArray] = json_group_member_array;
  391. *
  392. * json_value_param[kTIMCreateGroupParamNotification] = "group notification";
  393. * json_value_param[kTIMCreateGroupParamIntroduction] = "group introduction";
  394. * json_value_param[kTIMCreateGroupParamFaceUrl] = "group face url";
  395. * json_value_param[kTIMCreateGroupParamMaxMemberCount] = 2000;
  396. * json_value_param[kTIMCreateGroupParamAddOption] = kTIMGroupAddOpt_Any;
  397. * json_value_param[kTIMCreateGroupParamApproveOption] = kTIMGroupAddOpt_Any;
  398. *
  399. * const void* user_data = nullptr; // 回调函数回传
  400. * int ret = TIMGroupCreate(json_value_param.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
  401. * if (ERR_SUCC != code) {
  402. * // 创建群组失败
  403. * return;
  404. * }
  405. *
  406. * // 创建群组成功 解析Json获取创建后的GroupID
  407. * }, user_data);
  408. * if (TIM_SUCC != ret) {
  409. * // TIMGroupCreate 接口调用失败
  410. * }
  411. *
  412. * // json_value_param.toStyledString().c_str() 得到 json_group_create_param JSON 字符串如下
  413. * {
  414. * "create_group_param_add_option" : 2,
  415. * "create_group_param_face_url" : "group face url",
  416. * "create_group_param_group_id" : "first group id",
  417. * "create_group_param_group_member_array" : [],
  418. * "create_group_param_group_name" : "first group name",
  419. * "create_group_param_group_type" : 0,
  420. * "create_group_param_introduction" : "group introduction",
  421. * "create_group_param_max_member_num" : 2000,
  422. * "create_group_param_notification" : "group notification"
  423. * }
  424. * @endcode
  425. */
  426. TIM_API int TIMGroupCreate(const char* json_group_create_param, TIMCommCallback cb, const void* user_data);
  427. /**
  428. * 4.2 删除(解散)群组
  429. *
  430. * @param group_id 要删除的群组ID
  431. * @param cb 删除群组成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  432. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  433. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  434. *
  435. * @note
  436. * 权限说明:
  437. * - 对于私有群,任何人都无法解散群组。
  438. * - 对于公开群、聊天室和直播大群,群主可以解散群组。
  439. * 删除指定群组 group_id 的接口,删除成功与否可根据回调cb的参数判断。
  440. */
  441. TIM_API int TIMGroupDelete(const char* group_id, TIMCommCallback cb, const void* user_data);
  442. /**
  443. * 4.3 申请加入群组
  444. *
  445. * @param group_id 要加入的群组ID
  446. * @param hello_msg 申请理由(选填)
  447. * @param cb 申请加入群组成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  448. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  449. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  450. *
  451. * @note
  452. * 权限说明:
  453. * - 私有群不能由用户主动申请入群。
  454. * - 公开群和聊天室可以主动申请进入。
  455. * - 如果群组设置为需要审核,申请后管理员和群主会受到申请入群系统消息,需要等待管理员或者群主审核,如果群主设置为任何人可加入,则直接入群成功。
  456. * - 直播大群可以任意加入群组。
  457. * 申请加入指定群组 group_id 的接口,申请加入的操作成功与否可根据回调cb的参数判断。
  458. */
  459. TIM_API int TIMGroupJoin(const char* group_id, const char* hello_msg, TIMCommCallback cb, const void* user_data);
  460. /**
  461. * 4.4 退出群组
  462. *
  463. * @param group_id 要退出的群组ID
  464. * @param cb 退出群组成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  465. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  466. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  467. *
  468. * @note
  469. * 权限说明:
  470. * - 对于私有群,全员可退出群组。
  471. * - 对于公开群、聊天室和直播大群,群主不能退出。
  472. * 退出指定群组group_id的接口,退出成功与否可根据回调cb的参数判断。
  473. */
  474. TIM_API int TIMGroupQuit(const char* group_id, TIMCommCallback cb, const void* user_data);
  475. /**
  476. * 4.5 获取当前用户已经加入的群列表
  477. *
  478. * @param cb 获取已加入群组列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  479. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  480. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  481. *
  482. * @note
  483. * 权限说明:
  484. * - 此接口可以获取自己所加入的群列表
  485. * - 此接口只能获得加入的部分直播大群的列表。
  486. * 此接口用于获取当前用户已加入的群组列表,返回群组的基础信息。具体返回的群组信息字段参考 @ref GroupDetailInfo, @ref GroupBaseInfo
  487. */
  488. TIM_API int TIMGroupGetJoinedGroupList(TIMCommCallback cb, const void* user_data);
  489. /////////////////////////////////////////////////////////////////////////////////
  490. //
  491. // 五. 群资料管理相关 API
  492. //
  493. /////////////////////////////////////////////////////////////////////////////////
  494. /**
  495. * 5.1 获取群组信息列表
  496. *
  497. * @param json_group_getinfo_param 获取群组信息列表参数的 Json 字符串
  498. * @param cb 获取群组信息列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  499. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  500. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  501. *
  502. * @note
  503. * 此接口用于获取指定群ID列表的群详细信息。具体返回的群组详细信息字段参考 @ref GroupDetailInfo, @ref GroupBaseInfo
  504. *
  505. * __示例__
  506. * @code{.cpp}
  507. * Json::Value groupids;
  508. * groupids.append("third group id");
  509. * groupids.append("second group id");
  510. * groupids.append("first group id");
  511. * int ret = TIMGroupGetGroupInfoList(groupids.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  512. *
  513. * }, this);
  514. *
  515. * // groupids.toStyledString().c_str() 得到json_group_getinfo_param如下
  516. * [ "third group id", "second group id", "first group id" ]
  517. * @endcode
  518. */
  519. TIM_API int TIMGroupGetGroupInfoList(const char* json_group_getinfo_param, TIMCommCallback cb, const void* user_data);
  520. /**
  521. * 5.2 搜索本地群资料(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
  522. *
  523. * @param json_group_search_groups_param 群列表的参数 array ,Json Key 请参考 @ref GroupSearchParam
  524. * @param cb 搜索群列表回调。回调函数定义请参考 @ref TIMCommCallback
  525. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  526. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  527. *
  528. * @note
  529. * SDK 会搜索群名称包含于关键字列表 keywordList 的所有群并返回群信息列表。关键字列表最多支持5个。
  530. *
  531. * __示例__
  532. * @code{.cpp}
  533. * Json::Array json_keyword_list;
  534. * json_keyword_list.append("lamarzhang_group_public");
  535. *
  536. * Json::Array json_field_list;
  537. * json_field_list.append(kTIMGroupSearchFieldKey_GroupId);
  538. *
  539. * Json::Object json_obj;
  540. * json_obj[kTIMGroupSearchParamKeywordList] = json_keyword_list;
  541. * json_obj[kTIMGroupSearchParamFieldList] = json_field_list;
  542. * TIMGroupSearchGroups(json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  543. *
  544. * }, nullptr);
  545. * @endcode
  546. *
  547. * __回调的 json_param 示例 (Json Key 请参考 @ref GroupDetailInfo)__
  548. * @code{.cpp}
  549. *[{
  550. * "group_de tail_info_add_option": 1,
  551. * "group_detail_info_create_time": 0,
  552. * "group_detail_info_custom_info": [{
  553. * "group_info_custom_string_info_key": "custom_public",
  554. * "group_info_custom_string_info_value": ""
  555. * }, {
  556. * "group_info_custom_string_info_key": "custom_public2",
  557. * "group_info_custom_string_info_value": ""
  558. * }, {
  559. * "group_info_custom_string_info_key": "group_info",
  560. * "group_info_custom_string_info_value": ""
  561. * }, {
  562. * "group_info_custom_string_info_key": "group_test",
  563. * "group_info_custom_string_info_value": ""
  564. * }],
  565. * "group_detail_info_face_url": "",
  566. * "group_detail_info_group_id": "lamarzhang_group_public",
  567. * "group_detail_info_group_name": "lamarzhang_group_public",
  568. * "group_detail_info_group_type": 0,
  569. * "group_detail_info_info_seq": 9,
  570. * "group_detail_info_introduction": "Instroduction",
  571. * "group_detail_info_is_shutup_all": false,
  572. * "group_detail_info_last_info_time": 1620810613,
  573. * "group_detail_info_last_msg_time": 1620810613,
  574. * "group_detail_info_max_member_num": 1000,
  575. * "group_detail_info_member_num": 2,
  576. * "group_detail_info_next_msg_seq": 2,
  577. * "group_detail_info_notification": "Notification",
  578. * "group_detail_info_online_member_num": 0,
  579. * "group_detail_info_owner_identifier": "lamarzhang",
  580. * "group_detail_info_searchable": true,
  581. * "group_detail_info_visible": true
  582. * }]
  583. * @endcode
  584. */
  585. TIM_API int TIMGroupSearchGroups(const char *json_group_search_groups_param, TIMCommCallback cb, const void* user_data);
  586. /**
  587. * 5.3 搜索云端群资料(8.4 及以上版本支持)
  588. *
  589. * @param json_group_search_groups_param 群列表的参数 array ,Json Key 请参考 @ref GroupSearchParam
  590. * @param cb 搜索群列表回调。回调函数定义请参考 @ref TIMCommCallback
  591. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  592. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  593. *
  594. * @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
  595. *
  596. * __示例__
  597. * @code{.cpp}
  598. * json::Array json_keyword_list;
  599. * json_keyword_list.push_back("啊");
  600. * json::Object json_obj;
  601. * json_obj[kTIMGroupSearchParamKeywordList] = json_keyword_list;
  602. * json_obj[kTIMGroupSearchParamKeywordListMatchType] = TIMKeywordListMatchType_Or;
  603. * json_obj[kTIMGroupSearchParamSearchCount] = 20;
  604. * json_obj[kTIMGroupSearchParamSearchCursor] = "";
  605. * TIMGroupSearchCloudGroups(json::Serialize(json_obj).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  606. * Printf("SearchCloudGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  607. * }, nullptr);
  608. * @endcode
  609. *
  610. * __回调的 json_param 示例 (Json Key 请参考 @ref GroupSearchResult)__
  611. * @code{.cpp}
  612. * {
  613. * "group_search_result_is_finished": true,
  614. * "group_search_result_total_count": 3
  615. * "group_search_result_next_cursor": "",
  616. * "group_search_result_group_list": [
  617. * {
  618. * "group_base_info_face_url": "",
  619. * "group_base_info_group_id": "groupID",
  620. * "group_base_info_group_name": "groupA",
  621. * "group_base_info_group_type": 0,
  622. * "group_base_info_info_seq": 0,
  623. * "group_base_info_is_shutup_all": false,
  624. * "group_base_info_latest_seq": 0,
  625. * "group_base_info_msg_flag": 0,
  626. * "group_base_info_readed_seq": 0,
  627. * "..."
  628. * },
  629. * ],
  630. * }
  631. * @endcode
  632. */
  633. TIM_API int TIMGroupSearchCloudGroups(const char *json_group_search_groups_param, TIMCommCallback cb, const void* user_data);
  634. /**
  635. * 5.4 修改群信息
  636. *
  637. * @param json_group_modifyinfo_param 设置群信息参数的 Json 字符串, Json Key 请参考 @ref GroupModifyInfoParam
  638. * @param cb 设置群信息成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  639. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  640. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  641. *
  642. * @note
  643. * 修改群主(群转让)的权限说明:
  644. * - 只有群主才有权限进行群转让操作。
  645. * - 直播大群不能进行群转让操作。
  646. * 修改群其他信息的权限说明:
  647. * - 对于公开群、聊天室和直播大群,只有群主或者管理员可以修改群简介。
  648. * - 对于私有群,任何人可修改群简介。
  649. * kTIMGroupModifyInfoParamModifyFlag 可以按位或设置多个值。不同的flag设置不同的键,详情请参考 @ref GroupModifyInfoParam
  650. *
  651. * __设置群所有者示例__
  652. * @code{.cpp}
  653. * Json::Value json_value_modifygroupinfo;
  654. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamGroupId] = "first group id";
  655. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamModifyFlag] = kTIMGroupModifyInfoFlag_Owner;
  656. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamOwner] = "user2";
  657. *
  658. * int ret = TIMGroupModifyGroupInfo(json_value_modifygroupinfo.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  659. *
  660. * }, nullptr);
  661. *
  662. * // json_value_modifygroupinfo.toStyledString().c_str() 得到json_group_modifyinfo_param JSON 字符串如下
  663. * {
  664. * "group_modify_info_param_group_id" : "first group id",
  665. * "group_modify_info_param_modify_flag" : -2147483648,
  666. * "group_modify_info_param_owner" : "user2"
  667. * }
  668. * @endcode
  669. *
  670. * __设置群名称和群通知示例__
  671. * @code{.cpp}
  672. * Json::Value json_value_modifygroupinfo;
  673. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamGroupId] = "first group id";
  674. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamModifyFlag] = kTIMGroupModifyInfoFlag_Name | kTIMGroupModifyInfoFlag_Notification;
  675. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamGroupName] = "first group name to other name";
  676. * json_value_modifygroupinfo[kTIMGroupModifyInfoParamNotification] = "first group notification";
  677. *
  678. * int ret = TIMGroupModifyGroupInfo(json_value_modifygroupinfo.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  679. *
  680. * }, nullptr);
  681. *
  682. * // json_value_modifygroupinfo.toStyledString().c_str() 得到json_group_modifyinfo_param JSON 字符串如下
  683. * {
  684. * "group_modify_info_param_group_id" : "first group id",
  685. * "group_modify_info_param_group_name" : "first group name to other name",
  686. * "group_modify_info_param_modify_flag" : 3,
  687. * "group_modify_info_param_notification" : "first group notification"
  688. * }
  689. * @endcode
  690. */
  691. TIM_API int TIMGroupModifyGroupInfo(const char* json_group_modifyinfo_param, TIMCommCallback cb, const void* user_data);
  692. /**
  693. * 5.5 初始化群属性,会清空原有的群属性列表
  694. *
  695. * @param group_id 群 ID
  696. * @param json_group_attributes 群属性的列表, 群属性的 Json Key 请参考 @ref GroupAttributes
  697. * @param cb 初始化群属性的回调。回调函数定义请参考 @ref TIMCommCallback
  698. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  699. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  700. *
  701. * @note attributes 的使用限制如下:
  702. * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
  703. * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
  704. * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
  705. * - key 最多支持 16 个,长度限制为 32 字节;
  706. * - value 长度限制为 4k;
  707. * - 总的 attributes(包括 key 和 value)限制为 16k;
  708. * - @ref TIMGroupInitGroupAttributes、 @ref TIMGroupSetGroupAttributes @ref TIMGroupDeleteGroupAttributes 接口合并计算, SDK 限制为 5 秒 10 次,超过后回调 8511 错误码;后台限制 1 秒 5 次,超过后返回 10049 错误码;
  709. * - @ref TIMGroupGetGroupAttributes 接口 SDK 限制 5 秒 20 次;
  710. * - 从 5.6 版本开始,当每次APP启动后初次修改群属性时,请您先调用 @ref TIMGroupGetGroupAttributes 拉取到最新的群属性之后,再发起修改操作;
  711. * - 从 5.6 版本开始,当多个用户同时修改同一个群属性时,只有第一个用户可以执行成功,其它用户会收到 10056 错误码;收到这个错误码之后,请您调用 @ref TIMGroupGetGroupAttributes 把本地保存的群属性更新到最新之后,再发起修改操作。
  712. *
  713. * __示例__
  714. * @code{.cpp}
  715. * Json::Object json_obj;
  716. * json_obj[TIMGroupAttributeKey] = "attribute_key1";
  717. * json_obj[TIMGroupAttributeValue] = "attribute_value1";
  718. *
  719. * Json::Array json_array;
  720. * json_array.append(json_obj);
  721. * TIMGroupInitGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  722. * // json_param 为空字符串,判断 code 即可
  723. * }, nullptr);
  724. * @endcode
  725. */
  726. TIM_API int TIMGroupInitGroupAttributes(const char *group_id, const char *json_group_attributes, TIMCommCallback cb, const void* user_data);
  727. /**
  728. * 5.6 设置群属性,已有该群属性则更新其 value 值,没有该群属性则添加该群属性
  729. *
  730. * @param group_id 群 ID
  731. * @param json_group_attributes 群属性的列表, 群属性的 Json Key 请参考 @ref GroupAttributes
  732. * @param cb 设置群属性的回调。回调函数定义请参考 @ref TIMCommCallback
  733. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  734. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  735. *
  736. * @note
  737. * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
  738. * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
  739. * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
  740. *
  741. * __示例__
  742. * @code{.cpp}
  743. * Json::Object json_obj;
  744. * json_obj[TIMGroupAttributeKey] = "attribute_key1";
  745. * json_obj[TIMGroupAttributeValue] = "attribute_value2";
  746. *
  747. * Json::Array json_array;
  748. * json_array.append(json_obj);
  749. * TIMGroupSetGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  750. * // json_param 为空字符串,判断 code 即可
  751. * }, nullptr);
  752. * @endcode
  753. */
  754. TIM_API int TIMGroupSetGroupAttributes(const char *group_id, const char *json_group_attributes, TIMCommCallback cb, const void* user_data);
  755. /**
  756. * 5.7 删除群属性
  757. * @param group_id 群 ID
  758. * @param json_keys 群属性 key 的列表
  759. * @param cb 删除群属性的回调。回调函数定义请参考 @ref TIMCommCallback
  760. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  761. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  762. *
  763. * @note
  764. * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
  765. * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
  766. * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
  767. *
  768. * __示例__
  769. * @code{.cpp}
  770. * Json::Array json_array;
  771. * json_array.append("attribute_key1");
  772. *
  773. * TIMGroupDeleteGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str() ,[](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  774. * // json_param 无 json 字符串带回,判断 code 即可
  775. * printf("InitGroupAttributes code:%d|desc:%s|json_param %s\n", code, desc, json_param);
  776. * }, nullptr);
  777. * @endcode
  778. */
  779. TIM_API int TIMGroupDeleteGroupAttributes(const char *group_id, const char *json_keys, TIMCommCallback cb, const void* user_data);
  780. /**
  781. * 5.8 获取群指定属性,若传入的 json_keys 为空,则获取所有群属性。
  782. *
  783. * @param group_id 群 ID
  784. * @param json_keys 群属性的 key 列表,若传入为 "", 则获取所有属性列表
  785. * @param cb 获取群指定属性的回调。回调函数定义请参考 @ref TIMCommCallback
  786. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  787. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  788. *
  789. * @note
  790. * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
  791. * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
  792. * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
  793. *
  794. * __示例__
  795. * @code{.cpp}
  796. * Json::Array json_array;
  797. * json_array.append("attribute_key1");
  798. *
  799. * TIMGroupGetGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  800. * printf("InitGroupAttributes code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  801. * }, nullptr);
  802. * @endcode
  803. *
  804. * __回调的 json_param 示例 (Json key 请参考 @ref GroupAttributes)__
  805. * @code{.json}
  806. * [{
  807. * "group_attribute_key": "attribute_key1",
  808. * "group_attribute_value": "attribute_value1"
  809. * }]
  810. * @endcode
  811. */
  812. TIM_API int TIMGroupGetGroupAttributes(const char *group_id, const char *json_keys, TIMCommCallback cb, const void* user_data);
  813. /**
  814. * 5.9 获取指定群在线人数
  815. *
  816. * @param group_id 群 ID
  817. * @param cb 获取指定群在线人数的回调。回调函数定义请参考 @ref TIMCommCallback
  818. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  819. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  820. *
  821. * @note
  822. * - IMSDK 7.3 以前的版本仅支持直播群( AVChatRoom);
  823. * - IMSDK 7.3 及其以后的版本支持所有群类型。
  824. *
  825. * __示例__
  826. * @code{.cpp}
  827. * TIMGroupGetOnlineMemberCount("lamarzhang_group_public", [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  828. *
  829. * }, nullptr);
  830. * @endcode
  831. *
  832. * __回调的 json_param 的示例(Json Key 请参考 @ref GroupGetOnlineMemberCountResult)__
  833. * @code{.json}
  834. * {"group_get_online_member_count_result":0}
  835. * @endcode
  836. */
  837. TIM_API int TIMGroupGetOnlineMemberCount(const char* group_id, TIMCommCallback cb, const void* user_data);
  838. /**
  839. * 5.10 设置群计数器(7.0 及其以上版本支持)
  840. *
  841. * @param group_id 群 ID
  842. * @param json_group_counter_array 群计数器信息列表,群计数器 Json Key 请参考 @ref TIMGroupCounter
  843. * @param cb 设置群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
  844. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  845. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  846. *
  847. * @note
  848. * - 该计数器的 key 如果存在,则直接更新计数器的 value 值;如果不存在,则添加该计数器的 key-value;
  849. * - 当群计数器设置成功后,在回调 cb 中会返回最终成功设置的群计数器信息;
  850. * - 除了社群和话题,群计数器支持所有的群组类型。
  851. *
  852. * __示例__
  853. * @code{.cpp}
  854. * json::Object json_group_counter;
  855. * json_group_counter[kTIMGroupCounterKey] = "test_counter";
  856. * json_group_counter[kTIMGroupCounterValue] = 100;
  857. *
  858. * json::Array json_group_counter_array;
  859. * json_group_counter_array.push_back(json_group_counter);
  860. *
  861. * TIMGroupSetGroupCounters(GetGroupID().c_str(), json::Serialize(json_group_counter_array).c_str(),
  862. * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  863. * Printf("SetGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
  864. * }, nullptr);
  865. * @endcode
  866. */
  867. TIM_API int TIMGroupSetGroupCounters(const char* group_id, const char* json_group_counter_array, TIMCommCallback cb, const void* user_data);
  868. /**
  869. * 5.11 获取群计数器(7.0 及其以上版本支持)
  870. *
  871. * @param group_id 群 ID
  872. * @param json_group_counter_key_array 需要获取的群计数器的 key 列表,群计数器 Json Key 请参考 @ref TIMGroupCounter
  873. * @param cb 获取群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
  874. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  875. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  876. *
  877. * @note
  878. * - 如果传入的 json_group_counter_key_array 为空,则表示获取群内的所有计数器;
  879. * - 除了社群和话题,群计数器支持所有的群组类型。
  880. *
  881. * __示例__
  882. * @code{.cpp}
  883. * json::Array json_group_counter_key_array;
  884. * json_group_counter_key_array.push_back("test_counter");
  885. *
  886. * TIMGroupGetGroupCounters(GetGroupID().c_str(), json::Serialize(json_group_counter_key_array).c_str(),
  887. * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  888. * Printf("GetGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
  889. * }, nullptr);
  890. * @endcode
  891. */
  892. TIM_API int TIMGroupGetGroupCounters(const char* group_id, const char* json_group_counter_key_array, TIMCommCallback cb, const void* user_data);
  893. /**
  894. * 5.12 递增群计数器(7.0 及其以上版本支持)
  895. *
  896. * @param group_id 群 ID
  897. * @param group_counter_key 群计数器的 key
  898. * @param group_counter_value 群计数器的递增变化量 value
  899. * @param cb 递增群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
  900. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  901. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  902. *
  903. * @note
  904. * - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 group_counter_value 作递增操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 group_counter_value 作递增操作;
  905. * - 除了社群和话题,群计数器支持所有的群组类型。
  906. *
  907. * __示例__
  908. * @code{.cpp}
  909. * TIMGroupIncreaseGroupCounter(GetGroupID().c_str(), "key1", 2
  910. * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  911. * printf("IncreaseGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
  912. * }, nullptr);
  913. * @endcode
  914. */
  915. TIM_API int TIMGroupIncreaseGroupCounter(const char* group_id, const char* group_counter_key, int64_t group_counter_value, TIMCommCallback cb, const void* user_data);
  916. /**
  917. * 5.13 递减群计数器(7.0 及其以上版本支持)
  918. *
  919. * @param group_id 群 ID
  920. * @param group_counter_key 群计数器的 key
  921. * @param group_counter_value 群计数器的递减变化量 value
  922. * @param cb 递减群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
  923. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  924. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  925. *
  926. * @note
  927. * - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 group_counter_value 作递减操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 group_counter_value 作递减操作
  928. * - 除了社群和话题,群计数器支持所有的群组类型。
  929. *
  930. * __示例__
  931. * @code{.cpp}
  932. * TIMGroupDecreaseGroupCounters(GetGroupID().c_str(), "key1", 2,
  933. * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  934. * Printf("DecreaseGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
  935. * }, nullptr);
  936. * @endcode
  937. */
  938. TIM_API int TIMGroupDecreaseGroupCounter(const char* group_id, const char* group_counter_key, int64_t group_counter_value, TIMCommCallback cb, const void* user_data);
  939. /////////////////////////////////////////////////////////////////////////////////
  940. //
  941. // 六. 社群-话题相关 API
  942. //
  943. /////////////////////////////////////////////////////////////////////////////////
  944. /**
  945. * 6.1 获取当前用户已经加入的支持话题的社群列表
  946. *
  947. * @param cb 获取社群列表的回调。回调函数定义请参考 @ref TIMCommCallback
  948. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  949. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  950. *
  951. * __示例__
  952. * @code{.cpp}
  953. * TIMGroupGetJoinedCommunityList([](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  954. * printf("TIMGroupGetJoinedCommunityList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  955. * }, nullptr);
  956. * @endcode
  957. */
  958. TIM_API int TIMGroupGetJoinedCommunityList(TIMCommCallback cb, const void* user_data);
  959. /**
  960. * 6.2 创建话题
  961. *
  962. * @param group_id 群 ID
  963. * @param json_topic_info 话题信息, Json Key 请参考 @ref TIMGroupTopicInfo
  964. * @param cb 创建话题的回调。回调函数定义请参考 @ref TIMCommCallback
  965. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  966. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  967. *
  968. * __示例__
  969. * @code{.cpp}
  970. * const std::string group_id = GetCommunityID();
  971. *
  972. * json::Object topic_info;
  973. * topic_info[kTIMGroupTopicInfoTopicID] = GetTopicID();
  974. * topic_info[kTIMGroupTopicInfoTopicName] = "topic name";
  975. *
  976. * TIMGroupCreateTopicInCommunity(group_id.c_str(), json::Serialize(topic_info).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  977. * printf("TIMGroupCreateTopicInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  978. * }, nullptr);
  979. * @endcode
  980. */
  981. TIM_API int TIMGroupCreateTopicInCommunity(const char *group_id, const char *json_topic_info, TIMCommCallback cb, const void* user_data);
  982. /**
  983. * 6.3 删除话题
  984. *
  985. * @param group_id 群 ID
  986. * @param json_topic_id_array 话题 ID 列表
  987. * @param cb 删除话题的回调。回调函数定义请参考 @ref TIMCommCallback
  988. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  989. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  990. *
  991. * __示例__
  992. * @code{.cpp}
  993. * const std::string group_id = GetCommunityID();
  994. *
  995. * json::Array json_array;
  996. * json_array.push_back("id1");
  997. * json_array.push_back("id2");
  998. *
  999. * TIMGroupDeleteTopicFromCommunity(group_id.c_str(), json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1000. * printf("TIMGroupDeleteTopicFromCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  1001. * }, nullptr);
  1002. * @endcode
  1003. */
  1004. TIM_API int TIMGroupDeleteTopicFromCommunity(const char *group_id, const char *json_topic_id_array, TIMCommCallback cb, const void* user_data);
  1005. /**
  1006. * 6.4 修改话题信息
  1007. *
  1008. * @param json_topic_info 话题信息, Json Key 请参考 @ref TIMGroupTopicInfo
  1009. * @param cb 修改话题信息的回调。回调函数定义请参考 @ref TIMCommCallback
  1010. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1011. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1012. *
  1013. * __示例__
  1014. * @code{.cpp}
  1015. * json::Object topic_info;
  1016. * topic_info[kTIMGroupTopicInfoTopicID] = GetTopicID();
  1017. * topic_info[kTIMGroupTopicInfoTopicName] = "topic name";
  1018. * topic_info[kTIMGroupTopicInfoNotification] = "topic notification";
  1019. * topic_info[kTIMGroupTopicInfoModifyFlag] = kTIMGroupModifyInfoFlag_Name |
  1020. * kTIMGroupModifyInfoFlag_Notification;
  1021. *
  1022. * TIMGroupSetTopicInfo(json::Serialize(topic_info).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1023. * printf("TIMGroupSetTopicInfo code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  1024. * }, nullptr);
  1025. * @endcode
  1026. */
  1027. TIM_API int TIMGroupSetTopicInfo(const char *json_topic_info, TIMCommCallback cb, const void* user_data);
  1028. /**
  1029. * 6.5 获取话题列表
  1030. *
  1031. * @param group_id 群 ID
  1032. * @param json_topic_id_array 话题 ID 列表
  1033. * @param cb 删除话题的回调。回调函数定义请参考 @ref TIMCommCallback
  1034. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1035. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1036. *
  1037. * @note: json_topic_id_array 传空时,获取此社群下的所有话题列表
  1038. *
  1039. * __示例__
  1040. * @code{.cpp}
  1041. * const std::string group_id = GetCommunityID();
  1042. *
  1043. * json::Array json_array;
  1044. * json_array.push_back("id1");
  1045. * json_array.push_back("id2");
  1046. *
  1047. * TIMGroupGetTopicInfoList(group_id.c_str(), json::Serialize(json_array).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1048. * printf("TIMGroupGetTopicInfoList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  1049. * }, nullptr);
  1050. * @endcode
  1051. */
  1052. TIM_API int TIMGroupGetTopicInfoList(const char *group_id, const char *json_topic_id_array, TIMCommCallback cb, const void* user_data);
  1053. /////////////////////////////////////////////////////////////////////////////////
  1054. //
  1055. // 七. 群成员管理相关 API
  1056. //
  1057. /////////////////////////////////////////////////////////////////////////////////
  1058. /**
  1059. * 7.1 获取群成员信息列表
  1060. *
  1061. * @param json_group_getmeminfos_param 获取群成员信息列表参数的 Json 字符串, Json Key 请参考 @ref GroupMemberGetInfoOption
  1062. * @param cb 获取群成员信息列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  1063. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1064. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1065. *
  1066. * @note
  1067. * 普通群(工作群、会议群、公开群、社群)的限制:
  1068. * - kTIMGroupMemberGetInfoOptionRoleFlag 只能设置为 TIMGroupMemberRoleFlag 定义的数值,SDK 会返回指定角色的成员。
  1069. *
  1070. * 直播群(AVChatRoom)的限制:
  1071. * - 如果设置 kTIMGroupMemberGetInfoOptionRoleFlag 为 TIMGroupMemberRoleFlag 定义的数值,SDK 返回全部成员。返回的人数规则为:拉取最近入群群成员最多 1000 人,新进来的成员排在前面,需要升级旗舰版,并且在 [控制台](https://console.cloud.tencent.com/im) 开启“直播群在线成员列表”开关(6.3 及以上版本支持)。
  1072. * - 如果设置 kTIMGroupMemberGetInfoOptionRoleFlag 为群成员自定义标记,旗舰版支持拉取指定标记的成员列表。标记群成员的设置请参考 @ref TIMGroupMarkGroupMemberList
  1073. * - 程序重启后,请重新加入群组,否则拉取群成员会报 10007 错误码。
  1074. * - 群成员资料信息仅支持 userID | nickName | faceURL | role 字段。
  1075. *
  1076. * __示例__
  1077. * @code{.cpp}
  1078. * Json::Value identifiers(Json::arrayValue);
  1079. * ...
  1080. * Json::Value customs(Json::arrayValue);
  1081. * ...
  1082. * Json::Value option;
  1083. * option[kTIMGroupMemberGetInfoOptionInfoFlag] = kTIMGroupMemberInfoFlag_None;
  1084. * option[kTIMGroupMemberGetInfoOptionRoleFlag] = kTIMGroupMemberRoleFlag_All;
  1085. * option[kTIMGroupMemberGetInfoOptionCustomArray] = customs;
  1086. * Json::Value getmeminfo_opt;
  1087. * getmeminfo_opt[kTIMGroupGetMemberInfoListParamGroupId] = group_id;
  1088. * getmeminfo_opt[kTIMGroupGetMemberInfoListParamIdentifierArray] = identifiers;
  1089. * getmeminfo_opt[kTIMGroupGetMemberInfoListParamOption] = option;
  1090. * getmeminfo_opt[kTIMGroupGetMemberInfoListParamNextSeq] = 0;
  1091. *
  1092. * int ret = TIMGroupGetMemberInfoList(getmeminfo_opt.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1093. *
  1094. * }, this);
  1095. *
  1096. * // getmeminfo_opt.toStyledString().c_str() 得到json_group_getmeminfos_param JSON 字符串如下
  1097. * {
  1098. * "group_get_members_info_list_param_group_id" : "first group id",
  1099. * "group_get_members_info_list_param_identifier_array" : [],
  1100. * "group_get_members_info_list_param_next_seq" : 0,
  1101. * "group_get_members_info_list_param_option" : {
  1102. * "group_member_get_info_option_custom_array" : [],
  1103. * "group_member_get_info_option_info_flag" : 0,
  1104. * "group_member_get_info_option_role_flag" : 0
  1105. * }
  1106. * }
  1107. * @endcode
  1108. */
  1109. TIM_API int TIMGroupGetMemberInfoList(const char* json_group_getmeminfos_param, TIMCommCallback cb, const void* user_data);
  1110. /**
  1111. * 7.2 搜索本地群成员资料(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
  1112. *
  1113. * @param json_group_search_group_members_param 群成员的列表, Json Key 请参考 @ref GroupMemberSearchParam
  1114. * @param cb 搜索群成员列表的回调。回调函数定义请参考 @ref TIMCommCallback
  1115. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1116. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1117. *
  1118. * @note
  1119. * SDK 会在本地搜索指定群 ID 列表中,群成员信息(名片、好友备注、昵称、userID)包含于关键字列表 keywordList 的所有群成员并返回群 ID 和群成员列表的 map,关键字列表最多支持5个。
  1120. *
  1121. * __示例__
  1122. * @code{.cpp}
  1123. * Json::Array json_groupid_list;
  1124. * json_groupid_list.append("lamarzhang_group_public");
  1125. *
  1126. * Json::Array json_keyword_list;
  1127. * json_keyword_list.append("98826");
  1128. *
  1129. * Json::Array json_field_list;
  1130. * json_field_list.append(kTIMGroupMemberSearchFieldKey_Identifier);
  1131. *
  1132. * Json::Object json_obj;
  1133. * json_obj[TIMGroupMemberSearchParamGroupidList] = json_groupid_list;
  1134. * json_obj[TIMGroupMemberSearchParamKeywordList] = json_keyword_list;
  1135. * json_obj[TIMGroupMemberSearchParamFieldList] = json_field_list;
  1136. * TIMGroupSearchGroupMembers(json_obj.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1137. *
  1138. * }, nullptr);
  1139. * @endcode
  1140. *
  1141. * __回调的 json_param 示例 (Json Key 请参考 @ref GroupGetOnlineMemberCountResult)__
  1142. * @code{.json}
  1143. * [{
  1144. * "group_search_member_result_groupid": "lamarzhang_group_public",
  1145. * "group_search_member_result_member_info_list": [{
  1146. * "group_member_info_custom_info": [{
  1147. * "group_info_custom_string_info_key": "group_member_p",
  1148. * "group_info_custom_string_info_value": ""
  1149. * }, {
  1150. * "group_info_custom_string_info_key": "group_member_p2",
  1151. * "group_info_custom_string_info_value": ""
  1152. * }],
  1153. * "group_member_info_identifier": "98826",
  1154. * "group_member_info_join_time": 1620810613,
  1155. * "group_member_info_member_role": 4,
  1156. * "group_member_info_msg_flag": 0,
  1157. * "group_member_info_msg_seq": 0,
  1158. * "group_member_info_name_card": "",
  1159. * "group_member_info_shutup_time": 0
  1160. * }]
  1161. * }]
  1162. * @endcode
  1163. */
  1164. TIM_API int TIMGroupSearchGroupMembers(const char *json_group_search_group_members_param, TIMCommCallback cb, const void* user_data);
  1165. /**
  1166. * 7.3 搜索云端群成员资料(8.4 及以上版本支持)
  1167. *
  1168. * @param json_group_search_cloud_group_members_param 群列表的参数 array ,Json Key 请参考 @ref GroupMemberSearchParam
  1169. * @param cb 搜索群列表回调。回调函数定义请参考 @ref TIMCommCallback
  1170. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1171. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1172. *
  1173. * @note 该功能为 IM 旗舰版功能,[购买旗舰版套餐包](https://buy.cloud.tencent.com/avc?from=17474)后可使用,详见[价格说明](https://cloud.tencent.com/document/product/269/11673?from=17176#.E5.9F.BA.E7.A1.80.E6.9C.8D.E5.8A.A1.E8.AF.A6.E6.83.85)
  1174. *
  1175. * __示例__
  1176. * @code{.cpp}
  1177. * json::Array json_keyword_list;
  1178. * json_keyword_list.push_back("测试");
  1179. * json::Object json_obj;
  1180. * json_obj[TIMGroupMemberSearchParamKeywordList] = json_keyword_list;
  1181. * json_obj[TIMGroupMemberSearchParamKeywordListMatchType] = TIMKeywordListMatchType_Or;
  1182. * json_obj[TIMGroupMemberSearchParamSearchCount] = 20;
  1183. * json_obj[TIMGroupMemberSearchParamSearchCursor] = "";
  1184. * TIMGroupSearchCloudGroupMembers(json::Serialize(json_obj).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1185. * Printf("TIMGroupSearchCloudGroupMembers code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  1186. * }, nullptr);
  1187. * @endcode
  1188. *
  1189. * __回调的 json_param 示例 (Json Key 请参考 @ref GroupSearchResult)__
  1190. * @code{.cpp}
  1191. * {
  1192. * "group_member_search_result_is_finished": false,
  1193. * "group_member_search_result_next_cursor": "_YMEo64o8LCv9_8azJx7GxJ5K-9K_oM42TgvcqBzClg",
  1194. * "group_member_search_result_total_count": 115,
  1195. * "group_member_search_result_member_list": "[{"group_search_member_result_groupid":"@TGS#1JDXSOIOA","group_search_member_result_member_info_list":""}]",
  1196. * }
  1197. * @endcode
  1198. */
  1199. TIM_API int TIMGroupSearchCloudGroupMembers(const char *json_group_search_cloud_group_members_param, TIMCommCallback cb, const void* user_data);
  1200. /**
  1201. * 7.4 修改群成员信息
  1202. *
  1203. * @param json_group_modifymeminfo_param 设置群信息参数的 Json 字符串, Json Key 请参考 @ref GroupModifyMemberInfoParam
  1204. * @param cb 设置群成员信息成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  1205. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1206. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1207. *
  1208. * @note
  1209. * 权限说明:
  1210. * - 只有群主或者管理员可以进行对群成员的身份进行修改。
  1211. * - 只有群主或者管理员可以进行对群成员进行禁言。
  1212. * kTIMGroupModifyMemberInfoParamModifyFlag 可以按位或设置多个值,不同的 flag 设置不同的键, flag 信息请参考 @ref TIMGroupMemberModifyInfoFlag
  1213. *
  1214. * __示例__
  1215. * @code{.cpp}
  1216. * Json::Value json_value_setgroupmeminfo;
  1217. * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamGroupId] = "third group id";
  1218. * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamIdentifier] = "user2";
  1219. * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamModifyFlag] = kTIMGroupMemberModifyFlag_MemberRole | kTIMGroupMemberModifyFlag_NameCard;
  1220. * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamMemberRole] = kTIMMemberRole_Admin;
  1221. * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamNameCard] = "change name card";
  1222. *
  1223. * int ret = TIMGroupModifyMemberInfo(json_value_setgroupmeminfo.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1224. *
  1225. * }, nullptr);
  1226. *
  1227. * // json_value_modifygroupmeminfo.toStyledString().c_str() 得到 json_group_modifymeminfo_param JSON 字符串如下
  1228. * {
  1229. * "group_modify_member_info_group_id" : "third group id",
  1230. * "group_modify_member_info_identifier" : "user2",
  1231. * "group_modify_member_info_member_role" : 1,
  1232. * "group_modify_member_info_modify_flag" : 10,
  1233. * "group_modify_member_info_name_card" : "change name card"
  1234. * }
  1235. * @endcode
  1236. */
  1237. TIM_API int TIMGroupModifyMemberInfo(const char* json_group_modifymeminfo_param, TIMCommCallback cb, const void* user_data);
  1238. /**
  1239. * 7.5 邀请加入群组
  1240. *
  1241. * @param json_group_invite_param 邀请加入群组的 Json 字符串, Json Key 请参考 @ref GroupInviteMemberParam
  1242. * @param cb 邀请加入群组成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  1243. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1244. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1245. *
  1246. * @note
  1247. * 权限说明:
  1248. * - 只有私有群可以拉用户入群
  1249. * - 公开群、聊天室邀请用户入群
  1250. * - 需要用户同意;直播大群不能邀请用户入群。
  1251. * 后台限制单次邀请的群成员个数不能超过 20。
  1252. * 此接口支持批量邀请成员加入群组, Json Key详情请参考 @ref GroupInviteMemberParam
  1253. *
  1254. * __示例__
  1255. * @code{.cpp}
  1256. * Json::Value json_value_invite;
  1257. * json_value_invite[kTIMGroupInviteMemberParamGroupId] = group_id;
  1258. * json_value_invite[kTIMGroupInviteMemberParamUserData] = "userdata";
  1259. * json_value_invite[kTIMGroupInviteMemberParamIdentifierArray].append("user1");
  1260. * json_value_invite[kTIMGroupInviteMemberParamIdentifierArray].append("user2");
  1261. *
  1262. * const void* user_data = nullptr; // 回调函数回传;
  1263. * int ret = TIMGroupInviteMember(json_value_invite.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
  1264. * if (ERR_SUCC != code) {
  1265. * // 邀请成员列表失败
  1266. * return;
  1267. * }
  1268. * // 邀请成员列表成功,解析JSON获取每个成员邀请结果
  1269. * }, user_data);
  1270. * if (TIM_SUCC != ret) {
  1271. * // TIMGroupInviteMember 接口调用失败
  1272. * }
  1273. *
  1274. * // json_value_invite.toStyledString().c_str() 得到 json_group_invite_param JSON 字符串如下
  1275. * {
  1276. * "group_invite_member_param_group_id" : "first group id",
  1277. * "group_invite_member_param_identifier_array" : [ "user1", "user2" ],
  1278. * "group_invite_member_param_user_data" : "userdata"
  1279. * }
  1280. * @endcode
  1281. */
  1282. TIM_API int TIMGroupInviteMember(const char* json_group_invite_param, TIMCommCallback cb, const void* user_data);
  1283. /**
  1284. * 7.6 删除群组成员(直播群删除群组成员从 6.6 版本开始支持,需要您购买旗舰版套餐)
  1285. *
  1286. * @param json_group_delete_param 删除群组成员的 Json 字符串, Json Key 请参考 @ref GroupDeleteMemberParam
  1287. * @param cb 删除群组成员成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  1288. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1289. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1290. *
  1291. * @note
  1292. * 权限说明:
  1293. * - 对于私有群:只有创建者可删除群组成员。
  1294. * - 对于公开群和聊天室:只有管理员和群主可以踢人。
  1295. * - 对于直播大群:6.6 之前版本只支持禁言(muteGroupMember),不支持踢人。6.6 及以上版本支持禁言和踢人。
  1296. * 此接口支持批量删除群成员, Json Key详情请参考 @ref GroupDeleteMemberParam
  1297. * 该接口其他使用限制请查阅 [官网](https://cloud.tencent.com/document/product/269/75400#.E8.B8.A2.E4.BA.BA)
  1298. *
  1299. * __示例__
  1300. * @code{.cpp}
  1301. * Json::Value json_value_delete;
  1302. * json_value_delete[kTIMGroupDeleteMemberParamGroupId] = group_id;
  1303. * json_value_delete[kTIMGroupDeleteMemberParamUserData] = "reason";
  1304. * json_value_delete[kTIMGroupDeleteMemberParamIdentifierArray].append("user1");
  1305. * json_value_delete[kTIMGroupDeleteMemberParamIdentifierArray].append("user2");
  1306. * json_value_delete[kTIMGroupDeleteMemberParamDuration] = 10;
  1307. *
  1308. * int ret = TIMGroupDeleteMember(json_value_delete.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
  1309. *
  1310. * }, this));
  1311. *
  1312. * // json_value_delete.toStyledString().c_str() 得到 json_group_delete_param JSON 字符串如下
  1313. * {
  1314. * "group_delete_member_param_group_id" : "third group id",
  1315. * "group_delete_member_param_identifier_array" : [ "user2", "user3" ],
  1316. * "group_delete_member_param_user_data" : "reason"
  1317. * }
  1318. * @endcode
  1319. */
  1320. TIM_API int TIMGroupDeleteMember(const char* json_group_delete_param, TIMCommCallback cb, const void* user_data);
  1321. /**
  1322. * 7.7 标记群成员(从 6.6 版本开始支持,需要您购买旗舰版套餐)
  1323. *
  1324. * @param group_id 群 ID。
  1325. * @param member_array 群成员 ID 列表。
  1326. * @param mark_type 标记类型。数字类型,大于等于 1000,您可以自定义,一个直播群里最多允许定义 10 个标记。
  1327. * @param enable_mark true 表示添加标记,false 表示移除标记。
  1328. * @param cb 设置/移除群成员自定义角色成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  1329. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1330. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1331. *
  1332. * @note
  1333. * - 仅支持直播群。
  1334. * - 只有群主才有权限标记群组中其他人。
  1335. *
  1336. * __示例__
  1337. * @code{.cpp}
  1338. * std::string group_id = "avchatroom_group_id";
  1339. * uint32_t mark_type = 30005;
  1340. * bool enable_mark = true;
  1341. *
  1342. * json::Array member_array;
  1343. * member_array.push_back("user1");
  1344. * member_array.push_back("user2");
  1345. *
  1346. * TIMGroupMarkGroupMemberList(group_id.c_str(), json::Serialize(member_array).c_str(), mark_type, enable_mark,
  1347. * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1348. * Printf("MarkGroupMemberList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
  1349. * }, nullptr);
  1350. * @endcode
  1351. */
  1352. TIM_API int TIMGroupMarkGroupMemberList(const char* group_id, const char* member_array, uint32_t mark_type, bool enable_mark, TIMCommCallback cb, const void* user_data);
  1353. /////////////////////////////////////////////////////////////////////////////////
  1354. //
  1355. // 八. 加群申请相关 API
  1356. //
  1357. /////////////////////////////////////////////////////////////////////////////////
  1358. /**
  1359. * 8.1 获取群未决信息列表
  1360. *
  1361. * @param json_group_getpendency_list_param 设置群未决信息参数的 Json 字符串, Json Key 请参考 @ref GroupPendencyOption
  1362. * @param cb 获取群未决信息列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
  1363. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1364. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1365. *
  1366. * @note
  1367. * - 此处的群未决消息泛指所有需要审批的群相关的操作。例如:加群待审批,拉人入群待审批等等。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已决标志。
  1368. * - UserA 申请加入群 GroupA,则群管理员可获取此未决相关信息,UserA 因为没有审批权限,不需要获取此未决信息。
  1369. * - 如果 AdminA 拉 UserA 进去 GroupA,则 UserA 可以拉取此未决相关信息,因为该未决信息待 UserA 审批
  1370. * - kTIMGroupPendencyOptionStartTime 设置拉取时间戳,第一次请求填 0,后边根据 server 返回的 @ref GroupPendencyResult 键 kTIMGroupPendencyResultNextStartTime 指定的时间戳进行填写。
  1371. * - kTIMGroupPendencyOptionMaxLimited 拉取的建议数量, server 可根据需要返回或多或少,不能作为完成与否的标志
  1372. * - 权限说明:
  1373. * - 只有审批人有权限拉取相关未决信息。
  1374. *
  1375. * __示例__
  1376. * @code{.cpp}
  1377. * Json::Value get_pendency_option;
  1378. * get_pendency_option[kTIMGroupPendencyOptionStartTime] = 0;
  1379. * get_pendency_option[kTIMGroupPendencyOptionMaxLimited] = 0;
  1380. * int ret = TIMGroupGetPendencyList(get_pendency_option.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1381. * if (ERR_SUCC != code) {
  1382. * // 获取群未决信息失败
  1383. * return;
  1384. * }
  1385. * }, nullptr);
  1386. *
  1387. * // get_pendency_option.toStyledString().c_str() 得到json_group_getpendency_list_param JSON 字符串如下
  1388. * {
  1389. * "group_pendency_option_max_limited" : 0,
  1390. * "group_pendency_option_start_time" : 0
  1391. * }
  1392. * @endcode
  1393. */
  1394. TIM_API int TIMGroupGetPendencyList(const char* json_group_getpendency_list_param, TIMCommCallback cb, const void* user_data);
  1395. /**
  1396. * 8.2 处理群未决信息
  1397. *
  1398. * @param json_group_handle_pendency_param 处理群未决信息参数的 Json 字符串, Json Key 请参考 @ref GroupHandlePendencyParam
  1399. * @param cb 处理群未决信息成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  1400. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1401. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1402. *
  1403. * @note
  1404. * - 对于群的未决信息,ImSDK增加了处理接口。审批人可以选择对单条信息进行同意或者拒绝。已处理成功过的未决信息不能再次处理。
  1405. * - 处理未决信息时需要带一个未决信息 @ref GroupPendency, 可以在接口 @ref TIMGroupGetPendencyList 返回的未决信息列表将未决信息保存下来,
  1406. * 在处理未决信息的时候将 @ref GroupPendency 传入键 kTIMGroupHandlePendencyParamPendency 。
  1407. *
  1408. * __示例__
  1409. * @code{.cpp}
  1410. * Json::Value pendency; //构造 GroupPendency
  1411. * ...
  1412. * Json::Value handle_pendency;
  1413. * handle_pendency[kTIMGroupHandlePendencyParamIsAccept] = true;
  1414. * handle_pendency[kTIMGroupHandlePendencyParamHandleMsg] = "I accept this pendency";
  1415. * handle_pendency[kTIMGroupHandlePendencyParamPendency] = pendency;
  1416. * int ret = TIMGroupHandlePendency(handle_pendency.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
  1417. * if (ERR_SUCC != code) {
  1418. * // 上报群未决信息已读失败
  1419. * return;
  1420. * }
  1421. * }, nullptr);
  1422. *
  1423. * // handle_pendency.toStyledString().c_str() 得到json_group_handle_pendency_param JSON 字符串如下
  1424. * {
  1425. * "group_handle_pendency_param_handle_msg" : "I accept this pendency",
  1426. * "group_handle_pendency_param_is_accept" : true,
  1427. * "group_handle_pendency_param_pendency" : {
  1428. * "group_pendency_add_time" : 1551414487947,
  1429. * "group_pendency_apply_invite_msg" : "Want Join Group, Thank you",
  1430. * "group_pendency_approval_msg" : "",
  1431. * "group_pendency_form_identifier" : "user2",
  1432. * "group_pendency_form_user_defined_data" : "",
  1433. * "group_pendency_group_id" : "four group id",
  1434. * "group_pendency_handle_result" : 0,
  1435. * "group_pendency_handled" : 0,
  1436. * "group_pendency_pendency_type" : 0,
  1437. * "group_pendency_to_identifier" : "user1",
  1438. * "group_pendency_to_user_defined_data" : ""
  1439. * }
  1440. * }
  1441. * @endcode
  1442. */
  1443. TIM_API int TIMGroupHandlePendency(const char* json_group_handle_pendency_param, TIMCommCallback cb, const void* user_data);
  1444. /**
  1445. * 8.3 上报群未决信息已读
  1446. *
  1447. * @param time_stamp 已读时间戳(单位秒)。与 @ref GroupPendency 键 kTIMGroupPendencyAddTime 指定的时间比较
  1448. * @param cb 上报群未决信息已读成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
  1449. * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
  1450. * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
  1451. *
  1452. * @note
  1453. * 时间戳time_stamp以前的群未决请求都将置为已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。
  1454. */
  1455. TIM_API int TIMGroupReportPendencyReaded(uint64_t time_stamp, TIMCommCallback cb, const void* user_data);
  1456. /////////////////////////////////////////////////////////////////////////////////
  1457. //
  1458. // 九. 群组系统通知相关 Json Key 定义
  1459. //
  1460. /////////////////////////////////////////////////////////////////////////////////
  1461. //------------------------------------------------------------------------------
  1462. // 9.1 GroupTipGroupChangeInfo(群组系统消息-群组信息修改)
  1463. // uint @ref TIMGroupTipGroupChangeFlag, 只读, 群消息修改群信息标志
  1464. static const char* kTIMGroupTipGroupChangeInfoFlag = "group_tips_group_change_info_flag";
  1465. // string, 只读, 修改的后值,不同的 info_flag 字段,具有不同的含义
  1466. static const char* kTIMGroupTipGroupChangeInfoValue = "group_tips_group_change_info_value";
  1467. // string, 只读, 自定义信息对应的 key 值,只有 info_flag 为 kTIMGroupTipChangeFlag_Custom 时有效
  1468. static const char* kTIMGroupTipGroupChangeInfoKey = "group_tips_group_change_info_key";
  1469. // bool, 只读, 根据变更类型表示不同的值,当前在 info_flag 为 kTIMGroupTipChangeFlag_ShutupAll 或者 kTIMGroupTipChangeFlag_EnablePermissionGroup 时有效
  1470. static const char* kTIMGroupTipGroupChangeInfoBoolValue = "group_tips_group_change_info_bool_value";
  1471. // int, 只读, 根据变更类型表示不同的值
  1472. // @note 仅针对以下类型有效:
  1473. // - 从 6.5 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_MessageReceiveOpt 时,该字段标识了群消息接收选项发生了变化,其取值详见 @ref TIMReceiveMessageOpt
  1474. // - 从 6.5 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_GroupAddOpt 时,该字段标识了申请加群审批选项发生了变化,其取值详见 @ref TIMGroupAddOption
  1475. // - 从 7.1 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_GroupApproveOpt 时,该字段标识了邀请进群审批选项发生了变化,取值类型详见 @ref TIMGroupAddOption
  1476. // - 从 8.4 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_TopicAddOpt 时,该字段标识了申请加私密话题审批选项发生了变化,其取值详见 @ref TIMGroupAddOption
  1477. // - 从 8.4 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_TopicApproveOpt 时,该字段标识了邀请进私密话题审批选项发生了变化,取值类型详见 @ref TIMGroupAddOption
  1478. static const char* kTIMGroupTipGroupChangeInfoIntValue = "group_tips_group_change_info_int_value";
  1479. // uint64, 只读, 根据变更类型表示不同的值,当前只有 info_flag 为 kTIMGroupTipChangeFlag_DefaultPermissions 时有效
  1480. static const char* kTIMGroupTipGroupChangeInfoUint64Value = "group_tips_group_change_info_uint64_value";
  1481. //------------------------------------------------------------------------------
  1482. // 9.2 GroupTipMemberChangeInfo(群组系统消息-群组成员禁言)
  1483. // string, 只读, 群组成员ID
  1484. static const char* kTIMGroupTipMemberChangeInfoIdentifier = "group_tips_member_change_info_identifier";
  1485. // uint, 只读, 禁言时间
  1486. static const char* kTIMGroupTipMemberChangeInfoShutupTime = "group_tips_member_change_info_shutupTime";
  1487. //------------------------------------------------------------------------------
  1488. // 9.3 GroupTipMemberMarkChangeInfo(群组系统消息-群组成员标记变更)
  1489. // bool, 只读, 群成员被标记或取消标记
  1490. static const char* kTIMGroupTipMemberChangeInfoEnableMark = "group_tips_member_mark_change_info_enableMark";
  1491. // uint, 只读, 标记类型
  1492. static const char* kTIMGroupTipMemberMarkChangeInfoMarkType = "group_tips_member_mark_change_info_markType";
  1493. // array string, 只读, 群成员 userID 列表
  1494. static const char* kTIMGroupTipMemberMarkChangeInfoUserIDList = "group_tips_member_mark_change_info_userIDList";
  1495. //------------------------------------------------------------------------------
  1496. // 9.4 GroupTipsElem(群组系统消息元素)
  1497. // @note
  1498. // - 针对所有群成员,可以通过监听 @ref TIMSetGroupTipsEventCallback 获取
  1499. // uint @ref TIMGroupTipType, 只读, 群消息类型
  1500. static const char* kTIMGroupTipsElemTipType = "group_tips_elem_tip_type";
  1501. // uint @ref TIMGroupJoinType, 只读, 加群类型, @ref TIMGroupTipType 为 kTIMGroupTip_Invite 时有效, 从 8.0 版本开始支持
  1502. static const char* kTIMGroupTipsElemJoinType = "group_tips_elem_join_type";
  1503. // string, 只读, 操作者ID
  1504. static const char* kTIMGroupTipsElemOpUser = "group_tips_elem_op_user";
  1505. // string, 只读, 群组ID
  1506. static const char* kTIMGroupTipsElemGroupId = "group_tips_elem_group_id";
  1507. // array string, 只读, 被操作的账号列表
  1508. static const char* kTIMGroupTipsElemUserArray = "group_tips_elem_user_array";
  1509. // array @ref GroupTipGroupChangeInfo, 只读, 群资料变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_GroupInfoChange 时有效
  1510. static const char* kTIMGroupTipsElemGroupChangeInfoArray = "group_tips_elem_group_change_info_array";
  1511. // array @ref GroupTipMemberChangeInfo, 只读, 群成员变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_MemberInfoChange 时有效
  1512. static const char* kTIMGroupTipsElemMemberChangeInfoArray = "group_tips_elem_member_change_info_array";
  1513. // object @ref UserProfile, 只读, 操作者个人资料
  1514. static const char* kTIMGroupTipsElemOpUserInfo = "group_tips_elem_op_user_info";
  1515. // object @ref GroupMemberInfo, 只读, 群成员信息
  1516. static const char* kTIMGroupTipsElemOpGroupMemberInfo = "group_tips_elem_op_group_memberinfo";
  1517. // array @ref UserProfile, 只读, 被操作者列表资料
  1518. static const char* kTIMGroupTipsElemChangedUserInfoArray = "group_tips_elem_changed_user_info_array";
  1519. // array @ref GroupMemberInfo, 只读, 群成员信息列表
  1520. static const char* kTIMGroupTipsElemChangedGroupMemberInfoArray = "group_tips_elem_changed_group_memberinfo_array";
  1521. // uint, 只读, 当前群成员数,只有当事件消息类型为 kTIMGroupTip_Invite 、 kTIMGroupTip_Quit 、 kTIMGroupTip_Kick 时有效
  1522. static const char* kTIMGroupTipsElemMemberNum = "group_tips_elem_member_num";
  1523. // string, 只读, 操作方平台信息
  1524. static const char* kTIMGroupTipsElemPlatform = "group_tips_elem_platform";
  1525. // array @ref GroupTipMemberMarkChangeInfo, 只读, 群成员标记变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_MemberMarkChange 时有效
  1526. static const char* kTIMGroupTipsElemMemberMarkInfoArray = "group_tips_elem_member_mark_info_array";
  1527. // value @ref PinnedGroupMessage, 只读,变更的置顶群消息
  1528. static const char* kTIMGroupTipsElemPinnedMessageList = "group_tips_elem_pinned_message_list";
  1529. /////////////////////////////////////////////////////////////////////////////////
  1530. //
  1531. // 十. 群组管理 API 参数相关的 Json Key 定义
  1532. //
  1533. /////////////////////////////////////////////////////////////////////////////////
  1534. //------------------------------------------------------------------------------
  1535. // 10.1 GroupMemberInfo(群成员信息)
  1536. // string, 读写(必填), 群组成员ID
  1537. static const char* kTIMGroupMemberInfoIdentifier = "group_member_info_identifier";
  1538. // string, 只读, 群组 ID
  1539. static const char* kTIMGroupMemberInfoGroupId = "group_member_info_group_id";
  1540. // uint, 只读, 群组成员加入时间
  1541. static const char* kTIMGroupMemberInfoJoinTime = "group_member_info_join_time";
  1542. // uint @ref TIMGroupMemberRole, 读写(选填), 群组成员角色
  1543. static const char* kTIMGroupMemberInfoMemberRole = "group_member_info_member_role";
  1544. // uint @ref TIMReceiveMessageOpt, 只读, 成员接收消息的选项
  1545. static const char* kTIMGroupMemberInfoMsgFlag = "group_member_info_msg_flag";
  1546. // uint, 只读, 消息序列号
  1547. static const char* kTIMGroupMemberInfoMsgSeq = "group_member_info_msg_seq";
  1548. // uint, 只读, 成员禁言时间
  1549. static const char* kTIMGroupMemberInfoShutupTime = "group_member_info_shutup_time";
  1550. // string, 只读, 成员群名片
  1551. static const char* kTIMGroupMemberInfoNameCard = "group_member_info_name_card";
  1552. // string, 只读, 好友昵称
  1553. static const char* kTIMGroupMemberInfoNickName = "group_member_info_nick_name";
  1554. // string, 只读, 好友备注
  1555. static const char* kTIMGroupMemberInfoFriendRemark = "group_member_info_friend_remark";
  1556. // string, 只读, 好友头像
  1557. static const char* kTIMGroupMemberInfoFaceUrl = "group_member_info_face_url";
  1558. // array @ref GroupMemberInfoCustomString, 只读, 请参考 [自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
  1559. static const char* kTIMGroupMemberInfoCustomInfo = "group_member_info_custom_info";
  1560. // string, 只读,群成员是否在线
  1561. static const char* kTIMGroupMemberInfoIsOnline = "group_member_info_is_online";
  1562. // array, 只读, 群成员在线终端列表
  1563. static const char* kTIMGroupMemberInfoOnlineDevices = "group_member_info_online_devices";
  1564. //------------------------------------------------------------------------------
  1565. // 10.2 CreateGroupParam(创建群组接口的参数)
  1566. // string, 只写(必填),群组名称,最长 100 字节,使用 UTF-8 编码,1 个汉字占 3 个字节。
  1567. static const char* kTIMCreateGroupParamGroupName = "create_group_param_group_name";
  1568. // string, 只写(选填), 群组ID,不填时创建成功回调会返回一个后台分配的群ID,如果创建社群(Community)需要自定义群组 ID ,那必须以 "@TGS#_" 作为前缀。
  1569. static const char* kTIMCreateGroupParamGroupId = "create_group_param_group_id";
  1570. // uint @ref TIMGroupType, 只写(选填), 群组类型,默认为Public
  1571. static const char* kTIMCreateGroupParamGroupType = "create_group_param_group_type";
  1572. // bool, 只写(选填), 社群是否支持创建话题, 只在群类型为 Community 时有效
  1573. static const char* kTIMCreateGroupIsSupportTopic = "create_group_param_is_support_topic";
  1574. // array @ref GroupMemberInfo, 只写(选填), 群组初始成员数组,成员个数不能超过 20(7.1 及其以上版本开始限制)
  1575. static const char* kTIMCreateGroupParamGroupMemberArray = "create_group_param_group_member_array";
  1576. // string, 只写(选填), 群组公告
  1577. static const char* kTIMCreateGroupParamNotification = "create_group_param_notification";
  1578. // string, 只写(选填), 群组简介
  1579. static const char* kTIMCreateGroupParamIntroduction = "create_group_param_introduction";
  1580. // string, 只写(选填), 群组头像URL
  1581. static const char* kTIMCreateGroupParamFaceUrl = "create_group_param_face_url";
  1582. // uint @ref TIMGroupAddOption, 只写(选填),申请加群审批选项,不同类型的群组支持的申请加群审批选项请参考 [官网]( https://cloud.tencent.com/document/product/269/1502#.E5.8A.A0.E7.BE.A4.E6.96.B9.E5.BC.8F.E5.B7.AE.E5.BC.82)
  1583. static const char* kTIMCreateGroupParamAddOption = "create_group_param_add_option";
  1584. // uint @ref TIMGroupAddOption, 只写(选填),邀请进群审批选项,不同类型的群组支持的邀请进群审批选项请参考 [官网]( https://cloud.tencent.com/document/product/269/1502#.E5.8A.A0.E7.BE.A4.E6.96.B9.E5.BC.8F.E5.B7.AE.E5.BC.82)
  1585. static const char* kTIMCreateGroupParamApproveOption = "create_group_param_approve_option";
  1586. // uint, 只写(选填), 群组最大成员数
  1587. static const char* kTIMCreateGroupParamMaxMemberCount = "create_group_param_max_member_num";
  1588. // array @ref GroupInfoCustomString, 只读(选填), 请参考 [自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
  1589. static const char* kTIMCreateGroupParamCustomInfo = "create_group_param_custom_info";
  1590. // bool, 只写(选填), 开启权限组功能, 仅支持社群, 7.8 版本开始支持。开启后,管理员角色的权限失效,用群权限、话题权限和权限组能力来对社群、话题进行管理。
  1591. static const char* kTIMCreateGroupParamEnablePermissionGroup = "create_group_param_enable_permission_group";
  1592. // uint64, 只写(选填), 群默认权限, 仅支持社群, 7.8 版本开始支持。群成员在没有加入任何权限组时的默认权限,仅在 kTIMCreateGroupParamEnablePermissionGroup 为 true 时生效
  1593. static const char* kTIMCreateGroupParamDefaultPermissions = "create_group_param_default_permissions";
  1594. //------------------------------------------------------------------------------
  1595. // 10.3 CreateGroupResult(创建群组接口的返回)
  1596. // string, 只读, 创建的群ID
  1597. static const char* kTIMCreateGroupResultGroupId = "create_group_result_groupid";
  1598. //------------------------------------------------------------------------------
  1599. // 10.4 GroupSelfInfo(群组内本人的信息)
  1600. // uint, 只读, 加入群组时间
  1601. static const char* kTIMGroupSelfInfoJoinTime = "group_self_info_join_time";
  1602. // uint, 只读, 用户在群组中的角色
  1603. static const char* kTIMGroupSelfInfoRole = "group_self_info_role";
  1604. // uint, 只读, 消息未读计数
  1605. static const char* kTIMGroupSelfInfoUnReadNum = "group_self_info_unread_num";
  1606. // uint @ref TIMReceiveMessageOpt, 只读, 消息接收选项
  1607. static const char* kTIMGroupSelfInfoMsgFlag = "group_self_info_msg_flag";
  1608. //------------------------------------------------------------------------------
  1609. // 10.5 GroupBaseInfo(群组基础信息, 获取已加入群组列表接口的返回信息)
  1610. // string, 只读, 群组ID
  1611. static const char* kTIMGroupBaseInfoGroupId = "group_base_info_group_id";
  1612. // string, 只读, 群组名称
  1613. static const char* kTIMGroupBaseInfoGroupName = "group_base_info_group_name";
  1614. // uint @ref TIMGroupType, 只读, 群组类型
  1615. static const char* kTIMGroupBaseInfoGroupType = "group_base_info_group_type";
  1616. // string, 只读, 群组头像 URL
  1617. static const char* kTIMGroupBaseInfoFaceUrl = "group_base_info_face_url";
  1618. // uint, 只读, 群资料的 Seq,群资料的每次变更都会增加这个字段的值
  1619. static const char* kTIMGroupBaseInfoInfoSeq = "group_base_info_info_seq";
  1620. // uint, 只读, 群最新消息的 Seq。群组内每一条消息都有一条唯一的消息 Seq,且该 Seq 是按照发消息顺序而连续的。从1开始,群内每增加一条消息,LatestSeq 就会增加1
  1621. static const char* kTIMGroupBaseInfoLatestSeq = "group_base_info_latest_seq";
  1622. // uint, 只读, 用户所在群已读的消息Seq
  1623. static const char* kTIMGroupBaseInfoReadedSeq = "group_base_info_readed_seq";
  1624. // uint, 只读, 消息接收选项
  1625. static const char* kTIMGroupBaseInfoMsgFlag = "group_base_info_msg_flag";
  1626. // bool, 只读, 当前群组是否设置了全员禁言
  1627. static const char* kTIMGroupBaseInfoIsShutupAll = "group_base_info_is_shutup_all";
  1628. // object @ref GroupSelfInfo, 只读, 用户所在群的个人信息
  1629. static const char* kTIMGroupBaseInfoSelfInfo = "group_base_info_self_info";
  1630. //------------------------------------------------------------------------------
  1631. // 10.6 GroupInfoCustomString(群资料自定义字段)
  1632. // string, 只写, 自定义字段的 key
  1633. static const char* kTIMGroupInfoCustomStringInfoKey = "group_info_custom_string_info_key";
  1634. // string, 只写, 自定义字段的 value
  1635. static const char* kTIMGroupInfoCustomStringInfoValue = "group_info_custom_string_info_value";
  1636. //------------------------------------------------------------------------------
  1637. // 10.7 GroupDetailInfo(群组详细信息)
  1638. // string, 只读, 群组ID
  1639. static const char* kTIMGroupDetailInfoGroupId = "group_detail_info_group_id";
  1640. // uint @ref TIMGroupType, 只读, 群组类型
  1641. static const char* kTIMGroupDetailInfoGroupType = "group_detail_info_group_type";
  1642. // bool, 只读, 社群是否支持创建话题,只在群类型为 Community 时有效
  1643. static const char* kTIMGroupDetailInfoIsSupportTopic = "group_detail_info_is_support_topic";
  1644. // string, 只读, 群组名称
  1645. static const char* kTIMGroupDetailInfoGroupName = "group_detail_info_group_name";
  1646. // string, 只读, 群组公告
  1647. static const char* kTIMGroupDetailInfoNotification = "group_detail_info_notification";
  1648. // string, 只读, 群组简介
  1649. static const char* kTIMGroupDetailInfoIntroduction = "group_detail_info_introduction";
  1650. // string, 只读, 群组头像URL
  1651. static const char* kTIMGroupDetailInfoFaceUrl = "group_detail_info_face_url";
  1652. // uint, 只读, 创建群组的 UTC 时间戳
  1653. static const char* kTIMGroupDetailInfoCreateTime = "group_detail_info_create_time";
  1654. // uint, 只读, 群资料的Seq,群资料的每次变更都会增加这个字段的值
  1655. static const char* kTIMGroupDetailInfoInfoSeq = "group_detail_info_info_seq";
  1656. // uint, 只读, 上次修改群信息的 UTC 时间戳
  1657. static const char* kTIMGroupDetailInfoLastInfoTime = "group_detail_info_last_info_time";
  1658. // uint, 只读, 群最新消息的Seq
  1659. static const char* kTIMGroupDetailInfoNextMsgSeq = "group_detail_info_next_msg_seq";
  1660. // uint, 只读, 最新群组消息时间
  1661. static const char* kTIMGroupDetailInfoLastMsgTime = "group_detail_info_last_msg_time";
  1662. // uint, 只读, 群组当前成员数量
  1663. static const char* kTIMGroupDetailInfoMemberNum = "group_detail_info_member_num";
  1664. // uint, 只读, 群组最大成员数量
  1665. static const char* kTIMGroupDetailInfoMaxMemberNum = "group_detail_info_max_member_num";
  1666. // uint @ref TIMGroupAddOption, 只读, 群组申请加群审批选项
  1667. static const char* kTIMGroupDetailInfoAddOption = "group_detail_info_add_option";
  1668. // uint @ref TIMGroupAddOption, 只读, 群组邀请进群审批选项
  1669. static const char* kTIMGroupDetailInfoApproveOption = "group_detail_info_approve_option";
  1670. // uint, 只读, 群组成员是否对外可见
  1671. static const char* kTIMGroupDetailInfoVisible = "group_detail_info_visible";
  1672. // uint, 只读, 群组是否能被搜索
  1673. static const char* kTIMGroupDetailInfoSearchable = "group_detail_info_searchable";
  1674. // bool, 只读, 群组是否被设置了全员禁言
  1675. static const char* kTIMGroupDetailInfoIsShutupAll = "group_detail_info_is_shutup_all";
  1676. // string, 只读, 群组所有者ID
  1677. static const char* kTIMGroupDetailInfoOwnerIdentifier = "group_detail_info_owner_identifier";
  1678. // array @ref GroupInfoCustomString, 只读, 请参考 [自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
  1679. static const char* kTIMGroupDetailInfoCustomInfo = "group_detail_info_custom_info";
  1680. // bool, 只读, 开启权限组功能,仅在社群生效,7.8 版本开始支持
  1681. static const char* kTIMGroupDetailInfoEnablePermissionGroup = "group_detail_info_enable_permission_group";
  1682. // uint, 只读, 群组权限,仅在社群生效,7.8 版本开始支持
  1683. static const char* kTIMGroupDetailInfoDefaultPermissions = "group_detail_info_default_permissions";
  1684. //------------------------------------------------------------------------------
  1685. // 10.8 GetGroupInfoResult(获取群组信息列表接口的返回)
  1686. // int [错误码](https://cloud.tencent.com/document/product/269/1671), 只读, 获取群组详细信息的结果
  1687. static const char* kTIMGetGroupInfoResultCode = "get_groups_info_result_code";
  1688. // string, 只读, 获取群组详细失败的描述信息
  1689. static const char* kTIMGetGroupInfoResultDesc = "get_groups_info_result_desc";
  1690. // object @ref GroupDetailInfo, 只读, 群组详细信息
  1691. static const char* kTIMGetGroupInfoResultInfo = "get_groups_info_result_info";
  1692. //------------------------------------------------------------------------------
  1693. // 10.9 GroupSearchParam(群搜索参数)
  1694. // array string, 只写(选填), 搜索关键字列表,最多支持5个
  1695. // 如果是本地搜索,您需主动设置 keyword 是否匹配群 ID、群名称。
  1696. // 如果是云端搜索,keyword 会自动匹配群 ID、群名称。
  1697. static const char* kTIMGroupSearchParamKeywordList = "group_search_params_keyword_list";
  1698. // array @ref TIMGroupSearchFieldKey, 只写(选填), 搜索域列表(仅本地搜索有效)
  1699. static const char* kTIMGroupSearchParamFieldList = "group_search_params_field_list";
  1700. // uint @ref TIMKeywordListMatchType, 指定关键字列表匹配类型,可设置为“或”关系搜索或者“与”关系搜索(仅云端搜索有效)
  1701. static const char* kTIMGroupSearchParamKeywordListMatchType = "group_search_params_keyword_list_match_type";
  1702. // uint , 每次云端搜索返回结果的条数(必须大于 0,最大支持 100,默认 20,仅云端搜索有效)
  1703. static const char* kTIMGroupSearchParamSearchCount = "group_search_params_search_count";
  1704. // string , 每次云端搜索的起始位置。第一次填空字符串,续拉时填写 GroupSearchResult 中的返回值(仅云端搜索有效)
  1705. static const char* kTIMGroupSearchParamSearchCursor = "group_search_params_search_cursor";
  1706. //------------------------------------------------------------------------------
  1707. // 10.10 GroupSearchResult (群组搜索结果)
  1708. // bool , 满足搜索条件的群列表是否已经全部返回
  1709. static const char* kTIMGroupSearchResultIsFinished = "group_search_result_is_finished";
  1710. // uint , 满足搜索条件的群总数量
  1711. static const char* kTIMGroupSearchResultTotalCount = "group_search_result_total_count";
  1712. // string , 下一次云端搜索的起始位置
  1713. static const char* kTIMGroupSearchResultNextCursor = "group_search_result_next_cursor";
  1714. // array @ref GroupInfo, 满足搜索条件的群总数量
  1715. static const char* kTIMGroupSearchResultGroupList = "group_search_result_group_list";
  1716. //------------------------------------------------------------------------------
  1717. // 10.11 GroupModifyInfoParam(设置群信息接口的参数)
  1718. // string, 只写(必填), 群组ID
  1719. static const char* kTIMGroupModifyInfoParamGroupId = "group_modify_info_param_group_id";
  1720. // uint @ref TIMGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
  1721. static const char* kTIMGroupModifyInfoParamModifyFlag = "group_modify_info_param_modify_flag";
  1722. // string, 只写(选填), 修改群组名称, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Name 时必填,其他情况不用填
  1723. static const char* kTIMGroupModifyInfoParamGroupName = "group_modify_info_param_group_name";
  1724. // string, 只写(选填), 修改群公告, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Notification 时必填,其他情况不用填
  1725. static const char* kTIMGroupModifyInfoParamNotification = "group_modify_info_param_notification";
  1726. // string, 只写(选填), 修改群简介, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Introduction 时必填,其他情况不用填
  1727. static const char* kTIMGroupModifyInfoParamIntroduction = "group_modify_info_param_introduction";
  1728. // string, 只写(选填), 修改群头像URL, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_FaceUrl 时必填,其他情况不用填
  1729. static const char* kTIMGroupModifyInfoParamFaceUrl = "group_modify_info_param_face_url";
  1730. // uint, 只写(选填), 申请加群审批选项, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_AddOption 时必填,其他情况不用填
  1731. static const char* kTIMGroupModifyInfoParamAddOption = "group_modify_info_param_add_option";
  1732. // uint, 只写(选填), 邀请进群审批选项, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_ApproveOption 时必填,其他情况不用填
  1733. static const char* kTIMGroupModifyInfoParamApproveOption = "group_modify_info_param_approve_option";
  1734. // uint, 只写(选填), 修改群最大成员数, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_MaxMemberNum 时必填,其他情况不用填
  1735. static const char* kTIMGroupModifyInfoParamMaxMemberNum = "group_modify_info_param_max_member_num";
  1736. // uint, 只写(选填), 修改群是否可见, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Visible 时必填,其他情况不用填
  1737. static const char* kTIMGroupModifyInfoParamVisible = "group_modify_info_param_visible";
  1738. // uint, 只写(选填), 修改群是否允许被搜索, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Searchable 时必填,其他情况不用填
  1739. static const char* kTIMGroupModifyInfoParamSearchAble = "group_modify_info_param_searchable";
  1740. // bool, 只写(选填), 修改群是否全体禁言, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_ShutupAll 时必填,其他情况不用填
  1741. static const char* kTIMGroupModifyInfoParamIsShutupAll = "group_modify_info_param_is_shutup_all";
  1742. // string, 只写(选填), 修改群主所有者, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Owner 时必填,其他情况不用填。此时 modify_flag 不能包含其他值,当修改群主时,同时修改其他信息已无意义
  1743. static const char* kTIMGroupModifyInfoParamOwner = "group_modify_info_param_owner";
  1744. // array @ref GroupInfoCustomString, 只写(选填), 请参考 [自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
  1745. static const char* kTIMGroupModifyInfoParamCustomInfo = "group_modify_info_param_custom_info";
  1746. // bool, 只写(选填), 修改是否开启权限组功能,仅支持社群,7.8 版本开始支持
  1747. static const char* kTIMGroupModifyInfoParamEnablePermissionGroup = "group_modify_info_param_enable_permission_group";
  1748. // uint, 只写(选填), 修改群权限,仅支持社群,7.8 版本开始支持
  1749. static const char* kTIMGroupModifyInfoParamDefaultPermissions = "group_modify_info_param_default_permissions";
  1750. //------------------------------------------------------------------------------
  1751. // 10.12 GroupAttributes(设置群属性的 map 对象)
  1752. // string, 只写, 群属性 map 的 key
  1753. static const char* TIMGroupAttributeKey = "group_attribute_key";
  1754. // string, 只写, 群属性 map 的 value
  1755. static const char* TIMGroupAttributeValue = "group_attribute_value";
  1756. //------------------------------------------------------------------------------
  1757. // 10.13 GroupCounter(群计数器信息)
  1758. // string, 读写, 群计数器的 key 值
  1759. static const char* kTIMGroupCounterKey = "group_counter_key";
  1760. // int64, 读写, 群计数器的 value 值
  1761. static const char* kTIMGroupCounterValue = "group_counter_value";
  1762. //------------------------------------------------------------------------------
  1763. // 10.14 GroupGetOnlineMemberCountResult(获取指定群在线人数结果)
  1764. // int, 只读, 指定群的在线人数
  1765. static const char* TIMGroupGetOnlineMemberCountResult = "group_get_online_member_count_result";
  1766. /////////////////////////////////////////////////////////////////////////////////
  1767. //
  1768. // 十一. 话题 API 参数相关的 Json Key 定义
  1769. //
  1770. /////////////////////////////////////////////////////////////////////////////////
  1771. //------------------------------------------------------------------------------
  1772. // 11.1 TIMGroupTopicInfo(获取指定群话题信息结果)
  1773. // string, 读写, 话题 ID, 只能在创建话题或者修改话题信息的时候设置。组成方式为:社群 ID + @TOPIC#_xxx,例如社群 ID 为 @TGS#_123,则话题 ID 为 @TGS#_123@TOPIC#_xxx
  1774. static const char* kTIMGroupTopicInfoTopicID = "group_topic_info_topic_id";
  1775. // string, 读写, 话题名称
  1776. static const char* kTIMGroupTopicInfoTopicName = "group_topic_info_topic_name";
  1777. // string, 读写, 话题介绍
  1778. static const char* kTIMGroupTopicInfoIntroduction = "group_topic_info_introduction";
  1779. // string, 读写, 话题公告
  1780. static const char* kTIMGroupTopicInfoNotification = "group_topic_info_notification";
  1781. // string, 读写, 话题头像
  1782. static const char* kTIMGroupTopicInfoTopicFaceURL = "group_topic_info_topic_face_url";
  1783. // bool, 读写, 话题全员禁言
  1784. static const char* kTIMGroupTopicInfoIsAllMuted = "group_topic_info_is_all_muted";
  1785. // uint32, 读写, 当前用户在话题中的禁言时间
  1786. static const char* kTIMGroupTopicInfoSelfMuteTime = "group_topic_info_self_mute_time";
  1787. // string, 读写, 话题自定义字段
  1788. static const char* kTIMGroupTopicInfoCustomString = "group_topic_info_custom_string";
  1789. // uint @ref TIMReceiveMessageOpt, 只读,话题消息接收选项,修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
  1790. static const char* kTIMGroupTopicInfoRecvOpt = "group_topic_info_recv_opt";
  1791. // string, 读写, 话题草稿
  1792. static const char* kTIMGroupTopicInfoDraftText = "group_topic_info_draft_text";
  1793. // uint64, 只读, 话题消息未读数量
  1794. static const char* kTIMGroupTopicInfoUnreadCount = "group_topic_info_unread_count";
  1795. // object @ref Message, 只读, 话题 lastMessage
  1796. static const char* kTIMGroupTopicInfoLastMessage = "group_topic_info_last_message";
  1797. // array @ref GroupAtInfo, 只读, 话题 at 信息列表
  1798. static const char* kTIMGroupTopicInfoGroupAtInfoArray = "group_topic_info_group_at_info_array";
  1799. // uint @ref TIMGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
  1800. static const char* kTIMGroupTopicInfoModifyFlag = "group_modify_info_param_modify_flag";
  1801. //------------------------------------------------------------------------------
  1802. // 11.2 TIMGroupTopicOperationResult(话题操作结果)
  1803. // int, 只读, 结果 0:成功;非0:失败
  1804. static const char* kTIMGroupTopicOperationResultErrorCode = "group_topic_operation_result_error_code";
  1805. // string, 只读, 如果删除失败,会返回错误信息
  1806. static const char* kTIMGroupTopicOperationResultErrorMessage = "group_topic_operation_result_error_message";
  1807. // string, 只读, 如果删除成功,会返回对应的 topicID
  1808. static const char* kTIMGroupTopicOperationResultTopicID = "group_topic_operation_result_topic_id";
  1809. //------------------------------------------------------------------------------
  1810. // 11.3 TIMGroupTopicInfoResult(获取话题信息的结果)
  1811. // int, 只读, 结果 0:成功;非0:失败
  1812. static const char* kTIMGroupTopicInfoResultErrorCode = "group_topic_info_result_error_code";
  1813. // string, 只读, 如果删除失败,会返回错误信息
  1814. static const char* kTIMGroupTopicInfoResultErrorMessage = "group_topic_info_result_error_message";
  1815. // object @ref TIMGroupTopicInfo, 只读, 如果获取成功,会返回对应的 info
  1816. static const char* kTIMGroupTopicInfoResultTopicInfo = "group_topic_info_result_topic_info";
  1817. /////////////////////////////////////////////////////////////////////////////////
  1818. //
  1819. // 十二. 群成员管理 API 参数相关的 Json Key 定义
  1820. //
  1821. /////////////////////////////////////////////////////////////////////////////////
  1822. //------------------------------------------------------------------------------
  1823. // 12.1 GroupMemberGetInfoOption(获取群组成员信息的选项)
  1824. // uint64 @ref TIMGroupMemberRoleFlag, 读写(选填), 根据成员角色过滤,默认值为 kTIMGroupMemberRoleFlag_All,获取所有角色
  1825. static const char* kTIMGroupMemberGetInfoOptionRoleFlag = "group_member_get_info_option_role_flag";
  1826. //------------------------------------------------------------------------------
  1827. // 12.2 GroupGetMemberInfoListParam(获取群成员列表接口的参数)
  1828. // string, 只写(必填), 群组ID
  1829. static const char* kTIMGroupGetMemberInfoListParamGroupId = "group_get_members_info_list_param_group_id";
  1830. // array string, 只写(选填), 群成员ID列表
  1831. static const char* kTIMGroupGetMemberInfoListParamIdentifierArray = "group_get_members_info_list_param_identifier_array";
  1832. // object @ref GroupMemberGetInfoOption, 只写(选填), 获取群成员信息的选项
  1833. static const char* kTIMGroupGetMemberInfoListParamOption = "group_get_members_info_list_param_option";
  1834. // uint64, 只写(选填), 分页拉取标志,第一次拉取填0,回调成功如果不为零,需要分页,调用接口传入再次拉取,直至为0
  1835. static const char* kTIMGroupGetMemberInfoListParamNextSeq = "group_get_members_info_list_param_next_seq";
  1836. //------------------------------------------------------------------------------
  1837. // 12.3 GroupGetMemberInfoListResult(获取群成员列表接口的返回)
  1838. // uint64, 只读, 下一次拉取的标志,server返回0表示没有更多的数据,否则在下次获取数据时填入这个标志
  1839. static const char* kTIMGroupGetMemberInfoListResultNexSeq = "group_get_member_info_list_result_next_seq";
  1840. // array @ref GroupMemberInfo, 只读, 成员信息列表
  1841. static const char* kTIMGroupGetMemberInfoListResultInfoArray = "group_get_member_info_list_result_info_array";
  1842. //------------------------------------------------------------------------------
  1843. // 12.4 GroupMemberSearchParam(群成员搜索参数)
  1844. // array string, 只写(必填), 搜索关键字列表,最多支持5个
  1845. // 如果是本地搜索,您需主动设置 keyword 是否匹配群成员 ID、昵称、备注、群名片。
  1846. // 如果是云端搜索,keyword 会自动匹配群成员 ID、昵称、群名片。
  1847. static const char* TIMGroupMemberSearchParamKeywordList = "group_search_member_params_keyword_list";
  1848. // array string, 只写(选填), 指定群 ID 列表,若为不填则搜索全部群中的群成员
  1849. static const char* TIMGroupMemberSearchParamGroupidList = "group_search_member_params_groupid_list";
  1850. // array @ref TIMGroupMemberSearchFieldKey, 只写(必填), 搜索域列表(仅本地搜索有效)
  1851. static const char* TIMGroupMemberSearchParamFieldList = "group_search_member_params_field_list";
  1852. // uint @ref TIMKeywordListMatchType, 指定关键字列表匹配类型,可设置为“或”关系搜索或者“与”关系搜索(仅云端搜索有效)
  1853. static const char* TIMGroupMemberSearchParamKeywordListMatchType = "group_member_search_params_keyword_list_match_type";
  1854. // uint , 每次云端搜索返回结果的条数(必须大于 0,最大支持 100,默认 20,仅云端搜索有效)
  1855. static const char* TIMGroupMemberSearchParamSearchCount = "group_member_search_params_search_count";
  1856. // string , 每次云端搜索的起始位置。第一次填空字符串,续拉时填写 GroupMemberSearchResult 中的返回值(仅云端搜索有效)
  1857. static const char* TIMGroupMemberSearchParamSearchCursor = "group_member_search_params_search_cursor";
  1858. //------------------------------------------------------------------------------
  1859. // 12.5 GroupSearchGroupMembersResult(本地群成员搜索结果)
  1860. // array string, 只读, 群 id 列表
  1861. static const char* TIMGroupSearchGroupMembersResultGroupID = "group_search_member_result_groupid";
  1862. // array @ref GroupMemberInfo, 只读, 群成员的列表
  1863. static const char* TIMGroupSearchGroupMembersResultMemberInfoList = "group_search_member_result_member_info_list";
  1864. //------------------------------------------------------------------------------
  1865. // 12.6 GroupMemberSearchResult (云端群成员搜索结果)
  1866. // bool , 满足搜索条件的群成员列表是否已经全部返回
  1867. static const char* TIMGroupMemberSearchResultIsFinished = "group_member_search_result_is_finished";
  1868. // uint , 满足搜索条件的群成员总数量
  1869. static const char* TIMGroupMemberSearchResultTotalCount = "group_member_search_result_total_count";
  1870. // string , 下一次云端搜索的起始位置
  1871. static const char* TIMGroupMemberSearchResultNextCursor = "group_member_search_result_next_cursor";
  1872. // object @ref GroupSearchGroupMembersResult, 满足搜索条件的群成员列表
  1873. static const char* TIMGroupMemberSearchResultMemberList = "group_member_search_result_member_list";
  1874. //------------------------------------------------------------------------------
  1875. // 12.7 GroupMemberInfoCustomString(群成员信息自定义字段)
  1876. // string, 只写, 自定义字段的key
  1877. static const char* kTIMGroupMemberInfoCustomStringInfoKey = "group_member_info_custom_string_info_key";
  1878. // string, 只写, 自定义字段的value
  1879. static const char* kTIMGroupMemberInfoCustomStringInfoValue = "group_member_info_custom_string_info_value";
  1880. //------------------------------------------------------------------------------
  1881. // 12.8 GroupModifyMemberInfoParam(设置群成员信息接口的参数)
  1882. // string, 只写(必填), 群组ID
  1883. static const char* kTIMGroupModifyMemberInfoParamGroupId = "group_modify_member_info_group_id";
  1884. // string, 只写(必填), 被设置信息的成员ID
  1885. static const char* kTIMGroupModifyMemberInfoParamIdentifier = "group_modify_member_info_identifier";
  1886. // uint @ref TIMGroupMemberModifyInfoFlag, 只写(必填), 修改类型,可设置多个值按位或
  1887. static const char* kTIMGroupModifyMemberInfoParamModifyFlag = "group_modify_member_info_modify_flag";
  1888. // uint @ref TIMReceiveMessageOpt, 只写(选填), 修改消息接收选项, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_MsgFlag 时必填,其他情况不用填
  1889. static const char* kTIMGroupModifyMemberInfoParamMsgFlag = "group_modify_member_info_msg_flag";
  1890. // uint @ref TIMGroupMemberRole, 只写(选填), 修改成员角色, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_MemberRole 时必填,其他情况不用填
  1891. static const char* kTIMGroupModifyMemberInfoParamMemberRole = "group_modify_member_info_member_role";
  1892. // uint, 只写(选填), 修改禁言时间, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_ShutupTime 时必填,其他情况不用填
  1893. static const char* kTIMGroupModifyMemberInfoParamShutupTime = "group_modify_member_info_shutup_time";
  1894. // string, 只写(选填), 修改群名片, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_NameCard 时必填,其他情况不用填
  1895. static const char* kTIMGroupModifyMemberInfoParamNameCard = "group_modify_member_info_name_card";
  1896. // array @ref GroupMemberInfoCustomString, 只写(选填), 请参考 [自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
  1897. static const char* kTIMGroupModifyMemberInfoParamCustomInfo = "group_modify_member_info_custom_info";
  1898. //------------------------------------------------------------------------------
  1899. // 12.9 GroupInviteMemberParam(邀请成员接口的参数)
  1900. // string, 只写(必填), 群组ID
  1901. static const char* kTIMGroupInviteMemberParamGroupId = "group_invite_member_param_group_id";
  1902. // array string, 只写(必填), 被邀请加入群组用户ID数组
  1903. static const char* kTIMGroupInviteMemberParamIdentifierArray = "group_invite_member_param_identifier_array";
  1904. // string, 只写(选填), 用于自定义数据
  1905. static const char* kTIMGroupInviteMemberParamUserData = "group_invite_member_param_user_data";
  1906. //------------------------------------------------------------------------------
  1907. // 12.10 GroupInviteMemberResult(邀请成员接口的返回)
  1908. // string, 只读, 被邀请加入群组的用户ID
  1909. static const char* kTIMGroupInviteMemberResultIdentifier = "group_invite_member_result_identifier";
  1910. // uint @ref HandleGroupMemberResult, 只读, 邀请结果
  1911. static const char* kTIMGroupInviteMemberResultResult = "group_invite_member_result_result";
  1912. //------------------------------------------------------------------------------
  1913. // 12.11 GroupDeleteMemberParam(删除成员接口的参数)
  1914. // string, 只写(必填), 群组ID
  1915. static const char* kTIMGroupDeleteMemberParamGroupId = "group_delete_member_param_group_id";
  1916. // array string, 只写(必填), 被删除群组成员数组
  1917. static const char* kTIMGroupDeleteMemberParamIdentifierArray = "group_delete_member_param_identifier_array";
  1918. // string, 只写(选填), 用于自定义数据
  1919. static const char* kTIMGroupDeleteMemberParamUserData = "group_delete_member_param_user_data";
  1920. // uint32_t,只写(选填),自被踢出群组开始算起,禁止被踢用户重新申请加群的时间间隔,单位:秒。7.2 版本开始支持
  1921. static const char* kTIMGroupDeleteMemberParamDuration = "group_delete_member_param_duration";
  1922. //------------------------------------------------------------------------------
  1923. // 12.12 GroupDeleteMemberResult(删除成员接口的返回)
  1924. // string, 只读, 删除的成员ID
  1925. static const char* kTIMGroupDeleteMemberResultIdentifier = "group_delete_member_result_identifier";
  1926. // uint @ref HandleGroupMemberResult, 只读, 删除结果
  1927. static const char* kTIMGroupDeleteMemberResultResult = "group_delete_member_result_result";
  1928. /////////////////////////////////////////////////////////////////////////////////
  1929. //
  1930. // 十三. 群未决 API 参数相关的 Json Key 定义
  1931. //
  1932. /////////////////////////////////////////////////////////////////////////////////
  1933. //------------------------------------------------------------------------------
  1934. // 13.1 GroupPendencyOption(获取群未决信息列表的参数)
  1935. // uint64, 只写(必填), 设置拉取时间戳,第一次请求填0,后边根据server返回的 @ref GroupPendencyResult 键kTIMGroupPendencyResultNextStartTime指定的时间戳进行填写
  1936. static const char* kTIMGroupPendencyOptionStartTime = "group_pendency_option_start_time";
  1937. // uint, 只写(选填), 拉取的建议数量,server可根据需要返回或多或少,不能作为完成与否的标志
  1938. static const char* kTIMGroupPendencyOptionMaxLimited = "group_pendency_option_max_limited";
  1939. //------------------------------------------------------------------------------
  1940. // 13.2 GroupPendency(群未决信息定义)
  1941. // string, 读写, 群组ID
  1942. static const char* kTIMGroupPendencyGroupId = "group_pendency_group_id";
  1943. // string, 读写, 请求者的 ID,例如:请求加群:请求者,邀请加群:邀请人
  1944. static const char* kTIMGroupPendencyFromIdentifier = "group_pendency_form_identifier";
  1945. // string, 只读, 请求者的昵称
  1946. static const char* kTIMGroupPendencyFromNickName = "group_pendency_from_nick_name";
  1947. // string, 只读, 请求者的头像
  1948. static const char* kTIMGroupPendencyFromFaceUrl = "group_pendency_from_face_url";
  1949. // string, 读写, 判决者的 ID,处理此条“加群的未决请求”的管理员ID
  1950. static const char* kTIMGroupPendencyToIdentifier = "group_pendency_to_identifier";
  1951. // uint64, 只读, 未决信息添加时间
  1952. static const char* kTIMGroupPendencyAddTime = "group_pendency_add_time";
  1953. // uint @ref TIMGroupPendencyType, 只读, 未决请求类型
  1954. static const char* kTIMGroupPendencyPendencyType = "group_pendency_pendency_type";
  1955. // uint @ref TIMGroupPendencyHandle, 只读, 群未决处理状态
  1956. static const char* kTIMGroupPendencyHandled = "group_pendency_handled";
  1957. // uint @ref TIMGroupPendencyHandleResult, 只读, 群未决处理操作类型
  1958. static const char* kTIMGroupPendencyHandleResult = "group_pendency_handle_result";
  1959. // string, 只读, 申请或邀请附加信息
  1960. static const char* kTIMGroupPendencyApplyInviteMsg = "group_pendency_apply_invite_msg";
  1961. // string, 只读, 申请或邀请者自定义字段
  1962. static const char* kTIMGroupPendencyFromUserDefinedData = "group_pendency_form_user_defined_data";
  1963. // string, 只读, 审批信息:同意或拒绝信息
  1964. static const char* kTIMGroupPendencyApprovalMsg = "group_pendency_approval_msg";
  1965. // string, 只读, 审批者自定义字段
  1966. static const char* kTIMGroupPendencyToUserDefinedData = "group_pendency_to_user_defined_data";
  1967. // string, 只读, 签名信息,客户不用关心
  1968. static const char* kTIMGroupPendencyKey = "group_pendency_key";
  1969. // string, 只读, 签名信息,客户不用关心
  1970. static const char* kTIMGroupPendencyAuthentication = "group_pendency_authentication";
  1971. // string, 只读, 自己的ID
  1972. static const char* kTIMGroupPendencySelfIdentifier = "group_pendency_self_identifier";
  1973. //------------------------------------------------------------------------------
  1974. // 13.3 GroupPendencyResult(获取群未决信息列表的返回)
  1975. // uint64, 只读, 下一次拉取的起始时戳,server返回0表示没有更多的数据,否则在下次获取数据时以这个时间戳作为开始时间戳
  1976. static const char* kTIMGroupPendencyResultNextStartTime = "group_pendency_result_next_start_time";
  1977. // uint64, 只读, 已读上报的时间戳
  1978. static const char* kTIMGroupPendencyResultReadTimeSeq = "group_pendency_result_read_time_seq";
  1979. // uint, 只读, 未决请求的未读数
  1980. static const char* kTIMGroupPendencyResultUnReadNum = "group_pendency_result_unread_num";
  1981. // array @ref GroupPendency, 只读, 群未决信息列表
  1982. static const char* kTIMGroupPendencyResultPendencyArray = "group_pendency_result_pendency_array";
  1983. //------------------------------------------------------------------------------
  1984. // 13.4 GroupHandlePendencyParam(处理群未决消息接口的参数)
  1985. // bool, 只写(选填), true表示接受,false表示拒绝。默认为false
  1986. static const char* kTIMGroupHandlePendencyParamIsAccept = "group_handle_pendency_param_is_accept";
  1987. // string, 只写(选填), 同意或拒绝信息,默认为空字符串
  1988. static const char* kTIMGroupHandlePendencyParamHandleMsg = "group_handle_pendency_param_handle_msg";
  1989. // object @ref GroupPendency, 只写(必填), 未决信息详情
  1990. static const char* kTIMGroupHandlePendencyParamPendency = "group_handle_pendency_param_pendency";
  1991. /////////////////////////////////////////////////////////////////////////////////
  1992. //
  1993. // 十四. 废弃字段
  1994. //
  1995. /////////////////////////////////////////////////////////////////////////////////
  1996. //------------------------------------------------------------------------------
  1997. // 14.1 GroupTipsElem(群组系统消息元素, 已废弃字段部分)
  1998. // string, 只读, 群组名称
  1999. static const char* kTIMGroupTipsElemGroupName = "group_tips_elem_group_name";
  2000. // uint, 只读, 群消息时间
  2001. static const char* kTIMGroupTipsElemTime = "group_tips_elem_time";
  2002. //------------------------------------------------------------------------------
  2003. // 14.2 GroupDetailInfo(群组详细信息,已废弃字段部分)
  2004. // uint, 只读, 群组在线成员数量,已废弃,请使用 @ref TIMGroupGetOnlineMemberCount 接口获取群在线人数
  2005. static const char* kTIMGroupDetailInfoOnlineMemberNum = "group_detail_info_online_member_num";
  2006. //------------------------------------------------------------------------------
  2007. // 14.3 GroupMemberGetInfoOption(获取群组成员信息的选项, 已废弃的部分)
  2008. // uint64 @ref TIMGroupMemberInfoFlag, 读写(选填), 根据想要获取的信息过滤,默认值为0xffffffff(获取全部信息)
  2009. static const char* kTIMGroupMemberGetInfoOptionInfoFlag = "group_member_get_info_option_info_flag";
  2010. // array string, 只写(选填), 请参考 [自定义字段](https://cloud.tencent.com/document/product/269/1502#.E8.87.AA.E5.AE.9A.E4.B9.89.E5.AD.97.E6.AE.B5)
  2011. static const char* kTIMGroupMemberGetInfoOptionCustomArray = "group_member_get_info_option_custom_array";
  2012. //------------------------------------------------------------------------------
  2013. // 14.4 以下为老版本拼写错误,为了兼容老版本而保留的宏定义
  2014. // enum TIMGroupModifyInfoFlag
  2015. #define kTIMGroupModifyInfoFlag_MaxMmeberNum kTIMGroupModifyInfoFlag_MaxMemberNum
  2016. // enum TIMGroupMemberSearchFieldKey
  2017. #define kTIMGroupMemberSearchFieldKey_NikeName kTIMGroupMemberSearchFieldKey_NickName
  2018. // GroupMemberInfoCustomString JsonKey
  2019. #define kTIMGroupMemberInfoCustemStringInfoKey kTIMGroupMemberInfoCustomStringInfoKey
  2020. #define kTIMGroupMemberInfoCustemStringInfoValue kTIMGroupMemberInfoCustomStringInfoValue
  2021. // GroupInfoCustomString JsonKey
  2022. #define kTIMGroupInfoCustemStringInfoKey kTIMGroupInfoCustomStringInfoKey
  2023. #define kTIMGroupInfoCustemStringInfoValue kTIMGroupInfoCustomStringInfoValue
  2024. // GroupBaseInfo JsonKey
  2025. #define kTIMGroupBaseInfoLastestSeq kTIMGroupBaseInfoLatestSeq
  2026. // GroupDetailInfo JsonKey
  2027. #define kTIMGroupDetialInfoGroupId kTIMGroupDetailInfoGroupId
  2028. #define kTIMGroupDetialInfoGroupType kTIMGroupDetailInfoGroupType
  2029. #define kTIMGroupDetialInfoIsSupportTopic kTIMGroupDetailInfoIsSupportTopic
  2030. #define kTIMGroupDetialInfoGroupName kTIMGroupDetailInfoGroupName
  2031. #define kTIMGroupDetialInfoNotification kTIMGroupDetailInfoNotification
  2032. #define kTIMGroupDetialInfoIntroduction kTIMGroupDetailInfoIntroduction
  2033. #define kTIMGroupDetialInfoFaceUrl kTIMGroupDetailInfoFaceUrl
  2034. #define kTIMGroupDetialInfoCreateTime kTIMGroupDetailInfoCreateTime
  2035. #define kTIMGroupDetialInfoInfoSeq kTIMGroupDetailInfoInfoSeq
  2036. #define kTIMGroupDetialInfoLastInfoTime kTIMGroupDetailInfoLastInfoTime
  2037. #define kTIMGroupDetialInfoNextMsgSeq kTIMGroupDetailInfoNextMsgSeq
  2038. #define kTIMGroupDetialInfoLastMsgTime kTIMGroupDetailInfoLastMsgTime
  2039. #define kTIMGroupDetialInfoMemberNum kTIMGroupDetailInfoMemberNum
  2040. #define kTIMGroupDetialInfoMaxMemberNum kTIMGroupDetailInfoMaxMemberNum
  2041. #define kTIMGroupDetialInfoAddOption kTIMGroupDetailInfoAddOption
  2042. #define kTIMGroupDetialInfoApproveOption kTIMGroupDetailInfoApproveOption
  2043. #define kTIMGroupDetialInfoOnlineMemberNum kTIMGroupDetailInfoOnlineMemberNum
  2044. #define kTIMGroupDetialInfoVisible kTIMGroupDetailInfoVisible
  2045. #define kTIMGroupDetialInfoSearchable kTIMGroupDetailInfoSearchable
  2046. #define kTIMGroupDetialInfoIsShutupAll kTIMGroupDetailInfoIsShutupAll
  2047. #define kTIMGroupDetialInfoOwnerIdentifier kTIMGroupDetailInfoOwnerIdentifier
  2048. #define kTIMGroupDetialInfoCustomInfo kTIMGroupDetailInfoCustomInfo
  2049. // GroupSearchParam JsonKey
  2050. #define TIMGroupSearchParamKeywordList kTIMGroupSearchParamKeywordList
  2051. #define TIMGroupSearchParamFieldList kTIMGroupSearchParamFieldList
  2052. // GroupGetOnlineMemberCountResult JsonKey
  2053. #define TIMGroupGetOnlineMemberCountResulCount TIMGroupGetOnlineMemberCountResult
  2054. // GroupMemberInfo JsonKey
  2055. #define kTIMGroupMemberInfoRemark kTIMGroupMemberInfoFriendRemark
  2056. // GroupSearchGroupMembersResult JsonKey
  2057. #define TIMGroupSearchGroupMembersdResultGroupID TIMGroupSearchGroupMembersResultGroupID
  2058. #define TIMGroupSearchGroupMembersdResultMemberInfoList TIMGroupSearchGroupMembersResultMemberInfoList
  2059. // GroupMemberInfo JsonKey
  2060. #define KTIMGroupMemberInfoOnlineDevices kTIMGroupMemberInfoOnlineDevices
  2061. #ifdef __cplusplus
  2062. }
  2063. #endif // __cplusplus
  2064. #endif // SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_GROUP_MANAGER_H_