| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027 |
- // Copyright (c) 2023 Tencent. All rights reserved.
- #ifndef SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_COMMUNITY_MANAGER_H_
- #define SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_COMMUNITY_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 TIMCommunityTopicModifyInfoFlag {
- // 未定义
- kTIMCommunityTopicModifyInfoFlag_None = 0x00,
- // 修改话题名称
- kTIMCommunityTopicModifyInfoFlag_Name = 0x01,
- // 修改话题公告
- kTIMCommunityTopicModifyInfoFlag_Notification = 0x01 << 1,
- // 修改话题简介
- kTIMCommunityTopicModifyInfoFlag_Introduction = 0x01 << 2,
- // 修改话题头像URL
- kTIMCommunityTopicModifyInfoFlag_FaceUrl = 0x01 << 3,
- // 修改话题是否全体禁言
- kTIMCommunityTopicModifyInfoFlag_MuteALl = 0x01 << 8,
- // 话题自定义字段
- kTIMCommunityTopicModifyInfoFlag_CustomString = 0x01 << 11,
- // 修改话题草稿
- kTIMCommunityTopicModifyInfoFlag_Draft = 0x01 << 14,
- // 修改话题默认权限,7.8 版本开始支持
- kTIMCommunityTopicModifyInfoFlag_DefaultPermissions = 0x01 << 15,
- // 申请加入话题选项(私密话题有效)(从 8.4 版本开始支持)
- kTIMCommunityTopicModifyInfoFlag_TopicAddOption = 0x1 << 25,
- // 话题邀请选项(私密话题有效)(从 8.4 版本开始支持)
- kTIMCommunityTopicModifyInfoFlag_TopicApproveOption = 0x1 << 26,
- };
- // 1.2 修改权限组信息的类型
- enum TIMPermissionGroupModifyInfoFlag {
- // 未定义
- kTIMPermissionGroupModifyInfoFlag_None = 0x00,
- // 名称
- kTIMPermissionGroupModifyInfoFlag_Name = 0x01,
- // 群权限
- kTIMPermissionGroupModifyInfoFlag_GroupPermission = 0x01 << 1,
- // 自定义字段
- kTIMPermissionGroupModifyInfoFlag_CustomData = 0x01 << 2,
- };
- // 1.3 社群权限值
- enum V2TIMCommunityPermissionValue {
- // 修改群资料权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_COMMUNITY_PERMISSION_MANAGE_GROUP_INFO = 0x01,
- // 群成员管理权限,包含踢人,进群审核、修改成员资料等。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_COMMUNITY_PERMISSION_MANAGE_GROUP_MEMBER = 0x1 << 1,
- // 管理权限组资料权限,包含创建、修改、删除权限组;在权限组中添加、修改、删除话题权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_MANAGE_PERMISSION_GROUP_INFO = 0x1 << 2,
- // 权限组成员管理权限,包含邀请成员进权限组和把成员从权限组踢出等。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_COMMUNITY_PERMISSION_MANAGE_PERMISSION_GROUP_MEMBER = 0x1 << 3,
- // 话题管理权限,包含创建、修改、删除话题等。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_COMMUNITY_PERMISSION_MANAGE_TOPIC_IN_COMMUNITY = 0x1 << 4,
- // 对某群成员在社群下所有话题的禁言权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_MUTE_MEMBER = 0x1 << 5,
- //群成员在社群下所有话题的发消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_SEND_MESSAGE = 0x1 << 6,
- // 在社群下所有话题发 at all 消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_AT_ALL = 0x1 << 7,
- // 在社群下所有话题拉取入群前的历史消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_GET_HISTORY_MESSAGE = 0x1 << 8,
- // 在社群下所有话题撤回他人消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_REVOKE_OTHER_MEMBER_MESSAGE = 0x1 << 9,
- // 封禁社群成员权限。该位设置为0,表示没有该权限;设置为1,表示有该权限。
- V2TIM_COMMUNITY_PERMISSION_BAN_MEMBER = 0x1 << 10,
- };
- // 1.4 话题权限值
- enum V2TIMTopicPermissionValue {
- // 管理当前话题的权限,包括修改当前话题的资料、删除当前话题。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC = 0x1,
- // 在当前话题中管理话题权限,包括添加、修改、移除话题权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC_PERMISSION = 0x1L << 1,
- // 在当前话题中禁言成员权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_MUTE_MEMBER = 0x1L << 2,
- // 在当前话题中发消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_SEND_MESSAGE = 0x1L << 3,
- // 在当前话题中拉取入群前的历史消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_GET_HISTORY_MESSAGE = 0x1L << 4,
- // 在当前话题中撤回他人消息权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_REVOKE_OTHER_MEMBER_MESSAGE = 0x1L << 5,
- // 在当前话题中发消息时有 at all 权限。该位设置为0,表示没有该权限;设置为1,表示有该权限
- V2TIM_TOPIC_PERMISSION_AT_ALL = 0x1L << 6,
- };
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 二. 社群事件回调定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 2.1 话题创建的回调
- *
- * @param group_id 话题所属的社群 ID
- * @param topic_id 话题 ID
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityCreateTopicCallback)(const char* group_id, const char* topic_id, const void* user_data);
- /**
- * 2.2 话题被删除的回调
- *
- * @param group_id 话题所属的社群 ID
- * @param topic_id_array 话题列表
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityDeleteTopicCallback)(const char* group_id, const char* topic_id_array, const void* user_data);
- /**
- * 2.3 话题更新的回调
- *
- * @param group_id 话题所属的社群 ID
- * @param topic_info 话题信息,参见 @ref TIMGroupTopicInfo 类型
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityChangeTopicInfoCallback)(const char* group_id, const char* topic_info, const void* user_data);
- /**
- * 2.4 话题自定义系统通知
- *
- * @param group_id 话题所属的社群 ID
- * @param custom_data 自定义的通知信息
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityReceiveTopicRESTCustomDataCallback)(const char* topic_id, const char* custom_data, const void* user_data);
- /**
- * 2.5 权限组创建的回调
- *
- * @param group_id 权限组所属的社群 ID
- * @param permission_group_info 权限组信息,Json Key 请参考 @ref PermissionGroupInfo
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityCreatePermissionGroupCallback)(const char* group_id, const char* permission_group_info, const void* user_data);
- /**
- * 2.6 权限组删除的回调
- *
- * @param group_id 权限组所属的社群 ID
- * @param permission_group_id_array 权限组 ID 列表
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityDeletePermissionGroupCallback)(const char* group_id, const char* permission_group_id_array, const void* user_data);
- /**
- * 2.7 权限组更新的回调
- *
- * @param group_id 权限组所属的社群 ID
- * @param permission_group_info 权限组信息,Json Key 请参考 @ref PermissionGroupInfo
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityChangePermissionGroupInfoCallback)(const char* group_id, const char* permission_group_info, const void* user_data);
- /**
- * 2.8 添加成员到权限组中
- *
- * @param group_id 权限组所属的社群 ID
- * @param json_result 权限组 ID 以及 向该权限组中添加的用户 ID 列表,Json Key 请参考 @ref PermissionGroupCallback
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityAddMembersToPermissionGroupCallback)(const char* group_id, const char* json_result, const void* user_data);
- /**
- * 2.9 从权限组中删除成员
- *
- * @param group_id 权限组所属的社群 ID
- * @param json_result 权限组 ID 以及 从该权限组中删除的用户 ID 列表,Json Key 请参考 @ref PermissionGroupCallback
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityRemoveMembersFromPermissionGroupCallback)(const char* group_id, const char* json_result, const void* user_data);
- /**
- * 2.10 话题权限添加的回调
- *
- * @param group_id 权限组所属的社群 ID
- * @param json_result 权限组 ID 以及 向该权限组中添加的话题权限信息,Json Key 请参考 @ref PermissionGroupCallback
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityAddTopicPermissionCallback)(const char* group_id, const char* json_result, const void* user_data);
- /**
- * 2.11 话题权限删除的回调
- *
- * @param group_id 权限组所属的社群 ID
- * @param json_result 权限组 ID 以及 从该权限组中删除的话题 ID 列表,Json Key 请参考 @ref PermissionGroupCallback
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityDeleteTopicPermissionCallback)(const char* group_id, const char* json_result, const void* user_data);
- /**
- * 2.12 话题权限修改的回调
- *
- * @param group_id 权限组所属的社群 ID
- * @param json_result 权限组 ID 以及 该权限组内修改的话题权限列表,Json Key 请参考 @ref TopicPermission
- * @param user_data ImSDK负责透传的用户自定义数据,未做任何处理
- */
- typedef void (*TIMCommunityModifyTopicPermissionCallback)(const char* group_id, const char* json_result, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 三. 注册社群事件回调 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 3.1 设置话题被创建的回调
- *
- * @param cb 话题创建回调,请参考 @ref TIMCommunityCreateTopicCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityCreateTopicCallback(TIMCommunityCreateTopicCallback cb, const void* user_data);
- /**
- * 3.2 设置话题被删除的回调
- *
- * @param cb 话题被删除回调,请参考 @ref TIMCommunityDeleteTopicCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityDeleteTopicCallback(TIMCommunityDeleteTopicCallback cb, const void* user_data);
- /**
- * 3.3 设置话题更新的回调
- *
- * @param cb 话题更新回调,请参考 @ref TIMCommunityChangeTopicInfoCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityChangeTopicInfoCallback(TIMCommunityChangeTopicInfoCallback cb, const void* user_data);
- /**
- * 3.4 设置 RESTAPI 下发的话题自定义系统消息的回调
- * @param cb 回调,请参考 @ref TIMCommunityReceiveTopicRESTCustomDataCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityReceiveTopicRESTCustomDataCallback(TIMCommunityReceiveTopicRESTCustomDataCallback cb,
- const void* user_data);
- /**
- * 3.5 设置权限组被创建的回调
- * @param cb 权限组创建回调,请参考 @ref TIMCommunityCreatePermissionGroupCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityCreatePermissionGroupCallback(TIMCommunityCreatePermissionGroupCallback cb,
- const void* user_data);
- /**
- * 3.6 设置权限组被删除的回调
- * @param cb 权限组删除回调,请参考 @ref TIMCommunityDeletePermissionGroupCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityDeletePermissionGroupCallback(TIMCommunityDeletePermissionGroupCallback cb,
- const void* user_data);
- /**
- * 3.7 设置权限组更新的回调
- * @param cb 权限组更新回调,请参考 @ref TIMCommunityChangePermissionGroupInfoCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityChangePermissionGroupInfoCallback(TIMCommunityChangePermissionGroupInfoCallback cb,
- const void* user_data);
- /**
- * 3.8 设置向权限组中添加成员的回调
- * @param cb 添加成员回调,请参考 @ref TIMCommunityAddMembersToPermissionGroupCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityAddMembersToPermissionGroupCallback(TIMCommunityAddMembersToPermissionGroupCallback cb,
- const void* user_data);
- /**
- * 3.9 设置从权限组中删除成员的回调
- * @param cb 删除成员回调,请参考 @ref TIMCommunityRemoveMembersFromPermissionGroupCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityRemoveMembersFromPermissionGroupCallback(
- TIMCommunityRemoveMembersFromPermissionGroupCallback cb, const void* user_data);
- /**
- * 3.10 设置向权限组中增加话题权限的回调
- * @param cb
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityAddTopicPermissionCallback(TIMCommunityAddTopicPermissionCallback cb,
- const void* user_data);
- /**
- * 3.11 设置从权限组删除话题权限的回调
- * @param cb
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityDeleteTopicPermissionCallback(TIMCommunityDeleteTopicPermissionCallback cb,
- const void* user_data);
- /**
- * 3.12 设置权限组中的话题权限修改的回调
- * @param cb
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- */
- TIM_API void TIMSetCommunityModifyTopicPermissionCallback(TIMCommunityModifyTopicPermissionCallback 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通过创建群组时传入的回调返回
- * - 创建支持话题的社群,一定要填写 kTIMCreateGroupIsSupportTopic 字段并设置为 true
- *
- * __示例__
- * @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;
- * json_value_param[kTIMCreateGroupIsSupportTopic] = true;
- *
- * 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",
- * "create_group_param_is_support_topic" : true
- * }
- * @endcode
- */
- TIM_API int TIMCommunityCreate(const char* json_group_create_param, TIMCommCallback cb, const void* user_data);
- /**
- * 4.2 获取当前用户已经加入的支持话题的社群列表
- *
- * @param cb 获取社群列表的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * __示例__
- * @code{.cpp}
- * TIMCommunityGetJoinedCommunityList([](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMCommunityGetJoinedCommunityList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityGetJoinedCommunityList(TIMCommCallback cb, const void* user_data);
- /**
- * 4.3 创建话题
- *
- * @param group_id 群 ID
- * @param json_topic_info 话题信息,Json Key 请参考 @ref TopicInfo
- * @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[kTIMCommunityTopicInfoTopicID] = GetTopicID();
- * topic_info[kTIMCommunityTopicInfoTopicName] = "topic name";
- *
- * TIMCommunityCreateTopicInCommunity(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("TIMCommunityCreateTopicInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityCreateTopicInCommunity(const char* group_id, const char* json_topic_info, TIMCommCallback cb,
- const void* user_data);
- /**
- * 4.4 删除话题
- *
- * @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");
- *
- * TIMCommunityDeleteTopicFromCommunity(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("TIMCommunityDeleteTopicFromCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityDeleteTopicFromCommunity(const char* group_id, const char* json_topic_id_array,
- TIMCommCallback cb, const void* user_data);
- /**
- * 4.5 修改话题信息
- *
- * @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[kTIMCommunityTopicInfoTopicID] = GetTopicID();
- * topic_info[kTIMCommunityTopicInfoTopicName] = "topic name";
- * topic_info[kTIMCommunityTopicInfoNotification] = "topic notification";
- * topic_info[kTIMCommunityTopicInfoModifyFlag] = kTIMCommunityTopicModifyInfoFlag_Name |
- * kTIMCommunityTopicModifyInfoFlag_Notification;
- *
- * TIMCommunitySetTopicInfo(json::Serialize(topic_info).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMCommunitySetTopicInfo code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunitySetTopicInfo(const char* json_topic_info, TIMCommCallback cb, const void* user_data);
- /**
- * 4.6 获取话题列表
- *
- * @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");
- *
- * TIMCommunityGetTopicInfoList(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("TIMCommunityGetTopicInfoList code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityGetTopicInfoList(const char* group_id, const char* json_topic_id_array, TIMCommCallback cb,
- const void* user_data);
- /**
- * 4.7 登录用户在话题中的消息接收选项是否继承社群。该功能仅增强版 SDK 8.1 及以上版本支持。
- *
- * @param topic_id 话题 ID
- * @param isInherit 是否继承
- * @param cb 修改的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- */
- TIM_API int TIMCommunitySetTopicInheritMessageReceiveOptionFromCommunity(const char* topic_id, bool isInherit,
- TIMCommCallback cb, const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 五. 权限组 API
- //
- /////////////////////////////////////////////////////////////////////////////////
- /**
- * 5.1 创建权限组(7.8 及其以上版本支持)
- * @param json_permission_group_info 权限组信息,Json Key 请参考 @ref PermissionGroupInfo
- * @param cb 创建权限组的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * json::Object permission_group_info;
- * permission_group_info[kTIMCommunityGroupID] = "xxx";
- * permission_group_info[kTIMPermissionGroupName] = "permission group name";
- *
- * TIMCommunityCreatePermissionGroupInCommunity(json::Serialize(permission_group_info).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMCommunityCreatePermissionGroupInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityCreatePermissionGroupInCommunity(const char* json_permission_group_info, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.2 删除权限组(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param json_permission_group_id_array 权限组 ID 列表
- * @param cb 删除权限组的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = GetCommunityID();
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * TIMCommunityDeletePermissionGroupFromCommunity(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("TIMCommunityDeletePermissionGroupFromCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityDeletePermissionGroupFromCommunity(const char* group_id,
- const char* json_permission_group_id_array,
- TIMCommCallback cb, const void* user_data);
- /**
- * 5.3 修改权限组信息(7.8 及其以上版本支持)
- * @param json_permission_group_info 权限组信息,Json Key 请参考 @ref PermissionGroupInfo
- * @param cb 修改权限组的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐
- *
- * __示例__
- * @code{.cpp}
- * json::Object permission_group_info;
- * permission_group_info[kTIMCommunityGroupID] = "xxx";
- * permission_group_info[kTIMPermissionGroupID] = "xxx";
- * permission_group_info[kTIMPermissionGroupName] = "permission group name";
- * permission_group_info[kTIMGroupPermission] = V2TIMCommunityPermissionValue::V2TIM_COMMUNITY_PERMISSION_MANAGE_GROUP_INFO | V2TIMCommunityPermissionValue::V2TIM_COMMUNITY_PERMISSION_MANAGE_GROUP_MEMBER;
- *
- * TIMCommunityModifyPermissionGroupInfoInCommunity(json::Serialize(permission_group_info).c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMCommunityModifyPermissionGroupInfoInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityModifyPermissionGroupInfoInCommunity(const char* json_permission_group_info, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.4 获取已加入的权限组列表(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param cb 获取已加入的权限组列表的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * TIMCommunityGetJoinedPermissionGroupListInCommunity([](int32_t code, const char* desc, const char* json_param, const void* user_data) {
- * printf("TIMCommunityGetJoinedPermissionGroupListInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityGetJoinedPermissionGroupListInCommunity(const char* group_id, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.5 获取权限组列表(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param json_permission_group_id_array 权限组 ID 列表
- * @param cb 获取权限组列表的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note:
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- * - json_permission_group_id_array 为空时,获取所有的权限组列表;不为空时,获取指定的权限组列表。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * TIMCommunityGetPermissionGroupListInCommunity(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("TIMCommunityGetPermissionGroupListInCommunity code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityGetPermissionGroupListInCommunity(const char* group_id,
- const char* json_permission_group_id_array,
- TIMCommCallback cb, const void* user_data);
- /**
- * 5.6 向社群权限组添加成员(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_group_id 权限组 ID
- * @param json_member_id_array 群成员 ID 列表
- * @param cb 添加成员的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * TIMCommunityAddCommunityMembersToPermissionGroup(group_id.c_str(), permission_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("TIMCommunityAddCommunityMembersToPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityAddCommunityMembersToPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* json_member_id_array, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.7 从社群权限组删除成员(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_group_id 权限组 ID
- * @param json_member_id_array 群成员 ID 列表
- * @param cb 删除成员的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * TIMCommunityRemoveCommunityMembersFromPermissionGroup(group_id.c_str(), permission_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("TIMCommunityRemoveCommunityMembersFromPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityRemoveCommunityMembersFromPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* json_member_id_array, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.8 获取社群权限组成员列表(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_group_id 权限组 ID
- * @param json_member_id_array 群成员 ID 列表
- * @param cb 获取社群权限组成员列表的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- * const std::string next_cursor = "";
- *
- * TIMCommunityGetCommunityMemberListInPermissionGroup(group_id.c_str(), permission_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("TIMCommunityGetCommunityMemberListInPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityGetCommunityMemberListInPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* next_cursor, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.9 向权限组添加话题权限(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_group_id 权限组 ID
- * @param json_topic_permission_map 话题权限
- * @param cb 添加话题权限的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- *
- * json::Array json_array;
- * json::Object json_obj;
- * json_obj[kTIMTopicPermissionKey] = "topic id";
- * json_obj[kTIMTopicPermissionValue] = V2TIMTopicPermissionValue::V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC | V2TIMTopicPermissionValue::V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC_PERMISSION;
- * json_array.push_back(json_obj);
- *
- * TIMCommunityAddTopicPermissionToPermissionGroup(group_id.c_str(), permission_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("TIMCommunityAddTopicPermissionToPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityAddTopicPermissionToPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* json_topic_permission_map, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.10 从权限组中删除话题权限(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_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
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * TIMCommunityDeleteTopicPermissionFromPermissionGroup(group_id.c_str(), permission_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("TIMCommunityDeleteTopicPermissionFromPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityDeleteTopicPermissionFromPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* json_topic_id_array, TIMCommCallback cb,
- const void* user_data);
- /**
- * 5.11 修改权限组中的话题权限(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_group_id 权限组 ID
- * @param json_topic_permission_map 话题权限
- * @param cb 修改权限组中的话题权限的回调。回调函数定义请参考 @ref TIMCommCallback
- * @param user_data 用户自定义数据,ImSDK只负责传回给回调函数cb,不做任何处理
- * @return int 返回TIM_SUCC表示接口调用成功(接口只有返回TIM_SUCC,回调cb才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 @ref TIMResult
- *
- * @note
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- *
- * json::Array json_array;
- * json::Object json_obj;
- * json_obj[kTIMTopicPermissionKey] = "topic id";
- * json_obj[kTIMTopicPermissionValue] = V2TIMTopicPermissionValue::V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC | V2TIMTopicPermissionValue::V2TIM_TOPIC_PERMISSION_MANAGE_TOPIC_PERMISSION;
- * json_array.push_back(json_obj);
- *
- * TIMCommunityModifyTopicPermissionInPermissionGroup(group_id.c_str(), permission_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("TIMCommunityModifyTopicPermissionInPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityModifyTopicPermissionInPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* json_topic_permission_map,
- TIMCommCallback cb, const void* user_data);
- /**
- * 5.12 获取权限组中的话题权限(7.8 及其以上版本支持)
- * @param group_id 社群 ID
- * @param permission_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
- * - 该功能为旗舰版功能,需要您购买旗舰版套餐。
- *
- * __示例__
- * @code{.cpp}
- * const std::string group_id = "xxx";
- * const std::string permission_group_id = "xxx";
- *
- * json::Array json_array;
- * json_array.push_back("id1");
- * json_array.push_back("id2");
- *
- * TIMCommunityGetTopicPermissionInPermissionGroup(group_id.c_str(), permission_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("TIMCommunityGetTopicPermissionInPermissionGroup code:%d|desc:%s|json_param %s\r\n", code, desc, json_param);
- * }, nullptr);
- * @endcode
- */
- TIM_API int TIMCommunityGetTopicPermissionInPermissionGroup(const char* group_id, const char* permission_group_id,
- const char* json_topic_id_array, TIMCommCallback cb,
- const void* user_data);
- /////////////////////////////////////////////////////////////////////////////////
- //
- // 六. 社群 API 参数相关的 Json Key 定义
- //
- /////////////////////////////////////////////////////////////////////////////////
- //------------------------------------------------------------------------------
- // 6.1 TopicInfo(话题信息)
- // string, 读写, 话题 ID, 只能在创建话题或者修改话题信息的时候设置。组成方式为:社群 ID + @TOPIC#_xxx,例如社群 ID 为 @TGS#_123,则话题 ID 为 @TGS#_123@TOPIC#_xxx
- static const char* kTIMCommunityTopicInfoTopicID = "group_topic_info_topic_id";
- // string, 读写, 话题类型(默认为 Public 话题,只能在创建话题的时候设置)(从 8.4 版本开始支持)
- // "Public" :公开话题,社群内成员可以自由进出发言。
- // "Private" :私密话题,有自己的成员列表(成员上限 10000 人),社群成员需要加入话题才能发言(私密话题需要购买企业版套餐包)。
- static const char* kTIMCommunityTopicInfoTopicType = "group_topic_info_topic_type";
- // string, 读写, 话题名称
- static const char* kTIMCommunityTopicInfoTopicName = "group_topic_info_topic_name";
- // string, 读写, 话题介绍
- static const char* kTIMCommunityTopicInfoIntroduction = "group_topic_info_introduction";
- // string, 读写, 话题公告
- static const char* kTIMCommunityTopicInfoNotification = "group_topic_info_notification";
- // string, 读写, 话题头像
- static const char* kTIMCommunityTopicInfoFaceURL = "group_topic_info_topic_face_url";
- // bool, 读写, 话题全员禁言
- static const char* kTIMCommunityTopicInfoIsAllMuted = "group_topic_info_is_all_muted";
- // uint32, 只读, 当前用户在话题中的禁言时间
- static const char* kTIMCommunityTopicInfoSelfMuteTime = "group_topic_info_self_mute_time";
- // string, 读写, 话题自定义字段
- static const char* kTIMCommunityTopicInfoCustomString = "group_topic_info_custom_string";
- // uint @ref TIMReceiveMessageOpt, 只读, 话题消息接收选项,修改话题消息接收选项请调用 @ref TIMMsgSetGroupReceiveMessageOpt 接口
- static const char* kTIMCommunityTopicInfoRecvOpt = "group_topic_info_recv_opt";
- // string, 读写, 话题草稿
- static const char* kTIMCommunityTopicInfoDraftText = "group_topic_info_draft_text";
- // uint64, 只读, 话题消息未读数量
- static const char* kTIMCommunityTopicInfoUnreadCount = "group_topic_info_unread_count";
- // object @ref Message, 只读, 话题 lastMessage
- static const char* kTIMCommunityTopicInfoLastMessage = "group_topic_info_last_message";
- // uint64, 只读, 话题已读消息的 sequence,从 7.8 版本开始支持
- static const char* kTIMCommunityTopicInfoReadSequence = "topic_info_read_sequence";
- // array @ref GroupAtInfo, 只读, 话题 at 信息列表
- static const char* kTIMCommunityTopicInfoGroupAtInfoArray = "group_topic_info_group_at_info_array";
- // uint @ref TIMGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
- static const char* kTIMCommunityTopicInfoModifyFlag = "group_modify_info_param_modify_flag";
- // uint32, 只读, 话题创建时间
- static const char* kTIMCommunityTopicCreateTime = "topic_create_time";
- // uint @ref TIMGroupAddOption, 只写(选填),申请加入话题是否需要管理员审批(私密话题有效,默认不需要审批,可以自由加入)(从 8.4 版本开始支持)
- static const char* kTIMCommunityTopicInfoTopicAddOpt = "group_topic_info_topic_add_opt";
- // uint @ref TIMGroupAddOption, 只写(选填),邀请加入话题是否需要管理员审批(私密话题有效,默认不需要审批,可以自由加入)(从 8.4 版本开始支持)
- static const char* kTIMCommunityTopicInfoTopicApproveOpt = "group_topic_info_topic_approve_opt";
- // array @ref GroupMemberInfo, 只写(选填), 话题默认群成员(私密话题有效,最大支持 100 个群成员,只能在创建话题的时候设置)(从 8.4 版本开始支持)
- static const char* kTIMCommunityTopicInfoMemberlist = "group_topic_info_member_list";
- // uint32, 读写, 话题成员的最大个数(私密话题有效,最大支持 10000,默认 10000,只能在创建话题的时候设置)(从 8.4 版本开始支持)
- static const char* kTIMCommunityTopicInfoMemberMaxCount = "group_topic_info_member_max_count";
- // uint64, 读写, 话题默认权限, 7.8 版本开始支持。群成员在没有加入任何权限组时的默认权限,仅在社群资料 @ref GroupDetailInfo 中的 kTIMGroupDetailInfoEnablePermissionGroup 为 true 时生效
- static const char* kTIMCommunityTopicInfoDefaultPermissions = "default_permissions";
- // bool, 只读, 登录用户在话题中的消息接收选项是否继承社群。该功能仅增强版 SDK 8.1 及以上版本支持。
- static const char* kTIMCommunityTopicInfoIsInheritMessageReceiveOptionFromCommunity = "group_topic_info_is_inherit_message_receive_option_from_community";
- //------------------------------------------------------------------------------
- // 6.2 TopicInfoResult(获取话题信息的结果)
- // int, 只读, 结果 0:成功;非 0:失败
- static const char* kTIMCommunityTopicInfoResultErrorCode = "group_topic_info_result_error_code";
- // string, 只读, 如果删除失败,会返回错误信息
- static const char* kTIMCommunityTopicInfoResultErrorMessage = "group_topic_info_result_error_message";
- // object @ref TopicInfo, 只读, 如果获取成功,会返回对应的 @ref TopicInfo 信息
- static const char* kTIMCommunityTopicInfoResultTopicInfo = "group_topic_info_result_topic_info";
- //------------------------------------------------------------------------------
- // 6.3 TopicOperationResult(话题操作结果)
- // int, 只读, 结果 0:成功;非 0:失败
- static const char* kTIMCommunityTopicOperationResultErrorCode = "group_topic_operation_result_error_code";
- // string, 只读, 如果删除失败,会返回错误信息
- static const char* kTIMCommunityTopicOperationResultErrorMessage = "group_topic_operation_result_error_message";
- // string, 只读, 如果删除成功,会返回对应的 topicID
- static const char* kTIMCommunityTopicOperationResultTopicID = "group_topic_operation_result_topic_id";
- //------------------------------------------------------------------------------
- // 6.4 PermissionGroupInfo(权限组信息)
- // string, 读写, 社群 ID。
- static const char* kTIMCommunityGroupID = "community_group_id";
- // string, 读写, 权限组 ID, 只能在创建话题或者修改话题信息的时候设置。
- static const char* kTIMPermissionGroupID = "permission_group_id";
- // string, 读写, 权限组名称。
- static const char* kTIMPermissionGroupName = "permission_group_name";
- // string, 读写, 权限组自定义数据。
- static const char* kTIMPermissionCustomData = "permission_custom_data";
- // uint64, 读写, 社群权限。
- static const char* kTIMGroupPermission = "group_permission";
- // uint64, 只读, 权限组人数。
- static const char* kTIMPermissionGroupMemberCount = "permission_group_member_count";
- // uint @ref TIMPermissionGroupModifyInfoFlag, 只写(必填), 修改标识,可设置多个值按位或
- static const char* kTIMPermissionGroupModifyInfoFlag = "permission_group_modify_info_flag";
- //------------------------------------------------------------------------------
- // 6.5 TopicPermission(话题权限 key-value 对)
- // string, 读写, 自定义字段的 key
- static const char* kTIMTopicPermissionKey = "topic_permission_key";
- // uint64, 读写, 自定义字段的 value
- static const char* kTIMTopicPermissionValue = "topic_permission_value";
- //------------------------------------------------------------------------------
- // 6.6 PermissionGroupInfoResult(获取权限组信息的结果)
- // int, 只读, 结果 0:成功;非 0:失败
- static const char* kTIMPermissionGroupInfoResultErrorCode = "permission_group_info_result_error_code";
- // string, 只读, 如果删除失败,会返回错误信息
- static const char* kTIMPermissionGroupInfoResultErrorMessage = "permission_group_info_result_error_message";
- // object @ref PermissionGroupInfo, 只读, 如果获取成功,会返回对应的 @ref PermissionGroupInfo 信息
- static const char* kTIMPermissionGroupInfoResult = "permission_group_info_result";
- //------------------------------------------------------------------------------
- // 6.7 PermissionGroupOperationResult(权限组操作结果)
- // int, 只读, 结果 0:成功;非 0:失败
- static const char* kTIMPermissionGroupOperationResultErrorCode = "permission_group_operation_result_error_code";
- // string, 只读, 如果删除失败,会返回错误信息
- static const char* kTIMPermissionGroupOperationResultErrorMessage = "permission_group_operation_result_error_message";
- // string, 只读, 如果删除成功,会返回对应的 permissionGroupID
- static const char* kTIMPermissionGroupOperationResultID = "permission_group_operation_result_id";
- //------------------------------------------------------------------------------
- // 6.8 PermissionGroupMemberOperationResult(权限组成员处理结果)
- // string, 只读, 被邀请加入权限组的用户 ID
- static const char* kTIMPermissionGroupMemberOperationResultIdentifier = "permission_group_member_operation_result_identifier";
- // int, 只读, 处理结果
- static const char* kTIMPermissionGroupMemberOperationResultErrorCode = "permission_group_member_operation_result_error_code";
- //------------------------------------------------------------------------------
- // 6.9 PermissionGroupMemberInfoResult(获取权限组成员列表接口的返回)
- // string, 只读, 下一次拉取的标志, server返回空表示没有更多的数据,否则在下次获取数据时填入这个标志
- static const char* kTIMPermissionGroupMemberInfoResultNextCursor = "permission_group_member_info_result_next_cursor";
- // array @ref GroupMemberInfo, 只读, 成员信息列表
- static const char* kTIMPermissionGroupMemberInfoResultArray = "permission_group_member_info_result_array";
- //------------------------------------------------------------------------------
- // 6.10 TopicPermissionResult(获取话题权限列表接口的返回)
- // int, 只读, 结果 0:成功;非 0:失败
- static const char* kTIMTopicPermissionResultErrorCode = "topic_permission_result_error_code";
- // string, 只读, 如果获取失败,会返回错误信息
- static const char* kTIMTopicPermissionResultErrorMessage = "topic_permission_result_error_message";
- // string, 只读, 话题 ID。
- static const char* kTIMTopicPermissionResultTopicID = "topic_permission_result_topic_id";
- // uint64, 只读, 话题 权限。
- static const char* kTIMTopicPermissionResultTopicPermission = "topic_permission_result_topic_permission";
- // string, 只读, 社群 ID。
- static const char* kTIMTopicPermissionResultGroupID = "topic_permission_result_group_id";
- // string, 只读, 权限组 ID。
- static const char* kTIMTopicPermissionResultPermissionGroupID = "topic_permission_result_permission_group_id";
- //------------------------------------------------------------------------------
- // 6.11 PermissionGroupCallback(权限组相关监听回调)
- // string, 读写, 权限组 ID
- static const char* kTIMPermissionGroupId = "permission_group_id";
- // array, 只读, 话题权限 map, Json Key 请参考 @ref TopicPermission
- static const char* kTIMTopicPermissionMap = "topic_permission_map";
- // array, 只读, 删除话题权限的话题 id 列表
- static const char* kTIMTopicIDList = "topic_id_list";
- // array, 只读,权限组中添加或者删除成员的 id 列表
- static const char* kTIMMemberIDList = "member_id_list";
- #ifdef __cplusplus
- }
- #endif // __cplusplus
- #endif // SRC_PLATFORM_CROSS_PLATFORM_INCLUDE_TIM_COMMUNITY_MANAGER_H_
|