| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186 |
- // Copyright (c) 2023 Tencent. All rights reserved.
- #ifndef SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_GROUP_MANAGER_H_
- #define SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_GROUP_MANAGER_H_
- #include "TIMCloudDef.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- // 模块简介
- // - 群组接口,包含建群、加群、退群、群成员邀请、非群成员申请进群等功能
- //
- // 模块参数说明
- // - API 的参数采用 json 字符串格式,请使用文件中预先定义的 JsonKey 进行参数传递和解析
- // - 如果参数中包含非英文字符,请使用 UTF-8 编码
- //
- // 模块回调说明
- // 1. 回调的类型:
- // - 调用 API 时传入的 TIMCommCallback 回调,用于异步返回 API 的调用结果
- // - 调用 TIMSetXXXCallback 设置的全局回调,用于接收后台推送的通知
- // 2. 回调触发的线程:
- // - 对于 Windows 平台,当在主线程中调用 @ref TIMInit 接口时,SDK 会将所有回调抛到主线程,请确保主线程已创建消息循环;否则,回调将在 SDK 内部的逻辑线程触发
- // - 对于 Android 平台,当调用 @ref TIMInit 接口的线程支持消息循环时,SDK 会将所有回调抛到该线程;否则,回调将在 SDK 内部的逻辑线程触发
- // - 对于 iOS 和 MAC 平台,SDK 默认将所有回调抛到主线程
- // - 对于 Linux 平台,暂不支持将回调抛到主线程,回调将在 SDK 内部的逻辑线程触发
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 一. 群组功能相关配置选项定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- // 1.1 群组信息修改的类型
- enum TIMGroupTipGroupChangeFlag {
- // 未知的修改
- kTIMGroupTipChangeFlag_Unknown = 0x0,
- // 修改群组名称
- kTIMGroupTipChangeFlag_Name = 0x1,
- // 修改群简介
- kTIMGroupTipChangeFlag_Introduction = 0x2,
- // 修改群公告
- kTIMGroupTipChangeFlag_Notification = 0x3,
- // 修改群头像URL
- kTIMGroupTipChangeFlag_FaceUrl = 0x4,
- // 修改群所有者
- kTIMGroupTipChangeFlag_Owner = 0x5,
- // 修改群自定义信息
- kTIMGroupTipChangeFlag_Custom = 0x6,
- // 群属性变更 (新增)
- kTIMGroupTipChangeFlag_Attribute = 0x7,
- // 全员禁言字段变更
- kTIMGroupTipChangeFlag_ShutupAll = 0x08,
- // 话题自定义字段
- kTIMGroupTipChangeFlag_TopicCustomData = 0x09,
- // 消息接收选项变更
- kTIMGroupTipChangeFlag_MessageReceiveOpt = 0x0A,
- // 申请加群方式下管理员审批选项变更
- kTIMGroupTipChangeFlag_GroupAddOpt = 0x0B,
- // 邀请进群方式下管理员审批选项变更
- kTIMGroupTipChangeFlag_GroupApproveOpt = 0x0C,
- // 开启权限组功能,只支持社群,7.8 版本开始支持
- kTIMGroupTipChangeFlag_EnablePermissionGroup = 0x0D,
- // 群默认权限,只支持社群,7.8 版本开始支持
- kTIMGroupTipChangeFlag_DefaultPermissions = 0x0E,
- // 申请加入私密话题时管理员的审批选项变更
- kTIMGroupTipChangeFlag_TopicAddOpt = 0x0F,
- // 邀请进入私密话题时管理员的审批选项变更
- kTIMGroupTipChangeFlag_TopicApproveOpt = 0x10,
- // 私密话题最大成员数量
- kTIMGroupTipChangeFlag_TopicMemberMaxCount = 0x11,
- };
- // 1.2 群组系统消息类型
- enum TIMGroupTipType {
- // 无效的群提示
- kTIMGroupTip_None,
- // 邀请加群提示
- kTIMGroupTip_Invite,
- // 退群提示
- kTIMGroupTip_Quit,
- // 踢人提示
- kTIMGroupTip_Kick,
- // 设置管理员提示
- kTIMGroupTip_SetAdmin,
- // 取消管理员提示
- kTIMGroupTip_CancelAdmin,
- // 群信息修改提示
- kTIMGroupTip_GroupInfoChange,
- // 群成员信息修改提示
- kTIMGroupTip_MemberInfoChange,
- // 群成员标记修改提示
- kTIMGroupTip_MemberMarkChange,
- // 话题资料修改提示
- kTIMGroupTip_TopicInfoChange,
- // 置顶群消息
- KTIMGroupTip_PinnedMessageAdded,
- // 取消置顶群消息
- KTIMGroupTip_PinnedMessageDeleted,
- };
- // 1.3 群组类型
- enum TIMGroupType {
- // 公开群(Public),成员上限 2000 人,任何人都可以申请加群,但加群需群主或管理员审批,适合用于类似 QQ 中由群主管理的兴趣群。
- kTIMGroup_Public,
- // 工作群(Work),成员上限 200 人,不支持由用户主动加入,需要他人邀请入群,适合用于类似微信中随意组建的工作群(对应老版本的 Private 群)。
- kTIMGroup_Private,
- // 会议群(Meeting),成员上限 6000 人,任何人都可以自由进出,且加群无需被审批,适合用于视频会议和在线培训等场景(对应老版本的 ChatRoom 群)。
- kTIMGroup_ChatRoom,
- // 在线成员广播大群,推荐使用 直播群(AVChatRoom)
- kTIMGroup_BChatRoom,
- // 直播群(AVChatRoom),人数无上限,任何人都可以自由进出,消息吞吐量大,适合用作直播场景中的高并发弹幕聊天室。
- kTIMGroup_AVChatRoom,
- // 社群(Community),成员上限 100000 人,任何人都可以自由进出,且加群无需被审批,适合用于知识分享和游戏交流等超大社区群聊场景。5.8 版本开始支持,需要您购买旗舰版套餐。
- kTIMGroup_Community,
- };
- // 1.4 群组加群选项
- enum TIMGroupAddOption {
- // 禁止加群
- kTIMGroupAddOpt_Forbid = 0,
- // 需要管理员审批
- kTIMGroupAddOpt_Auth = 1,
- // 任何人都可以加群
- kTIMGroupAddOpt_Any = 2,
- // 未定义
- kTIMGroupAddOpt_Unknown = 3,
- };
- // 1.5 群组成员角色类型
- enum TIMGroupMemberRole {
- // 未定义
- kTIMMemberRole_None = 0,
- // 群成员
- kTIMMemberRole_Normal = 200,
- // 管理员
- kTIMMemberRole_Admin = 300,
- // 超级管理员(群主)
- kTIMMemberRole_Owner = 400,
- };
- // 1.6 群搜索 Field 的枚举
- enum TIMGroupSearchFieldKey {
- // 群 ID
- kTIMGroupSearchFieldKey_GroupId = 0x01,
- // 群名称
- kTIMGroupSearchFieldKey_GroupName = 0x01 << 1,
- };
- // 1.7 设置(修改)群组信息的类型
- enum TIMGroupModifyInfoFlag {
- // 未定义
- kTIMGroupModifyInfoFlag_None = 0x00,
- // 修改群组名称
- kTIMGroupModifyInfoFlag_Name = 0x01,
- // 修改群公告
- kTIMGroupModifyInfoFlag_Notification = 0x01 << 1,
- // 修改群简介
- kTIMGroupModifyInfoFlag_Introduction = 0x01 << 2,
- // 修改群头像URL
- kTIMGroupModifyInfoFlag_FaceUrl = 0x01 << 3,
- // 申请加群管理员审批选项
- kTIMGroupModifyInfoFlag_AddOption = 0x01 << 4,
- // 修改群最大成员数
- kTIMGroupModifyInfoFlag_MaxMemberNum = 0x01 << 5,
- // 修改群是否可见
- kTIMGroupModifyInfoFlag_Visible = 0x01 << 6,
- // 修改群是否允许被搜索
- kTIMGroupModifyInfoFlag_Searchable = 0x01 << 7,
- // 修改群是否全体禁言
- kTIMGroupModifyInfoFlag_ShutupAll = 0x01 << 8,
- // 修改群自定义信息
- kTIMGroupModifyInfoFlag_Custom = 0x01 << 9,
- // 话题自定义字段
- kTIMGroupTopicModifyInfoFlag_CustomString = 0x01 << 11,
- // 邀请进群管理员审批选项
- kTIMGroupModifyInfoFlag_ApproveOption = 0x01 << 12,
- // 开启权限组功能,仅支持社群,7.8 版本开始支持
- kTIMGroupModifyInfoFlag_EnablePermissionGroup = 0x1 << 13,
- // 群默认权限,仅支持社群,7.8 版本开始支持
- kTIMGroupModifyInfoFlag_DefaultPermissions = 0x1 << 14,
- // 修改群主
- kTIMGroupModifyInfoFlag_Owner = 0x01 << 31,
- };
- // 1.8 群组成员角色标识
- enum TIMGroupMemberRoleFlag {
- // 获取全部角色类型
- kTIMGroupMemberRoleFlag_All = 0x00,
- // 获取所有者(群主)
- kTIMGroupMemberRoleFlag_Owner = 0x01,
- // 获取管理员,不包括群主
- kTIMGroupMemberRoleFlag_Admin = 0x01 << 1,
- // 获取普通群成员,不包括群主和管理员
- kTIMGroupMemberRoleFlag_Member = 0x01 << 2,
- };
- // 1.9 群成员搜索 Field 的枚举
- enum TIMGroupMemberSearchFieldKey {
- // 用户 ID
- kTIMGroupMemberSearchFieldKey_Identifier = 0x01,
- // 昵称
- kTIMGroupMemberSearchFieldKey_NickName = 0x01 << 1,
- // 备注
- kTIMGroupMemberSearchFieldKey_Remark = 0x01 << 2,
- // 名片
- kTIMGroupMemberSearchFieldKey_NameCard = 0x01 << 3,
- };
- // 1.10 设置(修改)群成员信息的类型
- enum TIMGroupMemberModifyInfoFlag {
- // 未定义
- kTIMGroupMemberModifyFlag_None = 0x00,
- // 修改消息接收选项
- kTIMGroupMemberModifyFlag_MsgFlag = 0x01,
- // 修改成员角色
- kTIMGroupMemberModifyFlag_MemberRole = 0x01 << 1,
- // 修改禁言时间
- kTIMGroupMemberModifyFlag_ShutupTime = 0x01 << 2,
- // 修改群名片
- kTIMGroupMemberModifyFlag_NameCard = 0x01 << 3,
- // 修改群成员自定义信息
- kTIMGroupMemberModifyFlag_Custom = 0x01 << 4,
- };
- // 1.11 群成员操作结果
- enum HandleGroupMemberResult {
- // 失败
- kTIMGroupMember_HandledErr,
- // 成功
- kTIMGroupMember_HandledSuc,
- // 已是群成员
- kTIMGroupMember_Included,
- // 已发送邀请
- kTIMGroupMember_Invited,
- };
- // 1.12 群未决请求类型
- enum TIMGroupPendencyType {
- // 需要群主或管理员审批的申请加群请求
- kTIMGroupPendency_GroupJoinNeedApprovedByAdmin = 0,
- // 需要被邀请者同意的邀请入群请求
- kTIMGroupPendency_GroupInviteNeedApprovedByInvitee = 1,
- // 需要群主或管理员审批的邀请入群请求
- kTIMGroupPendency_GroupInviteNeedApprovedByAdmin = 2,
- };
- // 1.13 群未决处理状态
- enum TIMGroupPendencyHandle {
- // 未处理
- kTIMGroupPendency_NotHandle = 0,
- // 他人处理
- kTIMGroupPendency_OtherHandle = 1,
- // 操作方处理
- kTIMGroupPendency_OperatorHandle = 2,
- };
- // 1.14 群未决处理操作类型
- enum TIMGroupPendencyHandleResult {
- // 拒绝
- kTIMGroupPendency_Refuse = 0,
- // 同意
- kTIMGroupPendency_Accept = 1,
- };
- // 1.15 加群类型
- enum TIMGroupJoinType {
- // 未知
- kTIMGroupJoin_None = 0,
- // 主动加群
- kTIMGroupJoin_Apply = 1,
- // 邀请进群
- kTIMGroupJoin_Invite = 2,
- };
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 二. 群组事件回调定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 2.1 群事件回调
- *
- * @param json_group_tip 群提示列表,Json Key 详情请参考 @ref GroupTipsElem
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- *
- * @note
- * 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的
- */
- typedef void (*TIMGroupTipsEventCallback)(const char* json_group_tip, const void* user_data);
- /**
- * 2.2 群属性变更回调
- *
- * @param json_group_attribute_array 变更的群属性列表, Json Key 请参考 @ref GroupAttributes
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- *
- * __json_group_attribute_array 的示例 (json key 请参考 @ref GroupAttributes)__
- * @code{.cpp}
- * [{"group_attribute_key":"attribute_key1","group_attribute_value":"attribute_value1"}]
- * @endcode
- */
- typedef void (*TIMGroupAttributeChangedCallback)(const char *group_id, const char* json_group_attribute_array, const void* user_data);
- /**
- * 2.3 群计数器变更的回调
- *
- * @param group_id 群组 ID
- * @param group_counter_key 变更的群计数器的 key
- * @param group_counter_new_value 变更后的群计数器的 value
- */
- typedef void (*TIMGroupCounterChangedCallback)(const char *group_id, const char *group_counter_key, int64_t group_counter_new_value, const void *user_data);
- /**
- * 2.4 话题创建的回调
- *
- * @param topic_id 话题 ID
- */
- typedef void (*TIMGroupTopicCreatedCallback)(const char *group_id, const char *topic_id, const void* user_data);
- /**
- * 2.5 话题被删除的回调
- *
- * @param group_id 话题所属的社群 ID
- * @param topic_id_array 话题列表
- */
- typedef void (*TIMGroupTopicDeletedCallback)(const char *group_id, const char *topic_id_array, const void* user_data);
- /**
- * 2.6 话题更新的回调
- *
- * @param topic_info 话题信息,参见 TIMGroupTopicInfo 类型
- */
- typedef void (*TIMGroupTopicChangedCallback)(const char *group_id, const char *topic_info, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 三. 注册群组事件回调 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 3.1 设置群组系统消息回调
- *
- * @param cb 群消息回调,请参考 @ref TIMGroupTipsEventCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- *
- * @note
- * 群组系统消息事件包括 加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的
- */
- TIM_API void TIMSetGroupTipsEventCallback(TIMGroupTipsEventCallback cb, const void* user_data);
- /**
- * 3.2 设置群组属性变更回调
- *
- * @param cb 群组属性变更回调,请参考 @ref TIMGroupAttributeChangedCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- *
- * @note
- * 某个已加入的群的属性被修改了,会返回所在群组的所有属性(该群所有的成员都能收到)
- */
- TIM_API void TIMSetGroupAttributeChangedCallback(TIMGroupAttributeChangedCallback cb, const void* user_data);
- /**
- * 3.3 设置群计数器变更回调
- *
- * @param cb 群计数器变更回调,请参考 @ref TIMGroupCounterChangedCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- *
- * @note
- * 某个已加入的群的计数器被修改了,会返回当前变更的群计数器(该群所有的成员都能收到)
- */
- TIM_API void TIMSetGroupCounterChangedCallback(TIMGroupCounterChangedCallback cb, const void* user_data);
- /**
- * 3.4 设置话题被创建的回调
- *
- * @param cb 群组属性变更回调,请参考 @ref TIMGroupTopicCreatedCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetGroupTopicCreatedCallback(TIMGroupTopicCreatedCallback cb, const void* user_data);
- /**
- * 3.5 设置话题被删除的回调
- *
- * @param cb 群组属性变更回调,请参考 @ref TIMGroupTopicDeletedCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetGroupTopicDeletedCallback(TIMGroupTopicDeletedCallback cb, const void* user_data);
- /**
- * 3.6 设置话题更新的回调
- *
- * @param cb 群组属性变更回调,请参考 @ref TIMGroupTopicChangedCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetGroupTopicChangedCallback(TIMGroupTopicChangedCallback cb, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 四. 群管理相关 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 4.1 创建群组
- *
- * @param json_group_create_param 创建群组的参数Json字符串, Json Key 请参考 @ref CreateGroupParam
- * @param cb 创建群组成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 创建群组时可以指定群ID,若未指定时IM通讯云服务器会生成一个唯一的ID,以便后续操作,群组ID通过创建群组时传入的回调返回
- *
- * __示例__
- * @code{.cpp}
- * Json::Value json_group_member_array(Json::arrayValue);
- *
- * Json::Value json_value_param;
- * json_value_param[kTIMCreateGroupParamGroupId] = "first group id";
- * json_value_param[kTIMCreateGroupParamGroupType] = kTIMGroup_Public;
- * json_value_param[kTIMCreateGroupParamGroupName] = "first group name";
- * json_value_param[kTIMCreateGroupParamGroupMemberArray] = json_group_member_array;
- *
- * json_value_param[kTIMCreateGroupParamNotification] = "group notification";
- * json_value_param[kTIMCreateGroupParamIntroduction] = "group introduction";
- * json_value_param[kTIMCreateGroupParamFaceUrl] = "group face url";
- * json_value_param[kTIMCreateGroupParamMaxMemberCount] = 2000;
- * json_value_param[kTIMCreateGroupParamAddOption] = kTIMGroupAddOpt_Any;
- * json_value_param[kTIMCreateGroupParamApproveOption] = kTIMGroupAddOpt_Any;
- *
- * const void* user_data = nullptr; // 回调函数回传
- * int ret = TIMGroupCreate(json_value_param.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
- * if (ERR_SUCC != code) {
- * // 创建群组失败
- * return;
- * }
- *
- * // 创建群组成功 解析Json获取创建后的GroupID
- * }, user_data);
- * if (TIM_SUCC != ret) {
- * // TIMGroupCreate 接口调用失败
- * }
- *
- * // json_value_param.toStyledString().c_str() 得到 json_group_create_param JSON 字符串如下
- * {
- * "create_group_param_add_option" : 2,
- * "create_group_param_face_url" : "group face url",
- * "create_group_param_group_id" : "first group id",
- * "create_group_param_group_member_array" : [],
- * "create_group_param_group_name" : "first group name",
- * "create_group_param_group_type" : 0,
- * "create_group_param_introduction" : "group introduction",
- * "create_group_param_max_member_num" : 2000,
- * "create_group_param_notification" : "group notification"
- * }
- * @endcode
- */
- TIM_API int TIMGroupCreate(const char* json_group_create_param, TIMCommCallback cb, const void* user_data);
- /**
- * 4.2 删除(解散)群组
- *
- * @param group_id 要删除的群组ID
- * @param cb 删除群组成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 对于私有群,任何人都无法解散群组。
- * - 对于公开群、聊天室和直播大群,群主可以解散群组。
- * 删除指定群组 group_id 的接口,删除成功与否可根据回调cb的参数判断。
- */
- TIM_API int TIMGroupDelete(const char* group_id, TIMCommCallback cb, const void* user_data);
- /**
- * 4.3 申请加入群组
- *
- * @param group_id 要加入的群组ID
- * @param hello_msg 申请理由(选填)
- * @param cb 申请加入群组成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 私有群不能由用户主动申请入群。
- * - 公开群和聊天室可以主动申请进入。
- * - 如果群组设置为需要审核,申请后管理员和群主会受到申请入群系统消息,需要等待管理员或者群主审核,如果群主设置为任何人可加入,则直接入群成功。
- * - 直播大群可以任意加入群组。
- * 申请加入指定群组 group_id 的接口,申请加入的操作成功与否可根据回调cb的参数判断。
- */
- TIM_API int TIMGroupJoin(const char* group_id, const char* hello_msg, TIMCommCallback cb, const void* user_data);
- /**
- * 4.4 退出群组
- *
- * @param group_id 要退出的群组ID
- * @param cb 退出群组成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 对于私有群,全员可退出群组。
- * - 对于公开群、聊天室和直播大群,群主不能退出。
- * 退出指定群组group_id的接口,退出成功与否可根据回调cb的参数判断。
- */
- TIM_API int TIMGroupQuit(const char* group_id, TIMCommCallback cb, const void* user_data);
- /**
- * 4.5 获取当前用户已经加入的群列表
- *
- * @param cb 获取已加入群组列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 此接口可以获取自己所加入的群列表
- * - 此接口只能获得加入的部分直播大群的列表。
- * 此接口用于获取当前用户已加入的群组列表,返回群组的基础信息。具体返回的群组信息字段参考 @ref GroupDetailInfo, @ref GroupBaseInfo
- */
- TIM_API int TIMGroupGetJoinedGroupList(TIMCommCallback cb, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 五. 群资料管理相关 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 5.1 获取群组信息列表
- *
- * @param json_group_getinfo_param 获取群组信息列表参数的 Json 字符串
- * @param cb 获取群组信息列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 此接口用于获取指定群ID列表的群详细信息。具体返回的群组详细信息字段参考 @ref GroupDetailInfo, @ref GroupBaseInfo
- *
- * __示例__
- * @code{.cpp}
- * Json::Value groupids;
- * groupids.append("third group id");
- * groupids.append("second group id");
- * groupids.append("first group id");
- * int ret = TIMGroupGetGroupInfoList(groupids.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, this);
- *
- * // groupids.toStyledString().c_str() 得到json_group_getinfo_param如下
- * [ "third group id", "second group id", "first group id" ]
- * @endcode
- */
- TIM_API int TIMGroupGetGroupInfoList(const char* json_group_getinfo_param, TIMCommCallback cb, const void* user_data);
- /**
- * 5.2 搜索本地群资料(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
- *
- * @param json_group_search_groups_param 群列表的参数 array ,Json Key 请参考 @ref GroupSearchParam
- * @param cb 搜索群列表回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * SDK 会搜索群名称包含于关键字列表 keywordList 的所有群并返回群信息列表。关键字列表最多支持5个。
- *
- * __示例__
- * @code{.cpp}
- * Json::Array json_keyword_list;
- * json_keyword_list.append("lamarzhang_group_public");
- *
- * Json::Array json_field_list;
- * json_field_list.append(kTIMGroupSearchFieldKey_GroupId);
- *
- * Json::Object json_obj;
- * json_obj[kTIMGroupSearchParamKeywordList] = json_keyword_list;
- * json_obj[kTIMGroupSearchParamFieldList] = json_field_list;
- * TIMGroupSearchGroups(json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, nullptr);
- * @endcode
- *
- * __回调的 json_param 示例 (Json Key 请参考 @ref GroupDetailInfo)__
- * @code{.cpp}
- *[{
- * "group_de tail_info_add_option": 1,
- * "group_detail_info_create_time": 0,
- * "group_detail_info_custom_info": [{
- * "group_info_custom_string_info_key": "custom_public",
- * "group_info_custom_string_info_value": ""
- * }, {
- * "group_info_custom_string_info_key": "custom_public2",
- * "group_info_custom_string_info_value": ""
- * }, {
- * "group_info_custom_string_info_key": "group_info",
- * "group_info_custom_string_info_value": ""
- * }, {
- * "group_info_custom_string_info_key": "group_test",
- * "group_info_custom_string_info_value": ""
- * }],
- * "group_detail_info_face_url": "",
- * "group_detail_info_group_id": "lamarzhang_group_public",
- * "group_detail_info_group_name": "lamarzhang_group_public",
- * "group_detail_info_group_type": 0,
- * "group_detail_info_info_seq": 9,
- * "group_detail_info_introduction": "Instroduction",
- * "group_detail_info_is_shutup_all": false,
- * "group_detail_info_last_info_time": 1620810613,
- * "group_detail_info_last_msg_time": 1620810613,
- * "group_detail_info_max_member_num": 1000,
- * "group_detail_info_member_num": 2,
- * "group_detail_info_next_msg_seq": 2,
- * "group_detail_info_notification": "Notification",
- * "group_detail_info_online_member_num": 0,
- * "group_detail_info_owner_identifier": "lamarzhang",
- * "group_detail_info_searchable": true,
- * "group_detail_info_visible": true
- * }]
- * @endcode
- */
- TIM_API int TIMGroupSearchGroups(const char *json_group_search_groups_param, TIMCommCallback cb, const void* user_data);
- /**
- * 5.3 搜索云端群资料(8.4 及以上版本支持)
- *
- * @param json_group_search_groups_param 群列表的参数 array ,Json Key 请参考 @ref GroupSearchParam
- * @param cb 搜索群列表回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @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)
- *
- * __示例__
- * @code{.cpp}
- * json::Array json_keyword_list;
- * json_keyword_list.push_back("啊");
- * json::Object json_obj;
- * json_obj[kTIMGroupSearchParamKeywordList] = json_keyword_list;
- * json_obj[kTIMGroupSearchParamKeywordListMatchType] = TIMKeywordListMatchType_Or;
- * json_obj[kTIMGroupSearchParamSearchCount] = 20;
- * json_obj[kTIMGroupSearchParamSearchCursor] = "";
- * TIMGroupSearchCloudGroups(json::Serialize(json_obj).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * Printf("SearchCloudGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- *
- * __回调的 json_param 示例 (Json Key 请参考 @ref GroupSearchResult)__
- * @code{.cpp}
- * {
- * "group_search_result_is_finished": true,
- * "group_search_result_total_count": 3
- * "group_search_result_next_cursor": "",
- * "group_search_result_group_list": [
- * {
- * "group_base_info_face_url": "",
- * "group_base_info_group_id": "groupID",
- * "group_base_info_group_name": "groupA",
- * "group_base_info_group_type": 0,
- * "group_base_info_info_seq": 0,
- * "group_base_info_is_shutup_all": false,
- * "group_base_info_latest_seq": 0,
- * "group_base_info_msg_flag": 0,
- * "group_base_info_readed_seq": 0,
- * "..."
- * },
- * ],
- * }
- * @endcode
- */
- TIM_API int TIMGroupSearchCloudGroups(const char *json_group_search_groups_param, TIMCommCallback cb, const void* user_data);
- /**
- * 5.4 修改群信息
- *
- * @param json_group_modifyinfo_param 设置群信息参数的 Json 字符串, Json Key 请参考 @ref GroupModifyInfoParam
- * @param cb 设置群信息成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 修改群主(群转让)的权限说明:
- * - 只有群主才有权限进行群转让操作。
- * - 直播大群不能进行群转让操作。
- * 修改群其他信息的权限说明:
- * - 对于公开群、聊天室和直播大群,只有群主或者管理员可以修改群简介。
- * - 对于私有群,任何人可修改群简介。
- * kTIMGroupModifyInfoParamModifyFlag 可以按位或设置多个值。不同的flag设置不同的键,详情请参考 @ref GroupModifyInfoParam
- *
- * __设置群所有者示例__
- * @code{.cpp}
- * Json::Value json_value_modifygroupinfo;
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamGroupId] = "first group id";
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamModifyFlag] = kTIMGroupModifyInfoFlag_Owner;
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamOwner] = "user2";
- *
- * int ret = TIMGroupModifyGroupInfo(json_value_modifygroupinfo.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, nullptr);
- *
- * // json_value_modifygroupinfo.toStyledString().c_str() 得到json_group_modifyinfo_param JSON 字符串如下
- * {
- * "group_modify_info_param_group_id" : "first group id",
- * "group_modify_info_param_modify_flag" : -2147483648,
- * "group_modify_info_param_owner" : "user2"
- * }
- * @endcode
- *
- * __设置群名称和群通知示例__
- * @code{.cpp}
- * Json::Value json_value_modifygroupinfo;
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamGroupId] = "first group id";
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamModifyFlag] = kTIMGroupModifyInfoFlag_Name | kTIMGroupModifyInfoFlag_Notification;
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamGroupName] = "first group name to other name";
- * json_value_modifygroupinfo[kTIMGroupModifyInfoParamNotification] = "first group notification";
- *
- * int ret = TIMGroupModifyGroupInfo(json_value_modifygroupinfo.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, nullptr);
- *
- * // json_value_modifygroupinfo.toStyledString().c_str() 得到json_group_modifyinfo_param JSON 字符串如下
- * {
- * "group_modify_info_param_group_id" : "first group id",
- * "group_modify_info_param_group_name" : "first group name to other name",
- * "group_modify_info_param_modify_flag" : 3,
- * "group_modify_info_param_notification" : "first group notification"
- * }
- * @endcode
- */
- TIM_API int TIMGroupModifyGroupInfo(const char* json_group_modifyinfo_param, TIMCommCallback cb, const void* user_data);
- /**
- * 5.5 初始化群属性,会清空原有的群属性列表
- *
- * @param group_id 群 ID
- * @param json_group_attributes 群属性的列表, 群属性的 Json Key 请参考 @ref GroupAttributes
- * @param cb 初始化群属性的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note attributes 的使用限制如下:
- * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
- * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
- * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
- * - key 最多支持 16 个,长度限制为 32 字节;
- * - value 长度限制为 4k;
- * - 总的 attributes(包括 key 和 value)限制为 16k;
- * - @ref TIMGroupInitGroupAttributes、 @ref TIMGroupSetGroupAttributes @ref TIMGroupDeleteGroupAttributes 接口合并计算, SDK 限制为 5 秒 10 次,超过后回调 8511 错误码;后台限制 1 秒 5 次,超过后返回 10049 错误码;
- * - @ref TIMGroupGetGroupAttributes 接口 SDK 限制 5 秒 20 次;
- * - 从 5.6 版本开始,当每次APP启动后初次修改群属性时,请您先调用 @ref TIMGroupGetGroupAttributes 拉取到最新的群属性之后,再发起修改操作;
- * - 从 5.6 版本开始,当多个用户同时修改同一个群属性时,只有第一个用户可以执行成功,其它用户会收到 10056 错误码;收到这个错误码之后,请您调用 @ref TIMGroupGetGroupAttributes 把本地保存的群属性更新到最新之后,再发起修改操作。
- *
- * __示例__
- * @code{.cpp}
- * Json::Object json_obj;
- * json_obj[TIMGroupAttributeKey] = "attribute_key1";
- * json_obj[TIMGroupAttributeValue] = "attribute_value1";
- *
- * Json::Array json_array;
- * json_array.append(json_obj);
- * TIMGroupInitGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * // json_param 为空字符串,判断 code 即可
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupInitGroupAttributes(const char *group_id, const char *json_group_attributes, TIMCommCallback cb, const void* user_data);
- /**
- * 5.6 设置群属性,已有该群属性则更新其 value 值,没有该群属性则添加该群属性
- *
- * @param group_id 群 ID
- * @param json_group_attributes 群属性的列表, 群属性的 Json Key 请参考 @ref GroupAttributes
- * @param cb 设置群属性的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
- * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
- * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
- *
- * __示例__
- * @code{.cpp}
- * Json::Object json_obj;
- * json_obj[TIMGroupAttributeKey] = "attribute_key1";
- * json_obj[TIMGroupAttributeValue] = "attribute_value2";
- *
- * Json::Array json_array;
- * json_array.append(json_obj);
- * TIMGroupSetGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * // json_param 为空字符串,判断 code 即可
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupSetGroupAttributes(const char *group_id, const char *json_group_attributes, TIMCommCallback cb, const void* user_data);
- /**
- * 5.7 删除群属性
- * @param group_id 群 ID
- * @param json_keys 群属性 key 的列表
- * @param cb 删除群属性的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
- * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
- * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
- *
- * __示例__
- * @code{.cpp}
- * Json::Array json_array;
- * json_array.append("attribute_key1");
- *
- * TIMGroupDeleteGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str() ,[](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * // json_param 无 json 字符串带回,判断 code 即可
- * printf("InitGroupAttributes code:%d|desc:%s|json_param %s\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupDeleteGroupAttributes(const char *group_id, const char *json_keys, TIMCommCallback cb, const void* user_data);
- /**
- * 5.8 获取群指定属性,若传入的 json_keys 为空,则获取所有群属性。
- *
- * @param group_id 群 ID
- * @param json_keys 群属性的 key 列表,若传入为 "", 则获取所有属性列表
- * @param cb 获取群指定属性的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 6.7 及其以前版本,只支持 AVChatRoom 直播群;
- * - 从 6.8 版本开始,同时支持 AVChatRoom、Public、Meeting、Work 四种群类型;
- * - 从 7.0 版本开始,除了话题外,群属性支持所有的群类型;
- *
- * __示例__
- * @code{.cpp}
- * Json::Array json_array;
- * json_array.append("attribute_key1");
- *
- * TIMGroupGetGroupAttributes("lamarzhang_group_public", json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("InitGroupAttributes code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- *
- * __回调的 json_param 示例 (Json key 请参考 @ref GroupAttributes)__
- * @code{.json}
- * [{
- * "group_attribute_key": "attribute_key1",
- * "group_attribute_value": "attribute_value1"
- * }]
- * @endcode
- */
- TIM_API int TIMGroupGetGroupAttributes(const char *group_id, const char *json_keys, TIMCommCallback cb, const void* user_data);
- /**
- * 5.9 获取指定群在线人数
- *
- * @param group_id 群 ID
- * @param cb 获取指定群在线人数的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - IMSDK 7.3 以前的版本仅支持直播群( AVChatRoom);
- * - IMSDK 7.3 及其以后的版本支持所有群类型。
- *
- * __示例__
- * @code{.cpp}
- * TIMGroupGetOnlineMemberCount("lamarzhang_group_public", [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, nullptr);
- * @endcode
- *
- * __回调的 json_param 的示例(Json Key 请参考 @ref GroupGetOnlineMemberCountResult)__
- * @code{.json}
- * {"group_get_online_member_count_result":0}
- * @endcode
- */
- TIM_API int TIMGroupGetOnlineMemberCount(const char* group_id, TIMCommCallback cb, const void* user_data);
- /**
- * 5.10 设置群计数器(7.0 及其以上版本支持)
- *
- * @param group_id 群 ID
- * @param json_group_counter_array 群计数器信息列表,群计数器 Json Key 请参考 @ref TIMGroupCounter
- * @param cb 设置群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该计数器的 key 如果存在,则直接更新计数器的 value 值;如果不存在,则添加该计数器的 key-value;
- * - 当群计数器设置成功后,在回调 cb 中会返回最终成功设置的群计数器信息;
- * - 除了社群和话题,群计数器支持所有的群组类型。
- *
- * __示例__
- * @code{.cpp}
- * json::Object json_group_counter;
- * json_group_counter[kTIMGroupCounterKey] = "test_counter";
- * json_group_counter[kTIMGroupCounterValue] = 100;
- *
- * json::Array json_group_counter_array;
- * json_group_counter_array.push_back(json_group_counter);
- *
- * TIMGroupSetGroupCounters(GetGroupID().c_str(), json::Serialize(json_group_counter_array).c_str(),
- * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * Printf("SetGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupSetGroupCounters(const char* group_id, const char* json_group_counter_array, TIMCommCallback cb, const void* user_data);
- /**
- * 5.11 获取群计数器(7.0 及其以上版本支持)
- *
- * @param group_id 群 ID
- * @param json_group_counter_key_array 需要获取的群计数器的 key 列表,群计数器 Json Key 请参考 @ref TIMGroupCounter
- * @param cb 获取群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 如果传入的 json_group_counter_key_array 为空,则表示获取群内的所有计数器;
- * - 除了社群和话题,群计数器支持所有的群组类型。
- *
- * __示例__
- * @code{.cpp}
- * json::Array json_group_counter_key_array;
- * json_group_counter_key_array.push_back("test_counter");
- *
- * TIMGroupGetGroupCounters(GetGroupID().c_str(), json::Serialize(json_group_counter_key_array).c_str(),
- * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * Printf("GetGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupGetGroupCounters(const char* group_id, const char* json_group_counter_key_array, TIMCommCallback cb, const void* user_data);
- /**
- * 5.12 递增群计数器(7.0 及其以上版本支持)
- *
- * @param group_id 群 ID
- * @param group_counter_key 群计数器的 key
- * @param group_counter_value 群计数器的递增变化量 value
- * @param cb 递增群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 group_counter_value 作递增操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 group_counter_value 作递增操作;
- * - 除了社群和话题,群计数器支持所有的群组类型。
- *
- * __示例__
- * @code{.cpp}
- * TIMGroupIncreaseGroupCounter(GetGroupID().c_str(), "key1", 2
- * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("IncreaseGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupIncreaseGroupCounter(const char* group_id, const char* group_counter_key, int64_t group_counter_value, TIMCommCallback cb, const void* user_data);
- /**
- * 5.13 递减群计数器(7.0 及其以上版本支持)
- *
- * @param group_id 群 ID
- * @param group_counter_key 群计数器的 key
- * @param group_counter_value 群计数器的递减变化量 value
- * @param cb 递减群计数器的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该计数器的 key 如果存在,则直接在当前值的基础上根据传入的 group_counter_value 作递减操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 group_counter_value 作递减操作
- * - 除了社群和话题,群计数器支持所有的群组类型。
- *
- * __示例__
- * @code{.cpp}
- * TIMGroupDecreaseGroupCounters(GetGroupID().c_str(), "key1", 2,
- * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * Printf("DecreaseGroupCounters code:%d|desc:%s|json_param:%s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupDecreaseGroupCounter(const char* group_id, const char* group_counter_key, int64_t group_counter_value, TIMCommCallback cb, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 六. 社群-话题相关 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 6.1 获取当前用户已经加入的支持话题的社群列表
- *
- * @param cb 获取社群列表的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * __示例__
- * @code{.cpp}
- * TIMGroupGetJoinedCommunityList([](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMGroupGetJoinedCommunityList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupGetJoinedCommunityList(TIMCommCallback cb, const void* user_data);
- /**
- * 6.2 创建话题
- *
- * @param group_id 群 ID
- * @param json_topic_info 话题信息, Json Key 请参考 @ref TIMGroupTopicInfo
- * @param cb 创建话题的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = GetCommunityID();
- *
- * json::Object topic_info;
- * topic_info[kTIMGroupTopicInfoTopicID] = GetTopicID();
- * topic_info[kTIMGroupTopicInfoTopicName] = "topic name";
- *
- * 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) {
- * printf("TIMGroupCreateTopicInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupCreateTopicInCommunity(const char *group_id, const char *json_topic_info, TIMCommCallback cb, const void* user_data);
- /**
- * 6.3 删除话题
- *
- * @param group_id 群 ID
- * @param json_topic_id_array 话题 ID 列表
- * @param cb 删除话题的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = GetCommunityID();
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * 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) {
- * printf("TIMGroupDeleteTopicFromCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupDeleteTopicFromCommunity(const char *group_id, const char *json_topic_id_array, TIMCommCallback cb, const void* user_data);
- /**
- * 6.4 修改话题信息
- *
- * @param json_topic_info 话题信息, Json Key 请参考 @ref TIMGroupTopicInfo
- * @param cb 修改话题信息的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * __示例__
- * @code{.cpp}
- * json::Object topic_info;
- * topic_info[kTIMGroupTopicInfoTopicID] = GetTopicID();
- * topic_info[kTIMGroupTopicInfoTopicName] = "topic name";
- * topic_info[kTIMGroupTopicInfoNotification] = "topic notification";
- * topic_info[kTIMGroupTopicInfoModifyFlag] = kTIMGroupModifyInfoFlag_Name |
- * kTIMGroupModifyInfoFlag_Notification;
- *
- * TIMGroupSetTopicInfo(json::Serialize(topic_info).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMGroupSetTopicInfo code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupSetTopicInfo(const char *json_topic_info, TIMCommCallback cb, const void* user_data);
- /**
- * 6.5 获取话题列表
- *
- * @param group_id 群 ID
- * @param json_topic_id_array 话题 ID 列表
- * @param cb 删除话题的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note: json_topic_id_array 传空时,获取此社群下的所有话题列表
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = GetCommunityID();
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * 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) {
- * printf("TIMGroupGetTopicInfoList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMGroupGetTopicInfoList(const char *group_id, const char *json_topic_id_array, TIMCommCallback cb, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 七. 群成员管理相关 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 7.1 获取群成员信息列表
- *
- * @param json_group_getmeminfos_param 获取群成员信息列表参数的 Json 字符串, Json Key 请参考 @ref GroupMemberGetInfoOption
- * @param cb 获取群成员信息列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 普通群(工作群、会议群、公开群、社群)的限制:
- * - kTIMGroupMemberGetInfoOptionRoleFlag 只能设置为 TIMGroupMemberRoleFlag 定义的数值,SDK 会返回指定角色的成员。
- *
- * 直播群(AVChatRoom)的限制:
- * - 如果设置 kTIMGroupMemberGetInfoOptionRoleFlag 为 TIMGroupMemberRoleFlag 定义的数值,SDK 返回全部成员。返回的人数规则为:拉取最近入群群成员最多 1000 人,新进来的成员排在前面,需要升级旗舰版,并且在 [控制台](https://console.cloud.tencent.com/im) 开启“直播群在线成员列表”开关(6.3 及以上版本支持)。
- * - 如果设置 kTIMGroupMemberGetInfoOptionRoleFlag 为群成员自定义标记,旗舰版支持拉取指定标记的成员列表。标记群成员的设置请参考 @ref TIMGroupMarkGroupMemberList
- * - 程序重启后,请重新加入群组,否则拉取群成员会报 10007 错误码。
- * - 群成员资料信息仅支持 userID | nickName | faceURL | role 字段。
- *
- * __示例__
- * @code{.cpp}
- * Json::Value identifiers(Json::arrayValue);
- * ...
- * Json::Value customs(Json::arrayValue);
- * ...
- * Json::Value option;
- * option[kTIMGroupMemberGetInfoOptionInfoFlag] = kTIMGroupMemberInfoFlag_None;
- * option[kTIMGroupMemberGetInfoOptionRoleFlag] = kTIMGroupMemberRoleFlag_All;
- * option[kTIMGroupMemberGetInfoOptionCustomArray] = customs;
- * Json::Value getmeminfo_opt;
- * getmeminfo_opt[kTIMGroupGetMemberInfoListParamGroupId] = group_id;
- * getmeminfo_opt[kTIMGroupGetMemberInfoListParamIdentifierArray] = identifiers;
- * getmeminfo_opt[kTIMGroupGetMemberInfoListParamOption] = option;
- * getmeminfo_opt[kTIMGroupGetMemberInfoListParamNextSeq] = 0;
- *
- * int ret = TIMGroupGetMemberInfoList(getmeminfo_opt.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, this);
- *
- * // getmeminfo_opt.toStyledString().c_str() 得到json_group_getmeminfos_param JSON 字符串如下
- * {
- * "group_get_members_info_list_param_group_id" : "first group id",
- * "group_get_members_info_list_param_identifier_array" : [],
- * "group_get_members_info_list_param_next_seq" : 0,
- * "group_get_members_info_list_param_option" : {
- * "group_member_get_info_option_custom_array" : [],
- * "group_member_get_info_option_info_flag" : 0,
- * "group_member_get_info_option_role_flag" : 0
- * }
- * }
- * @endcode
- */
- TIM_API int TIMGroupGetMemberInfoList(const char* json_group_getmeminfos_param, TIMCommCallback cb, const void* user_data);
- /**
- * 7.2 搜索本地群成员资料(5.4.666 及以上版本支持,需要您购买旗舰版套餐)
- *
- * @param json_group_search_group_members_param 群成员的列表, Json Key 请参考 @ref GroupMemberSearchParam
- * @param cb 搜索群成员列表的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * SDK 会在本地搜索指定群 ID 列表中,群成员信息(名片、好友备注、昵称、userID)包含于关键字列表 keywordList 的所有群成员并返回群 ID 和群成员列表的 map,关键字列表最多支持5个。
- *
- * __示例__
- * @code{.cpp}
- * Json::Array json_groupid_list;
- * json_groupid_list.append("lamarzhang_group_public");
- *
- * Json::Array json_keyword_list;
- * json_keyword_list.append("98826");
- *
- * Json::Array json_field_list;
- * json_field_list.append(kTIMGroupMemberSearchFieldKey_Identifier);
- *
- * Json::Object json_obj;
- * json_obj[TIMGroupMemberSearchParamGroupidList] = json_groupid_list;
- * json_obj[TIMGroupMemberSearchParamKeywordList] = json_keyword_list;
- * json_obj[TIMGroupMemberSearchParamFieldList] = json_field_list;
- * TIMGroupSearchGroupMembers(json_obj.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, nullptr);
- * @endcode
- *
- * __回调的 json_param 示例 (Json Key 请参考 @ref GroupGetOnlineMemberCountResult)__
- * @code{.json}
- * [{
- * "group_search_member_result_groupid": "lamarzhang_group_public",
- * "group_search_member_result_member_info_list": [{
- * "group_member_info_custom_info": [{
- * "group_info_custom_string_info_key": "group_member_p",
- * "group_info_custom_string_info_value": ""
- * }, {
- * "group_info_custom_string_info_key": "group_member_p2",
- * "group_info_custom_string_info_value": ""
- * }],
- * "group_member_info_identifier": "98826",
- * "group_member_info_join_time": 1620810613,
- * "group_member_info_member_role": 4,
- * "group_member_info_msg_flag": 0,
- * "group_member_info_msg_seq": 0,
- * "group_member_info_name_card": "",
- * "group_member_info_shutup_time": 0
- * }]
- * }]
- * @endcode
- */
- TIM_API int TIMGroupSearchGroupMembers(const char *json_group_search_group_members_param, TIMCommCallback cb, const void* user_data);
- /**
- * 7.3 搜索云端群成员资料(8.4 及以上版本支持)
- *
- * @param json_group_search_cloud_group_members_param 群列表的参数 array ,Json Key 请参考 @ref GroupMemberSearchParam
- * @param cb 搜索群列表回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @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)
- *
- * __示例__
- * @code{.cpp}
- * json::Array json_keyword_list;
- * json_keyword_list.push_back("测试");
- * json::Object json_obj;
- * json_obj[TIMGroupMemberSearchParamKeywordList] = json_keyword_list;
- * json_obj[TIMGroupMemberSearchParamKeywordListMatchType] = TIMKeywordListMatchType_Or;
- * json_obj[TIMGroupMemberSearchParamSearchCount] = 20;
- * json_obj[TIMGroupMemberSearchParamSearchCursor] = "";
- * TIMGroupSearchCloudGroupMembers(json::Serialize(json_obj).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * Printf("TIMGroupSearchCloudGroupMembers code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- *
- * __回调的 json_param 示例 (Json Key 请参考 @ref GroupSearchResult)__
- * @code{.cpp}
- * {
- * "group_member_search_result_is_finished": false,
- * "group_member_search_result_next_cursor": "_YMEo64o8LCv9_8azJx7GxJ5K-9K_oM42TgvcqBzClg",
- * "group_member_search_result_total_count": 115,
- * "group_member_search_result_member_list": "[{"group_search_member_result_groupid":"@TGS#1JDXSOIOA","group_search_member_result_member_info_list":""}]",
- * }
- * @endcode
- */
- TIM_API int TIMGroupSearchCloudGroupMembers(const char *json_group_search_cloud_group_members_param, TIMCommCallback cb, const void* user_data);
- /**
- * 7.4 修改群成员信息
- *
- * @param json_group_modifymeminfo_param 设置群信息参数的 Json 字符串, Json Key 请参考 @ref GroupModifyMemberInfoParam
- * @param cb 设置群成员信息成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 只有群主或者管理员可以进行对群成员的身份进行修改。
- * - 只有群主或者管理员可以进行对群成员进行禁言。
- * kTIMGroupModifyMemberInfoParamModifyFlag 可以按位或设置多个值,不同的 flag 设置不同的键, flag 信息请参考 @ref TIMGroupMemberModifyInfoFlag
- *
- * __示例__
- * @code{.cpp}
- * Json::Value json_value_setgroupmeminfo;
- * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamGroupId] = "third group id";
- * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamIdentifier] = "user2";
- * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamModifyFlag] = kTIMGroupMemberModifyFlag_MemberRole | kTIMGroupMemberModifyFlag_NameCard;
- * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamMemberRole] = kTIMMemberRole_Admin;
- * json_value_setgroupmeminfo[kTIMGroupModifyMemberInfoParamNameCard] = "change name card";
- *
- * int ret = TIMGroupModifyMemberInfo(json_value_setgroupmeminfo.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- *
- * }, nullptr);
- *
- * // json_value_modifygroupmeminfo.toStyledString().c_str() 得到 json_group_modifymeminfo_param JSON 字符串如下
- * {
- * "group_modify_member_info_group_id" : "third group id",
- * "group_modify_member_info_identifier" : "user2",
- * "group_modify_member_info_member_role" : 1,
- * "group_modify_member_info_modify_flag" : 10,
- * "group_modify_member_info_name_card" : "change name card"
- * }
- * @endcode
- */
- TIM_API int TIMGroupModifyMemberInfo(const char* json_group_modifymeminfo_param, TIMCommCallback cb, const void* user_data);
- /**
- * 7.5 邀请加入群组
- *
- * @param json_group_invite_param 邀请加入群组的 Json 字符串, Json Key 请参考 @ref GroupInviteMemberParam
- * @param cb 邀请加入群组成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 只有私有群可以拉用户入群
- * - 公开群、聊天室邀请用户入群
- * - 需要用户同意;直播大群不能邀请用户入群。
- * 后台限制单次邀请的群成员个数不能超过 20。
- * 此接口支持批量邀请成员加入群组, Json Key详情请参考 @ref GroupInviteMemberParam
- *
- * __示例__
- * @code{.cpp}
- * Json::Value json_value_invite;
- * json_value_invite[kTIMGroupInviteMemberParamGroupId] = group_id;
- * json_value_invite[kTIMGroupInviteMemberParamUserData] = "userdata";
- * json_value_invite[kTIMGroupInviteMemberParamIdentifierArray].append("user1");
- * json_value_invite[kTIMGroupInviteMemberParamIdentifierArray].append("user2");
- *
- * const void* user_data = nullptr; // 回调函数回传;
- * int ret = TIMGroupInviteMember(json_value_invite.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
- * if (ERR_SUCC != code) {
- * // 邀请成员列表失败
- * return;
- * }
- * // 邀请成员列表成功,解析JSON获取每个成员邀请结果
- * }, user_data);
- * if (TIM_SUCC != ret) {
- * // TIMGroupInviteMember 接口调用失败
- * }
- *
- * // json_value_invite.toStyledString().c_str() 得到 json_group_invite_param JSON 字符串如下
- * {
- * "group_invite_member_param_group_id" : "first group id",
- * "group_invite_member_param_identifier_array" : [ "user1", "user2" ],
- * "group_invite_member_param_user_data" : "userdata"
- * }
- * @endcode
- */
- TIM_API int TIMGroupInviteMember(const char* json_group_invite_param, TIMCommCallback cb, const void* user_data);
- /**
- * 7.6 删除群组成员(直播群删除群组成员从 6.6 版本开始支持,需要您购买旗舰版套餐)
- *
- * @param json_group_delete_param 删除群组成员的 Json 字符串, Json Key 请参考 @ref GroupDeleteMemberParam
- * @param cb 删除群组成员成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 权限说明:
- * - 对于私有群:只有创建者可删除群组成员。
- * - 对于公开群和聊天室:只有管理员和群主可以踢人。
- * - 对于直播大群:6.6 之前版本只支持禁言(muteGroupMember),不支持踢人。6.6 及以上版本支持禁言和踢人。
- * 此接口支持批量删除群成员, Json Key详情请参考 @ref GroupDeleteMemberParam
- * 该接口其他使用限制请查阅 [官网](https://cloud.tencent.com/document/product/269/75400#.E8.B8.A2.E4.BA.BA)
- *
- * __示例__
- * @code{.cpp}
- * Json::Value json_value_delete;
- * json_value_delete[kTIMGroupDeleteMemberParamGroupId] = group_id;
- * json_value_delete[kTIMGroupDeleteMemberParamUserData] = "reason";
- * json_value_delete[kTIMGroupDeleteMemberParamIdentifierArray].append("user1");
- * json_value_delete[kTIMGroupDeleteMemberParamIdentifierArray].append("user2");
- * json_value_delete[kTIMGroupDeleteMemberParamDuration] = 10;
- *
- * int ret = TIMGroupDeleteMember(json_value_delete.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_params, const void* user_data) {
- *
- * }, this));
- *
- * // json_value_delete.toStyledString().c_str() 得到 json_group_delete_param JSON 字符串如下
- * {
- * "group_delete_member_param_group_id" : "third group id",
- * "group_delete_member_param_identifier_array" : [ "user2", "user3" ],
- * "group_delete_member_param_user_data" : "reason"
- * }
- * @endcode
- */
- TIM_API int TIMGroupDeleteMember(const char* json_group_delete_param, TIMCommCallback cb, const void* user_data);
- /**
- * 7.7 标记群成员(从 6.6 版本开始支持,需要您购买旗舰版套餐)
- *
- * @param group_id 群 ID。
- * @param member_array 群成员 ID 列表。
- * @param mark_type 标记类型。数字类型,大于等于 1000,您可以自定义,一个直播群里最多允许定义 10 个标记。
- * @param enable_mark true 表示添加标记,false 表示移除标记。
- * @param cb 设置/移除群成员自定义角色成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 仅支持直播群。
- * - 只有群主才有权限标记群组中其他人。
- *
- * __示例__
- * @code{.cpp}
- * std::string group_id = "avchatroom_group_id";
- * uint32_t mark_type = 30005;
- * bool enable_mark = true;
- *
- * json::Array member_array;
- * member_array.push_back("user1");
- * member_array.push_back("user2");
- *
- * TIMGroupMarkGroupMemberList(group_id.c_str(), json::Serialize(member_array).c_str(), mark_type, enable_mark,
- * [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * Printf("MarkGroupMemberList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- 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);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 八. 加群申请相关 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 8.1 获取群未决信息列表
- *
- * @param json_group_getpendency_list_param 设置群未决信息参数的 Json 字符串, Json Key 请参考 @ref GroupPendencyOption
- * @param cb 获取群未决信息列表成功与否的回调。回调函数定义和参数解析请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 此处的群未决消息泛指所有需要审批的群相关的操作。例如:加群待审批,拉人入群待审批等等。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已决标志。
- * - UserA 申请加入群 GroupA,则群管理员可获取此未决相关信息,UserA 因为没有审批权限,不需要获取此未决信息。
- * - 如果 AdminA 拉 UserA 进去 GroupA,则 UserA 可以拉取此未决相关信息,因为该未决信息待 UserA 审批
- * - kTIMGroupPendencyOptionStartTime 设置拉取时间戳,第一次请求填 0,后边根据 server 返回的 @ref GroupPendencyResult 键 kTIMGroupPendencyResultNextStartTime 指定的时间戳进行填写。
- * - kTIMGroupPendencyOptionMaxLimited 拉取的建议数量, server 可根据需要返回或多或少,不能作为完成与否的标志
- * - 权限说明:
- * - 只有审批人有权限拉取相关未决信息。
- *
- * __示例__
- * @code{.cpp}
- * Json::Value get_pendency_option;
- * get_pendency_option[kTIMGroupPendencyOptionStartTime] = 0;
- * get_pendency_option[kTIMGroupPendencyOptionMaxLimited] = 0;
- * int ret = TIMGroupGetPendencyList(get_pendency_option.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * if (ERR_SUCC != code) {
- * // 获取群未决信息失败
- * return;
- * }
- * }, nullptr);
- *
- * // get_pendency_option.toStyledString().c_str() 得到json_group_getpendency_list_param JSON 字符串如下
- * {
- * "group_pendency_option_max_limited" : 0,
- * "group_pendency_option_start_time" : 0
- * }
- * @endcode
- */
- TIM_API int TIMGroupGetPendencyList(const char* json_group_getpendency_list_param, TIMCommCallback cb, const void* user_data);
- /**
- * 8.2 处理群未决信息
- *
- * @param json_group_handle_pendency_param 处理群未决信息参数的 Json 字符串, Json Key 请参考 @ref GroupHandlePendencyParam
- * @param cb 处理群未决信息成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 对于群的未决信息,ImSDK增加了处理接口。审批人可以选择对单条信息进行同意或者拒绝。已处理成功过的未决信息不能再次处理。
- * - 处理未决信息时需要带一个未决信息 @ref GroupPendency, 可以在接口 @ref TIMGroupGetPendencyList 返回的未决信息列表将未决信息保存下来,
- * 在处理未决信息的时候将 @ref GroupPendency 传入键 kTIMGroupHandlePendencyParamPendency 。
- *
- * __示例__
- * @code{.cpp}
- * Json::Value pendency; //构造 GroupPendency
- * ...
- * Json::Value handle_pendency;
- * handle_pendency[kTIMGroupHandlePendencyParamIsAccept] = true;
- * handle_pendency[kTIMGroupHandlePendencyParamHandleMsg] = "I accept this pendency";
- * handle_pendency[kTIMGroupHandlePendencyParamPendency] = pendency;
- * int ret = TIMGroupHandlePendency(handle_pendency.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * if (ERR_SUCC != code) {
- * // 上报群未决信息已读失败
- * return;
- * }
- * }, nullptr);
- *
- * // handle_pendency.toStyledString().c_str() 得到json_group_handle_pendency_param JSON 字符串如下
- * {
- * "group_handle_pendency_param_handle_msg" : "I accept this pendency",
- * "group_handle_pendency_param_is_accept" : true,
- * "group_handle_pendency_param_pendency" : {
- * "group_pendency_add_time" : 1551414487947,
- * "group_pendency_apply_invite_msg" : "Want Join Group, Thank you",
- * "group_pendency_approval_msg" : "",
- * "group_pendency_form_identifier" : "user2",
- * "group_pendency_form_user_defined_data" : "",
- * "group_pendency_group_id" : "four group id",
- * "group_pendency_handle_result" : 0,
- * "group_pendency_handled" : 0,
- * "group_pendency_pendency_type" : 0,
- * "group_pendency_to_identifier" : "user1",
- * "group_pendency_to_user_defined_data" : ""
- * }
- * }
- * @endcode
- */
- TIM_API int TIMGroupHandlePendency(const char* json_group_handle_pendency_param, TIMCommCallback cb, const void* user_data);
- /**
- * 8.3 上报群未决信息已读
- *
- * @param time_stamp 已读时间戳(单位秒)。与 @ref GroupPendency 键 kTIMGroupPendencyAddTime 指定的时间比较
- * @param cb 上报群未决信息已读成功与否的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * 时间戳time_stamp以前的群未决请求都将置为已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。
- */
- TIM_API int TIMGroupReportPendencyReaded(uint64_t time_stamp, TIMCommCallback cb, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 九. 群组系统通知相关 Json Key 定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 9.1 GroupTipGroupChangeInfo(群组系统消息-群组信息修改)
- // uint @ref TIMGroupTipGroupChangeFlag, 只读, 群消息修改群信息标志
- static const char* kTIMGroupTipGroupChangeInfoFlag = "group_tips_group_change_info_flag";
- // string, 只读, 修改的后值,不同的 info_flag 字段,具有不同的含义
- static const char* kTIMGroupTipGroupChangeInfoValue = "group_tips_group_change_info_value";
- // string, 只读, 自定义信息对应的 key 值,只有 info_flag 为 kTIMGroupTipChangeFlag_Custom 时有效
- static const char* kTIMGroupTipGroupChangeInfoKey = "group_tips_group_change_info_key";
- // bool, 只读, 根据变更类型表示不同的值,当前在 info_flag 为 kTIMGroupTipChangeFlag_ShutupAll 或者 kTIMGroupTipChangeFlag_EnablePermissionGroup 时有效
- static const char* kTIMGroupTipGroupChangeInfoBoolValue = "group_tips_group_change_info_bool_value";
- // int, 只读, 根据变更类型表示不同的值
- // @note 仅针对以下类型有效:
- // - 从 6.5 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_MessageReceiveOpt 时,该字段标识了群消息接收选项发生了变化,其取值详见 @ref TIMReceiveMessageOpt
- // - 从 6.5 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_GroupAddOpt 时,该字段标识了申请加群审批选项发生了变化,其取值详见 @ref TIMGroupAddOption
- // - 从 7.1 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_GroupApproveOpt 时,该字段标识了邀请进群审批选项发生了变化,取值类型详见 @ref TIMGroupAddOption
- // - 从 8.4 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_TopicAddOpt 时,该字段标识了申请加私密话题审批选项发生了变化,其取值详见 @ref TIMGroupAddOption
- // - 从 8.4 版本开始,当 info_flag 为 kTIMGroupTipChangeFlag_TopicApproveOpt 时,该字段标识了邀请进私密话题审批选项发生了变化,取值类型详见 @ref TIMGroupAddOption
- static const char* kTIMGroupTipGroupChangeInfoIntValue = "group_tips_group_change_info_int_value";
- // uint64, 只读, 根据变更类型表示不同的值,当前只有 info_flag 为 kTIMGroupTipChangeFlag_DefaultPermissions 时有效
- static const char* kTIMGroupTipGroupChangeInfoUint64Value = "group_tips_group_change_info_uint64_value";
- //------------------------------------------------------------------------------
- // 9.2 GroupTipMemberChangeInfo(群组系统消息-群组成员禁言)
- // string, 只读, 群组成员ID
- static const char* kTIMGroupTipMemberChangeInfoIdentifier = "group_tips_member_change_info_identifier";
- // uint, 只读, 禁言时间
- static const char* kTIMGroupTipMemberChangeInfoShutupTime = "group_tips_member_change_info_shutupTime";
- //------------------------------------------------------------------------------
- // 9.3 GroupTipMemberMarkChangeInfo(群组系统消息-群组成员标记变更)
- // bool, 只读, 群成员被标记或取消标记
- static const char* kTIMGroupTipMemberChangeInfoEnableMark = "group_tips_member_mark_change_info_enableMark";
- // uint, 只读, 标记类型
- static const char* kTIMGroupTipMemberMarkChangeInfoMarkType = "group_tips_member_mark_change_info_markType";
- // array string, 只读, 群成员 userID 列表
- static const char* kTIMGroupTipMemberMarkChangeInfoUserIDList = "group_tips_member_mark_change_info_userIDList";
- //------------------------------------------------------------------------------
- // 9.4 GroupTipsElem(群组系统消息元素)
- // @note
- // - 针对所有群成员,可以通过监听 @ref TIMSetGroupTipsEventCallback 获取
- // uint @ref TIMGroupTipType, 只读, 群消息类型
- static const char* kTIMGroupTipsElemTipType = "group_tips_elem_tip_type";
- // uint @ref TIMGroupJoinType, 只读, 加群类型, @ref TIMGroupTipType 为 kTIMGroupTip_Invite 时有效, 从 8.0 版本开始支持
- static const char* kTIMGroupTipsElemJoinType = "group_tips_elem_join_type";
- // string, 只读, 操作者ID
- static const char* kTIMGroupTipsElemOpUser = "group_tips_elem_op_user";
- // string, 只读, 群组ID
- static const char* kTIMGroupTipsElemGroupId = "group_tips_elem_group_id";
- // array string, 只读, 被操作的账号列表
- static const char* kTIMGroupTipsElemUserArray = "group_tips_elem_user_array";
- // array @ref GroupTipGroupChangeInfo, 只读, 群资料变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_GroupInfoChange 时有效
- static const char* kTIMGroupTipsElemGroupChangeInfoArray = "group_tips_elem_group_change_info_array";
- // array @ref GroupTipMemberChangeInfo, 只读, 群成员变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_MemberInfoChange 时有效
- static const char* kTIMGroupTipsElemMemberChangeInfoArray = "group_tips_elem_member_change_info_array";
- // object @ref UserProfile, 只读, 操作者个人资料
- static const char* kTIMGroupTipsElemOpUserInfo = "group_tips_elem_op_user_info";
- // object @ref GroupMemberInfo, 只读, 群成员信息
- static const char* kTIMGroupTipsElemOpGroupMemberInfo = "group_tips_elem_op_group_memberinfo";
- // array @ref UserProfile, 只读, 被操作者列表资料
- static const char* kTIMGroupTipsElemChangedUserInfoArray = "group_tips_elem_changed_user_info_array";
- // array @ref GroupMemberInfo, 只读, 群成员信息列表
- static const char* kTIMGroupTipsElemChangedGroupMemberInfoArray = "group_tips_elem_changed_group_memberinfo_array";
- // uint, 只读, 当前群成员数,只有当事件消息类型为 kTIMGroupTip_Invite 、 kTIMGroupTip_Quit 、 kTIMGroupTip_Kick 时有效
- static const char* kTIMGroupTipsElemMemberNum = "group_tips_elem_member_num";
- // string, 只读, 操作方平台信息
- static const char* kTIMGroupTipsElemPlatform = "group_tips_elem_platform";
- // array @ref GroupTipMemberMarkChangeInfo, 只读, 群成员标记变更信息列表,仅当 kTIMGroupTipsElemTipType 值为 kTIMGroupTip_MemberMarkChange 时有效
- static const char* kTIMGroupTipsElemMemberMarkInfoArray = "group_tips_elem_member_mark_info_array";
- // value @ref PinnedGroupMessage, 只读,变更的置顶群消息
- static const char* kTIMGroupTipsElemPinnedMessageList = "group_tips_elem_pinned_message_list";
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 十. 群组管理 API 参数相关的 Json Key 定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 10.1 GroupMemberInfo(群成员信息)
- // string, 读写(必填), 群组成员ID
- static const char* kTIMGroupMemberInfoIdentifier = "group_member_info_identifier";
- // string, 只读, 群组 ID
- static const char* kTIMGroupMemberInfoGroupId = "group_member_info_group_id";
- // uint, 只读, 群组成员加入时间
- static const char* kTIMGroupMemberInfoJoinTime = "group_member_info_join_time";
- // uint @ref TIMGroupMemberRole, 读写(选填), 群组成员角色
- static const char* kTIMGroupMemberInfoMemberRole = "group_member_info_member_role";
- // uint @ref TIMReceiveMessageOpt, 只读, 成员接收消息的选项
- static const char* kTIMGroupMemberInfoMsgFlag = "group_member_info_msg_flag";
- // uint, 只读, 消息序列号
- static const char* kTIMGroupMemberInfoMsgSeq = "group_member_info_msg_seq";
- // uint, 只读, 成员禁言时间
- static const char* kTIMGroupMemberInfoShutupTime = "group_member_info_shutup_time";
- // string, 只读, 成员群名片
- static const char* kTIMGroupMemberInfoNameCard = "group_member_info_name_card";
- // string, 只读, 好友昵称
- static const char* kTIMGroupMemberInfoNickName = "group_member_info_nick_name";
- // string, 只读, 好友备注
- static const char* kTIMGroupMemberInfoFriendRemark = "group_member_info_friend_remark";
- // string, 只读, 好友头像
- static const char* kTIMGroupMemberInfoFaceUrl = "group_member_info_face_url";
- // 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)
- static const char* kTIMGroupMemberInfoCustomInfo = "group_member_info_custom_info";
- // string, 只读,群成员是否在线
- static const char* kTIMGroupMemberInfoIsOnline = "group_member_info_is_online";
- // array, 只读, 群成员在线终端列表
- static const char* kTIMGroupMemberInfoOnlineDevices = "group_member_info_online_devices";
- //------------------------------------------------------------------------------
- // 10.2 CreateGroupParam(创建群组接口的参数)
- // string, 只写(必填),群组名称,最长 100 字节,使用 UTF-8 编码,1 个汉字占 3 个字节。
- static const char* kTIMCreateGroupParamGroupName = "create_group_param_group_name";
- // string, 只写(选填), 群组ID,不填时创建成功回调会返回一个后台分配的群ID,如果创建社群(Community)需要自定义群组 ID ,那必须以 "@TGS#_" 作为前缀。
- static const char* kTIMCreateGroupParamGroupId = "create_group_param_group_id";
- // uint @ref TIMGroupType, 只写(选填), 群组类型,默认为Public
- static const char* kTIMCreateGroupParamGroupType = "create_group_param_group_type";
- // bool, 只写(选填), 社群是否支持创建话题, 只在群类型为 Community 时有效
- static const char* kTIMCreateGroupIsSupportTopic = "create_group_param_is_support_topic";
- // array @ref GroupMemberInfo, 只写(选填), 群组初始成员数组,成员个数不能超过 20(7.1 及其以上版本开始限制)
- static const char* kTIMCreateGroupParamGroupMemberArray = "create_group_param_group_member_array";
- // string, 只写(选填), 群组公告
- static const char* kTIMCreateGroupParamNotification = "create_group_param_notification";
- // string, 只写(选填), 群组简介
- static const char* kTIMCreateGroupParamIntroduction = "create_group_param_introduction";
- // string, 只写(选填), 群组头像URL
- static const char* kTIMCreateGroupParamFaceUrl = "create_group_param_face_url";
- // 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)
- static const char* kTIMCreateGroupParamAddOption = "create_group_param_add_option";
- // 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)
- static const char* kTIMCreateGroupParamApproveOption = "create_group_param_approve_option";
- // uint, 只写(选填), 群组最大成员数
- static const char* kTIMCreateGroupParamMaxMemberCount = "create_group_param_max_member_num";
- // 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)
- static const char* kTIMCreateGroupParamCustomInfo = "create_group_param_custom_info";
- // bool, 只写(选填), 开启权限组功能, 仅支持社群, 7.8 版本开始支持。开启后,管理员角色的权限失效,用群权限、话题权限和权限组能力来对社群、话题进行管理。
- static const char* kTIMCreateGroupParamEnablePermissionGroup = "create_group_param_enable_permission_group";
- // uint64, 只写(选填), 群默认权限, 仅支持社群, 7.8 版本开始支持。群成员在没有加入任何权限组时的默认权限,仅在 kTIMCreateGroupParamEnablePermissionGroup 为 true 时生效
- static const char* kTIMCreateGroupParamDefaultPermissions = "create_group_param_default_permissions";
- //------------------------------------------------------------------------------
- // 10.3 CreateGroupResult(创建群组接口的返回)
- // string, 只读, 创建的群ID
- static const char* kTIMCreateGroupResultGroupId = "create_group_result_groupid";
- //------------------------------------------------------------------------------
- // 10.4 GroupSelfInfo(群组内本人的信息)
- // uint, 只读, 加入群组时间
- static const char* kTIMGroupSelfInfoJoinTime = "group_self_info_join_time";
- // uint, 只读, 用户在群组中的角色
- static const char* kTIMGroupSelfInfoRole = "group_self_info_role";
- // uint, 只读, 消息未读计数
- static const char* kTIMGroupSelfInfoUnReadNum = "group_self_info_unread_num";
- // uint @ref TIMReceiveMessageOpt, 只读, 消息接收选项
- static const char* kTIMGroupSelfInfoMsgFlag = "group_self_info_msg_flag";
- //------------------------------------------------------------------------------
- // 10.5 GroupBaseInfo(群组基础信息, 获取已加入群组列表接口的返回信息)
- // string, 只读, 群组ID
- static const char* kTIMGroupBaseInfoGroupId = "group_base_info_group_id";
- // string, 只读, 群组名称
- static const char* kTIMGroupBaseInfoGroupName = "group_base_info_group_name";
- // uint @ref TIMGroupType, 只读, 群组类型
- static const char* kTIMGroupBaseInfoGroupType = "group_base_info_group_type";
- // string, 只读, 群组头像 URL
- static const char* kTIMGroupBaseInfoFaceUrl = "group_base_info_face_url";
- // uint, 只读, 群资料的 Seq,群资料的每次变更都会增加这个字段的值
- static const char* kTIMGroupBaseInfoInfoSeq = "group_base_info_info_seq";
- // uint, 只读, 群最新消息的 Seq。群组内每一条消息都有一条唯一的消息 Seq,且该 Seq 是按照发消息顺序而连续的。从1开始,群内每增加一条消息,LatestSeq 就会增加1
- static const char* kTIMGroupBaseInfoLatestSeq = "group_base_info_latest_seq";
- // uint, 只读, 用户所在群已读的消息Seq
- static const char* kTIMGroupBaseInfoReadedSeq = "group_base_info_readed_seq";
- // uint, 只读, 消息接收选项
- static const char* kTIMGroupBaseInfoMsgFlag = "group_base_info_msg_flag";
- // bool, 只读, 当前群组是否设置了全员禁言
- static const char* kTIMGroupBaseInfoIsShutupAll = "group_base_info_is_shutup_all";
- // object @ref GroupSelfInfo, 只读, 用户所在群的个人信息
- static const char* kTIMGroupBaseInfoSelfInfo = "group_base_info_self_info";
- //------------------------------------------------------------------------------
- // 10.6 GroupInfoCustomString(群资料自定义字段)
- // string, 只写, 自定义字段的 key
- static const char* kTIMGroupInfoCustomStringInfoKey = "group_info_custom_string_info_key";
- // string, 只写, 自定义字段的 value
- static const char* kTIMGroupInfoCustomStringInfoValue = "group_info_custom_string_info_value";
- //------------------------------------------------------------------------------
- // 10.7 GroupDetailInfo(群组详细信息)
- // string, 只读, 群组ID
- static const char* kTIMGroupDetailInfoGroupId = "group_detail_info_group_id";
- // uint @ref TIMGroupType, 只读, 群组类型
- static const char* kTIMGroupDetailInfoGroupType = "group_detail_info_group_type";
- // bool, 只读, 社群是否支持创建话题,只在群类型为 Community 时有效
- static const char* kTIMGroupDetailInfoIsSupportTopic = "group_detail_info_is_support_topic";
- // string, 只读, 群组名称
- static const char* kTIMGroupDetailInfoGroupName = "group_detail_info_group_name";
- // string, 只读, 群组公告
- static const char* kTIMGroupDetailInfoNotification = "group_detail_info_notification";
- // string, 只读, 群组简介
- static const char* kTIMGroupDetailInfoIntroduction = "group_detail_info_introduction";
- // string, 只读, 群组头像URL
- static const char* kTIMGroupDetailInfoFaceUrl = "group_detail_info_face_url";
- // uint, 只读, 创建群组的 UTC 时间戳
- static const char* kTIMGroupDetailInfoCreateTime = "group_detail_info_create_time";
- // uint, 只读, 群资料的Seq,群资料的每次变更都会增加这个字段的值
- static const char* kTIMGroupDetailInfoInfoSeq = "group_detail_info_info_seq";
- // uint, 只读, 上次修改群信息的 UTC 时间戳
- static const char* kTIMGroupDetailInfoLastInfoTime = "group_detail_info_last_info_time";
- // uint, 只读, 群最新消息的Seq
- static const char* kTIMGroupDetailInfoNextMsgSeq = "group_detail_info_next_msg_seq";
- // uint, 只读, 最新群组消息时间
- static const char* kTIMGroupDetailInfoLastMsgTime = "group_detail_info_last_msg_time";
- // uint, 只读, 群组当前成员数量
- static const char* kTIMGroupDetailInfoMemberNum = "group_detail_info_member_num";
- // uint, 只读, 群组最大成员数量
- static const char* kTIMGroupDetailInfoMaxMemberNum = "group_detail_info_max_member_num";
- // uint @ref TIMGroupAddOption, 只读, 群组申请加群审批选项
- static const char* kTIMGroupDetailInfoAddOption = "group_detail_info_add_option";
- // uint @ref TIMGroupAddOption, 只读, 群组邀请进群审批选项
- static const char* kTIMGroupDetailInfoApproveOption = "group_detail_info_approve_option";
- // uint, 只读, 群组成员是否对外可见
- static const char* kTIMGroupDetailInfoVisible = "group_detail_info_visible";
- // uint, 只读, 群组是否能被搜索
- static const char* kTIMGroupDetailInfoSearchable = "group_detail_info_searchable";
- // bool, 只读, 群组是否被设置了全员禁言
- static const char* kTIMGroupDetailInfoIsShutupAll = "group_detail_info_is_shutup_all";
- // string, 只读, 群组所有者ID
- static const char* kTIMGroupDetailInfoOwnerIdentifier = "group_detail_info_owner_identifier";
- // 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)
- static const char* kTIMGroupDetailInfoCustomInfo = "group_detail_info_custom_info";
- // bool, 只读, 开启权限组功能,仅在社群生效,7.8 版本开始支持
- static const char* kTIMGroupDetailInfoEnablePermissionGroup = "group_detail_info_enable_permission_group";
- // uint, 只读, 群组权限,仅在社群生效,7.8 版本开始支持
- static const char* kTIMGroupDetailInfoDefaultPermissions = "group_detail_info_default_permissions";
- //------------------------------------------------------------------------------
- // 10.8 GetGroupInfoResult(获取群组信息列表接口的返回)
- // int [错误码](https://cloud.tencent.com/document/product/269/1671), 只读, 获取群组详细信息的结果
- static const char* kTIMGetGroupInfoResultCode = "get_groups_info_result_code";
- // string, 只读, 获取群组详细失败的描述信息
- static const char* kTIMGetGroupInfoResultDesc = "get_groups_info_result_desc";
- // object @ref GroupDetailInfo, 只读, 群组详细信息
- static const char* kTIMGetGroupInfoResultInfo = "get_groups_info_result_info";
- //------------------------------------------------------------------------------
- // 10.9 GroupSearchParam(群搜索参数)
- // array string, 只写(选填), 搜索关键字列表,最多支持5个
- // 如果是本地搜索,您需主动设置 keyword 是否匹配群 ID、群名称。
- // 如果是云端搜索,keyword 会自动匹配群 ID、群名称。
- static const char* kTIMGroupSearchParamKeywordList = "group_search_params_keyword_list";
- // array @ref TIMGroupSearchFieldKey, 只写(选填), 搜索域列表(仅本地搜索有效)
- static const char* kTIMGroupSearchParamFieldList = "group_search_params_field_list";
- // uint @ref TIMKeywordListMatchType, 指定关键字列表匹配类型,可设置为“或”关系搜索或者“与”关系搜索(仅云端搜索有效)
- static const char* kTIMGroupSearchParamKeywordListMatchType = "group_search_params_keyword_list_match_type";
- // uint , 每次云端搜索返回结果的条数(必须大于 0,最大支持 100,默认 20,仅云端搜索有效)
- static const char* kTIMGroupSearchParamSearchCount = "group_search_params_search_count";
- // string , 每次云端搜索的起始位置。第一次填空字符串,续拉时填写 GroupSearchResult 中的返回值(仅云端搜索有效)
- static const char* kTIMGroupSearchParamSearchCursor = "group_search_params_search_cursor";
- //------------------------------------------------------------------------------
- // 10.10 GroupSearchResult (群组搜索结果)
- // bool , 满足搜索条件的群列表是否已经全部返回
- static const char* kTIMGroupSearchResultIsFinished = "group_search_result_is_finished";
- // uint , 满足搜索条件的群总数量
- static const char* kTIMGroupSearchResultTotalCount = "group_search_result_total_count";
- // string , 下一次云端搜索的起始位置
- static const char* kTIMGroupSearchResultNextCursor = "group_search_result_next_cursor";
- // array @ref GroupInfo, 满足搜索条件的群总数量
- static const char* kTIMGroupSearchResultGroupList = "group_search_result_group_list";
- //------------------------------------------------------------------------------
- // 10.11 GroupModifyInfoParam(设置群信息接口的参数)
- // string, 只写(必填), 群组ID
- static const char* kTIMGroupModifyInfoParamGroupId = "group_modify_info_param_group_id";
- // uint @ref TIMGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
- static const char* kTIMGroupModifyInfoParamModifyFlag = "group_modify_info_param_modify_flag";
- // string, 只写(选填), 修改群组名称, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Name 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamGroupName = "group_modify_info_param_group_name";
- // string, 只写(选填), 修改群公告, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Notification 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamNotification = "group_modify_info_param_notification";
- // string, 只写(选填), 修改群简介, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Introduction 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamIntroduction = "group_modify_info_param_introduction";
- // string, 只写(选填), 修改群头像URL, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_FaceUrl 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamFaceUrl = "group_modify_info_param_face_url";
- // uint, 只写(选填), 申请加群审批选项, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_AddOption 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamAddOption = "group_modify_info_param_add_option";
- // uint, 只写(选填), 邀请进群审批选项, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_ApproveOption 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamApproveOption = "group_modify_info_param_approve_option";
- // uint, 只写(选填), 修改群最大成员数, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_MaxMemberNum 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamMaxMemberNum = "group_modify_info_param_max_member_num";
- // uint, 只写(选填), 修改群是否可见, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Visible 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamVisible = "group_modify_info_param_visible";
- // uint, 只写(选填), 修改群是否允许被搜索, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Searchable 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamSearchAble = "group_modify_info_param_searchable";
- // bool, 只写(选填), 修改群是否全体禁言, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_ShutupAll 时必填,其他情况不用填
- static const char* kTIMGroupModifyInfoParamIsShutupAll = "group_modify_info_param_is_shutup_all";
- // string, 只写(选填), 修改群主所有者, 当 modify_flag 包含 kTIMGroupModifyInfoFlag_Owner 时必填,其他情况不用填。此时 modify_flag 不能包含其他值,当修改群主时,同时修改其他信息已无意义
- static const char* kTIMGroupModifyInfoParamOwner = "group_modify_info_param_owner";
- // 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)
- static const char* kTIMGroupModifyInfoParamCustomInfo = "group_modify_info_param_custom_info";
- // bool, 只写(选填), 修改是否开启权限组功能,仅支持社群,7.8 版本开始支持
- static const char* kTIMGroupModifyInfoParamEnablePermissionGroup = "group_modify_info_param_enable_permission_group";
- // uint, 只写(选填), 修改群权限,仅支持社群,7.8 版本开始支持
- static const char* kTIMGroupModifyInfoParamDefaultPermissions = "group_modify_info_param_default_permissions";
- //------------------------------------------------------------------------------
- // 10.12 GroupAttributes(设置群属性的 map 对象)
- // string, 只写, 群属性 map 的 key
- static const char* TIMGroupAttributeKey = "group_attribute_key";
- // string, 只写, 群属性 map 的 value
- static const char* TIMGroupAttributeValue = "group_attribute_value";
- //------------------------------------------------------------------------------
- // 10.13 GroupCounter(群计数器信息)
- // string, 读写, 群计数器的 key 值
- static const char* kTIMGroupCounterKey = "group_counter_key";
- // int64, 读写, 群计数器的 value 值
- static const char* kTIMGroupCounterValue = "group_counter_value";
- //------------------------------------------------------------------------------
- // 10.14 GroupGetOnlineMemberCountResult(获取指定群在线人数结果)
- // int, 只读, 指定群的在线人数
- static const char* TIMGroupGetOnlineMemberCountResult = "group_get_online_member_count_result";
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 十一. 话题 API 参数相关的 Json Key 定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 11.1 TIMGroupTopicInfo(获取指定群话题信息结果)
- // string, 读写, 话题 ID, 只能在创建话题或者修改话题信息的时候设置。组成方式为:社群 ID + @TOPIC#_xxx,例如社群 ID 为 @TGS#_123,则话题 ID 为 @TGS#_123@TOPIC#_xxx
- static const char* kTIMGroupTopicInfoTopicID = "group_topic_info_topic_id";
- // string, 读写, 话题名称
- static const char* kTIMGroupTopicInfoTopicName = "group_topic_info_topic_name";
- // string, 读写, 话题介绍
- static const char* kTIMGroupTopicInfoIntroduction = "group_topic_info_introduction";
- // string, 读写, 话题公告
- static const char* kTIMGroupTopicInfoNotification = "group_topic_info_notification";
- // string, 读写, 话题头像
- static const char* kTIMGroupTopicInfoTopicFaceURL = "group_topic_info_topic_face_url";
- // bool, 读写, 话题全员禁言
- static const char* kTIMGroupTopicInfoIsAllMuted = "group_topic_info_is_all_muted";
- // uint32, 读写, 当前用户在话题中的禁言时间
- static const char* kTIMGroupTopicInfoSelfMuteTime = "group_topic_info_self_mute_time";
- // string, 读写, 话题自定义字段
- static const char* kTIMGroupTopicInfoCustomString = "group_topic_info_custom_string";
- // uint @ref TIMReceiveMessageOpt, 只读,话题消息接收选项,修改话题消息接收选项请调用 setGroupReceiveMessageOpt 接口
- static const char* kTIMGroupTopicInfoRecvOpt = "group_topic_info_recv_opt";
- // string, 读写, 话题草稿
- static const char* kTIMGroupTopicInfoDraftText = "group_topic_info_draft_text";
- // uint64, 只读, 话题消息未读数量
- static const char* kTIMGroupTopicInfoUnreadCount = "group_topic_info_unread_count";
- // object @ref Message, 只读, 话题 lastMessage
- static const char* kTIMGroupTopicInfoLastMessage = "group_topic_info_last_message";
- // array @ref GroupAtInfo, 只读, 话题 at 信息列表
- static const char* kTIMGroupTopicInfoGroupAtInfoArray = "group_topic_info_group_at_info_array";
- // uint @ref TIMGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
- static const char* kTIMGroupTopicInfoModifyFlag = "group_modify_info_param_modify_flag";
- //------------------------------------------------------------------------------
- // 11.2 TIMGroupTopicOperationResult(话题操作结果)
- // int, 只读, 结果 0:成功;非0:失败
- static const char* kTIMGroupTopicOperationResultErrorCode = "group_topic_operation_result_error_code";
- // string, 只读, 如果删除失败,会返回错误信息
- static const char* kTIMGroupTopicOperationResultErrorMessage = "group_topic_operation_result_error_message";
- // string, 只读, 如果删除成功,会返回对应的 topicID
- static const char* kTIMGroupTopicOperationResultTopicID = "group_topic_operation_result_topic_id";
- //------------------------------------------------------------------------------
- // 11.3 TIMGroupTopicInfoResult(获取话题信息的结果)
- // int, 只读, 结果 0:成功;非0:失败
- static const char* kTIMGroupTopicInfoResultErrorCode = "group_topic_info_result_error_code";
- // string, 只读, 如果删除失败,会返回错误信息
- static const char* kTIMGroupTopicInfoResultErrorMessage = "group_topic_info_result_error_message";
- // object @ref TIMGroupTopicInfo, 只读, 如果获取成功,会返回对应的 info
- static const char* kTIMGroupTopicInfoResultTopicInfo = "group_topic_info_result_topic_info";
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 十二. 群成员管理 API 参数相关的 Json Key 定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 12.1 GroupMemberGetInfoOption(获取群组成员信息的选项)
- // uint64 @ref TIMGroupMemberRoleFlag, 读写(选填), 根据成员角色过滤,默认值为 kTIMGroupMemberRoleFlag_All,获取所有角色
- static const char* kTIMGroupMemberGetInfoOptionRoleFlag = "group_member_get_info_option_role_flag";
- //------------------------------------------------------------------------------
- // 12.2 GroupGetMemberInfoListParam(获取群成员列表接口的参数)
- // string, 只写(必填), 群组ID
- static const char* kTIMGroupGetMemberInfoListParamGroupId = "group_get_members_info_list_param_group_id";
- // array string, 只写(选填), 群成员ID列表
- static const char* kTIMGroupGetMemberInfoListParamIdentifierArray = "group_get_members_info_list_param_identifier_array";
- // object @ref GroupMemberGetInfoOption, 只写(选填), 获取群成员信息的选项
- static const char* kTIMGroupGetMemberInfoListParamOption = "group_get_members_info_list_param_option";
- // uint64, 只写(选填), 分页拉取标志,第一次拉取填0,回调成功如果不为零,需要分页,调用接口传入再次拉取,直至为0
- static const char* kTIMGroupGetMemberInfoListParamNextSeq = "group_get_members_info_list_param_next_seq";
- //------------------------------------------------------------------------------
- // 12.3 GroupGetMemberInfoListResult(获取群成员列表接口的返回)
- // uint64, 只读, 下一次拉取的标志,server返回0表示没有更多的数据,否则在下次获取数据时填入这个标志
- static const char* kTIMGroupGetMemberInfoListResultNexSeq = "group_get_member_info_list_result_next_seq";
- // array @ref GroupMemberInfo, 只读, 成员信息列表
- static const char* kTIMGroupGetMemberInfoListResultInfoArray = "group_get_member_info_list_result_info_array";
- //------------------------------------------------------------------------------
- // 12.4 GroupMemberSearchParam(群成员搜索参数)
- // array string, 只写(必填), 搜索关键字列表,最多支持5个
- // 如果是本地搜索,您需主动设置 keyword 是否匹配群成员 ID、昵称、备注、群名片。
- // 如果是云端搜索,keyword 会自动匹配群成员 ID、昵称、群名片。
- static const char* TIMGroupMemberSearchParamKeywordList = "group_search_member_params_keyword_list";
- // array string, 只写(选填), 指定群 ID 列表,若为不填则搜索全部群中的群成员
- static const char* TIMGroupMemberSearchParamGroupidList = "group_search_member_params_groupid_list";
- // array @ref TIMGroupMemberSearchFieldKey, 只写(必填), 搜索域列表(仅本地搜索有效)
- static const char* TIMGroupMemberSearchParamFieldList = "group_search_member_params_field_list";
- // uint @ref TIMKeywordListMatchType, 指定关键字列表匹配类型,可设置为“或”关系搜索或者“与”关系搜索(仅云端搜索有效)
- static const char* TIMGroupMemberSearchParamKeywordListMatchType = "group_member_search_params_keyword_list_match_type";
- // uint , 每次云端搜索返回结果的条数(必须大于 0,最大支持 100,默认 20,仅云端搜索有效)
- static const char* TIMGroupMemberSearchParamSearchCount = "group_member_search_params_search_count";
- // string , 每次云端搜索的起始位置。第一次填空字符串,续拉时填写 GroupMemberSearchResult 中的返回值(仅云端搜索有效)
- static const char* TIMGroupMemberSearchParamSearchCursor = "group_member_search_params_search_cursor";
- //------------------------------------------------------------------------------
- // 12.5 GroupSearchGroupMembersResult(本地群成员搜索结果)
- // array string, 只读, 群 id 列表
- static const char* TIMGroupSearchGroupMembersResultGroupID = "group_search_member_result_groupid";
- // array @ref GroupMemberInfo, 只读, 群成员的列表
- static const char* TIMGroupSearchGroupMembersResultMemberInfoList = "group_search_member_result_member_info_list";
- //------------------------------------------------------------------------------
- // 12.6 GroupMemberSearchResult (云端群成员搜索结果)
- // bool , 满足搜索条件的群成员列表是否已经全部返回
- static const char* TIMGroupMemberSearchResultIsFinished = "group_member_search_result_is_finished";
- // uint , 满足搜索条件的群成员总数量
- static const char* TIMGroupMemberSearchResultTotalCount = "group_member_search_result_total_count";
- // string , 下一次云端搜索的起始位置
- static const char* TIMGroupMemberSearchResultNextCursor = "group_member_search_result_next_cursor";
- // object @ref GroupSearchGroupMembersResult, 满足搜索条件的群成员列表
- static const char* TIMGroupMemberSearchResultMemberList = "group_member_search_result_member_list";
- //------------------------------------------------------------------------------
- // 12.7 GroupMemberInfoCustomString(群成员信息自定义字段)
- // string, 只写, 自定义字段的key
- static const char* kTIMGroupMemberInfoCustomStringInfoKey = "group_member_info_custom_string_info_key";
- // string, 只写, 自定义字段的value
- static const char* kTIMGroupMemberInfoCustomStringInfoValue = "group_member_info_custom_string_info_value";
- //------------------------------------------------------------------------------
- // 12.8 GroupModifyMemberInfoParam(设置群成员信息接口的参数)
- // string, 只写(必填), 群组ID
- static const char* kTIMGroupModifyMemberInfoParamGroupId = "group_modify_member_info_group_id";
- // string, 只写(必填), 被设置信息的成员ID
- static const char* kTIMGroupModifyMemberInfoParamIdentifier = "group_modify_member_info_identifier";
- // uint @ref TIMGroupMemberModifyInfoFlag, 只写(必填), 修改类型,可设置多个值按位或
- static const char* kTIMGroupModifyMemberInfoParamModifyFlag = "group_modify_member_info_modify_flag";
- // uint @ref TIMReceiveMessageOpt, 只写(选填), 修改消息接收选项, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_MsgFlag 时必填,其他情况不用填
- static const char* kTIMGroupModifyMemberInfoParamMsgFlag = "group_modify_member_info_msg_flag";
- // uint @ref TIMGroupMemberRole, 只写(选填), 修改成员角色, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_MemberRole 时必填,其他情况不用填
- static const char* kTIMGroupModifyMemberInfoParamMemberRole = "group_modify_member_info_member_role";
- // uint, 只写(选填), 修改禁言时间, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_ShutupTime 时必填,其他情况不用填
- static const char* kTIMGroupModifyMemberInfoParamShutupTime = "group_modify_member_info_shutup_time";
- // string, 只写(选填), 修改群名片, 当 modify_flag 包含 kTIMGroupMemberModifyFlag_NameCard 时必填,其他情况不用填
- static const char* kTIMGroupModifyMemberInfoParamNameCard = "group_modify_member_info_name_card";
- // 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)
- static const char* kTIMGroupModifyMemberInfoParamCustomInfo = "group_modify_member_info_custom_info";
- //------------------------------------------------------------------------------
- // 12.9 GroupInviteMemberParam(邀请成员接口的参数)
- // string, 只写(必填), 群组ID
- static const char* kTIMGroupInviteMemberParamGroupId = "group_invite_member_param_group_id";
- // array string, 只写(必填), 被邀请加入群组用户ID数组
- static const char* kTIMGroupInviteMemberParamIdentifierArray = "group_invite_member_param_identifier_array";
- // string, 只写(选填), 用于自定义数据
- static const char* kTIMGroupInviteMemberParamUserData = "group_invite_member_param_user_data";
- //------------------------------------------------------------------------------
- // 12.10 GroupInviteMemberResult(邀请成员接口的返回)
- // string, 只读, 被邀请加入群组的用户ID
- static const char* kTIMGroupInviteMemberResultIdentifier = "group_invite_member_result_identifier";
- // uint @ref HandleGroupMemberResult, 只读, 邀请结果
- static const char* kTIMGroupInviteMemberResultResult = "group_invite_member_result_result";
- //------------------------------------------------------------------------------
- // 12.11 GroupDeleteMemberParam(删除成员接口的参数)
- // string, 只写(必填), 群组ID
- static const char* kTIMGroupDeleteMemberParamGroupId = "group_delete_member_param_group_id";
- // array string, 只写(必填), 被删除群组成员数组
- static const char* kTIMGroupDeleteMemberParamIdentifierArray = "group_delete_member_param_identifier_array";
- // string, 只写(选填), 用于自定义数据
- static const char* kTIMGroupDeleteMemberParamUserData = "group_delete_member_param_user_data";
- // uint32_t,只写(选填),自被踢出群组开始算起,禁止被踢用户重新申请加群的时间间隔,单位:秒。7.2 版本开始支持
- static const char* kTIMGroupDeleteMemberParamDuration = "group_delete_member_param_duration";
- //------------------------------------------------------------------------------
- // 12.12 GroupDeleteMemberResult(删除成员接口的返回)
- // string, 只读, 删除的成员ID
- static const char* kTIMGroupDeleteMemberResultIdentifier = "group_delete_member_result_identifier";
- // uint @ref HandleGroupMemberResult, 只读, 删除结果
- static const char* kTIMGroupDeleteMemberResultResult = "group_delete_member_result_result";
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 十三. 群未决 API 参数相关的 Json Key 定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 13.1 GroupPendencyOption(获取群未决信息列表的参数)
- // uint64, 只写(必填), 设置拉取时间戳,第一次请求填0,后边根据server返回的 @ref GroupPendencyResult 键kTIMGroupPendencyResultNextStartTime指定的时间戳进行填写
- static const char* kTIMGroupPendencyOptionStartTime = "group_pendency_option_start_time";
- // uint, 只写(选填), 拉取的建议数量,server可根据需要返回或多或少,不能作为完成与否的标志
- static const char* kTIMGroupPendencyOptionMaxLimited = "group_pendency_option_max_limited";
- //------------------------------------------------------------------------------
- // 13.2 GroupPendency(群未决信息定义)
- // string, 读写, 群组ID
- static const char* kTIMGroupPendencyGroupId = "group_pendency_group_id";
- // string, 读写, 请求者的 ID,例如:请求加群:请求者,邀请加群:邀请人
- static const char* kTIMGroupPendencyFromIdentifier = "group_pendency_form_identifier";
- // string, 只读, 请求者的昵称
- static const char* kTIMGroupPendencyFromNickName = "group_pendency_from_nick_name";
- // string, 只读, 请求者的头像
- static const char* kTIMGroupPendencyFromFaceUrl = "group_pendency_from_face_url";
- // string, 读写, 判决者的 ID,处理此条“加群的未决请求”的管理员ID
- static const char* kTIMGroupPendencyToIdentifier = "group_pendency_to_identifier";
- // uint64, 只读, 未决信息添加时间
- static const char* kTIMGroupPendencyAddTime = "group_pendency_add_time";
- // uint @ref TIMGroupPendencyType, 只读, 未决请求类型
- static const char* kTIMGroupPendencyPendencyType = "group_pendency_pendency_type";
- // uint @ref TIMGroupPendencyHandle, 只读, 群未决处理状态
- static const char* kTIMGroupPendencyHandled = "group_pendency_handled";
- // uint @ref TIMGroupPendencyHandleResult, 只读, 群未决处理操作类型
- static const char* kTIMGroupPendencyHandleResult = "group_pendency_handle_result";
- // string, 只读, 申请或邀请附加信息
- static const char* kTIMGroupPendencyApplyInviteMsg = "group_pendency_apply_invite_msg";
- // string, 只读, 申请或邀请者自定义字段
- static const char* kTIMGroupPendencyFromUserDefinedData = "group_pendency_form_user_defined_data";
- // string, 只读, 审批信息:同意或拒绝信息
- static const char* kTIMGroupPendencyApprovalMsg = "group_pendency_approval_msg";
- // string, 只读, 审批者自定义字段
- static const char* kTIMGroupPendencyToUserDefinedData = "group_pendency_to_user_defined_data";
- // string, 只读, 签名信息,客户不用关心
- static const char* kTIMGroupPendencyKey = "group_pendency_key";
- // string, 只读, 签名信息,客户不用关心
- static const char* kTIMGroupPendencyAuthentication = "group_pendency_authentication";
- // string, 只读, 自己的ID
- static const char* kTIMGroupPendencySelfIdentifier = "group_pendency_self_identifier";
- //------------------------------------------------------------------------------
- // 13.3 GroupPendencyResult(获取群未决信息列表的返回)
- // uint64, 只读, 下一次拉取的起始时戳,server返回0表示没有更多的数据,否则在下次获取数据时以这个时间戳作为开始时间戳
- static const char* kTIMGroupPendencyResultNextStartTime = "group_pendency_result_next_start_time";
- // uint64, 只读, 已读上报的时间戳
- static const char* kTIMGroupPendencyResultReadTimeSeq = "group_pendency_result_read_time_seq";
- // uint, 只读, 未决请求的未读数
- static const char* kTIMGroupPendencyResultUnReadNum = "group_pendency_result_unread_num";
- // array @ref GroupPendency, 只读, 群未决信息列表
- static const char* kTIMGroupPendencyResultPendencyArray = "group_pendency_result_pendency_array";
- //------------------------------------------------------------------------------
- // 13.4 GroupHandlePendencyParam(处理群未决消息接口的参数)
- // bool, 只写(选填), true表示接受,false表示拒绝。默认为false
- static const char* kTIMGroupHandlePendencyParamIsAccept = "group_handle_pendency_param_is_accept";
- // string, 只写(选填), 同意或拒绝信息,默认为空字符串
- static const char* kTIMGroupHandlePendencyParamHandleMsg = "group_handle_pendency_param_handle_msg";
- // object @ref GroupPendency, 只写(必填), 未决信息详情
- static const char* kTIMGroupHandlePendencyParamPendency = "group_handle_pendency_param_pendency";
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 十四. 废弃字段
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 14.1 GroupTipsElem(群组系统消息元素, 已废弃字段部分)
- // string, 只读, 群组名称
- static const char* kTIMGroupTipsElemGroupName = "group_tips_elem_group_name";
- // uint, 只读, 群消息时间
- static const char* kTIMGroupTipsElemTime = "group_tips_elem_time";
- //------------------------------------------------------------------------------
- // 14.2 GroupDetailInfo(群组详细信息,已废弃字段部分)
- // uint, 只读, 群组在线成员数量,已废弃,请使用 @ref TIMGroupGetOnlineMemberCount 接口获取群在线人数
- static const char* kTIMGroupDetailInfoOnlineMemberNum = "group_detail_info_online_member_num";
- //------------------------------------------------------------------------------
- // 14.3 GroupMemberGetInfoOption(获取群组成员信息的选项, 已废弃的部分)
- // uint64 @ref TIMGroupMemberInfoFlag, 读写(选填), 根据想要获取的信息过滤,默认值为0xffffffff(获取全部信息)
- static const char* kTIMGroupMemberGetInfoOptionInfoFlag = "group_member_get_info_option_info_flag";
- // 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)
- static const char* kTIMGroupMemberGetInfoOptionCustomArray = "group_member_get_info_option_custom_array";
- //------------------------------------------------------------------------------
- // 14.4 以下为老版本拼写错误,为了兼容老版本而保留的宏定义
- // enum TIMGroupModifyInfoFlag
- #define kTIMGroupModifyInfoFlag_MaxMmeberNum kTIMGroupModifyInfoFlag_MaxMemberNum
- // enum TIMGroupMemberSearchFieldKey
- #define kTIMGroupMemberSearchFieldKey_NikeName kTIMGroupMemberSearchFieldKey_NickName
- // GroupMemberInfoCustomString JsonKey
- #define kTIMGroupMemberInfoCustemStringInfoKey kTIMGroupMemberInfoCustomStringInfoKey
- #define kTIMGroupMemberInfoCustemStringInfoValue kTIMGroupMemberInfoCustomStringInfoValue
- // GroupInfoCustomString JsonKey
- #define kTIMGroupInfoCustemStringInfoKey kTIMGroupInfoCustomStringInfoKey
- #define kTIMGroupInfoCustemStringInfoValue kTIMGroupInfoCustomStringInfoValue
- // GroupBaseInfo JsonKey
- #define kTIMGroupBaseInfoLastestSeq kTIMGroupBaseInfoLatestSeq
- // GroupDetailInfo JsonKey
- #define kTIMGroupDetialInfoGroupId kTIMGroupDetailInfoGroupId
- #define kTIMGroupDetialInfoGroupType kTIMGroupDetailInfoGroupType
- #define kTIMGroupDetialInfoIsSupportTopic kTIMGroupDetailInfoIsSupportTopic
- #define kTIMGroupDetialInfoGroupName kTIMGroupDetailInfoGroupName
- #define kTIMGroupDetialInfoNotification kTIMGroupDetailInfoNotification
- #define kTIMGroupDetialInfoIntroduction kTIMGroupDetailInfoIntroduction
- #define kTIMGroupDetialInfoFaceUrl kTIMGroupDetailInfoFaceUrl
- #define kTIMGroupDetialInfoCreateTime kTIMGroupDetailInfoCreateTime
- #define kTIMGroupDetialInfoInfoSeq kTIMGroupDetailInfoInfoSeq
- #define kTIMGroupDetialInfoLastInfoTime kTIMGroupDetailInfoLastInfoTime
- #define kTIMGroupDetialInfoNextMsgSeq kTIMGroupDetailInfoNextMsgSeq
- #define kTIMGroupDetialInfoLastMsgTime kTIMGroupDetailInfoLastMsgTime
- #define kTIMGroupDetialInfoMemberNum kTIMGroupDetailInfoMemberNum
- #define kTIMGroupDetialInfoMaxMemberNum kTIMGroupDetailInfoMaxMemberNum
- #define kTIMGroupDetialInfoAddOption kTIMGroupDetailInfoAddOption
- #define kTIMGroupDetialInfoApproveOption kTIMGroupDetailInfoApproveOption
- #define kTIMGroupDetialInfoOnlineMemberNum kTIMGroupDetailInfoOnlineMemberNum
- #define kTIMGroupDetialInfoVisible kTIMGroupDetailInfoVisible
- #define kTIMGroupDetialInfoSearchable kTIMGroupDetailInfoSearchable
- #define kTIMGroupDetialInfoIsShutupAll kTIMGroupDetailInfoIsShutupAll
- #define kTIMGroupDetialInfoOwnerIdentifier kTIMGroupDetailInfoOwnerIdentifier
- #define kTIMGroupDetialInfoCustomInfo kTIMGroupDetailInfoCustomInfo
- // GroupSearchParam JsonKey
- #define TIMGroupSearchParamKeywordList kTIMGroupSearchParamKeywordList
- #define TIMGroupSearchParamFieldList kTIMGroupSearchParamFieldList
- // GroupGetOnlineMemberCountResult JsonKey
- #define TIMGroupGetOnlineMemberCountResulCount TIMGroupGetOnlineMemberCountResult
- // GroupMemberInfo JsonKey
- #define kTIMGroupMemberInfoRemark kTIMGroupMemberInfoFriendRemark
- // GroupSearchGroupMembersResult JsonKey
- #define TIMGroupSearchGroupMembersdResultGroupID TIMGroupSearchGroupMembersResultGroupID
- #define TIMGroupSearchGroupMembersdResultMemberInfoList TIMGroupSearchGroupMembersResultMemberInfoList
- // GroupMemberInfo JsonKey
- #define KTIMGroupMemberInfoOnlineDevices kTIMGroupMemberInfoOnlineDevices
- #ifdef __cplusplus
- }
- #endif // __cplusplus
- #endif // SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_GROUP_MANAGER_H_
|