tencent cloud

文档反馈

群组相关接口

最后更新时间:2022-10-20 14:51:21

    群组相关介绍请参考 群组系统群组管理群组自定义字段

    TIMGroupCreate

    创建群组。

    原型

    TIM_DECL int TIMGroupCreate(const char* json_group_create_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_create_param const char* 创建群组的参数 JSON 字符串
    cb TIMCommCallback 创建群组成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 创建群组时可以指定群 ID,若未指定时 IM 通讯云服务器会生成一个唯一的 ID,以便后续操作,群组 ID 通过创建群组时传入的回调返回。
    • 创建群参数的 JSON Key 详情请参考 CreateGroupParam

    示例

    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;
    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"
    }
    

    TIMGroupDelete

    删除(解散)群组。

    原型

    TIM_DECL int TIMGroupDelete(const char* group_id, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 要删除的群组 ID
    cb TIMCommCallback 删除群组成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 对于私有群,任何人都无法解散群组。
      • 对于公开群、聊天室和直播大群,群主可以解散群组。
    • 删除指定群组 group_id 的接口,删除成功与否可根据回调 cb 的参数判断。

    TIMGroupJoin

    申请加入群组。

    原型

    TIM_DECL int TIMGroupJoin(const char* group_id, const char* hello_msg, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 要加入的群组 ID
    hello_msg const char* 申请理由(选填)
    cb TIMCommCallback 申请加入群组成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 私有群不能由用户主动申请入群。
      • 公开群和聊天室可以主动申请进入。
        如果群组设置为需要审核,申请后管理员和群主会受到申请入群系统消息,需要等待管理员或者群主审核,如果群主设置为任何人可加入,则直接入群成功。直播大群可以任意加入群组。
    • 申请加入指定群组 group_id 的接口,申请加入的操作成功与否可根据回调 cb 的参数判断。

    TIMGroupQuit

    退出群组。

    原型

    TIM_DECL int TIMGroupQuit(const char* group_id, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 要退出的群组 ID
    cb TIMCommCallback 退出群组成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 对于私有群,全员可退出群组。
      • 对于公开群、聊天室和直播大群,群主不能退出。
    • 退出指定群组 group_id 的接口,退出成功与否可根据回调 cb 的参数判断。

    TIMGroupInviteMember

    邀请加入群组。

    原型

    TIM_DECL int TIMGroupInviteMember(const char* json_group_invite_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_invite_param const char* 邀请加入群组的 JSON 字符串
    cb TIMCommCallback 邀请加入群组成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 只有私有群可以拉用户入群。
      • 公开群、聊天室邀请用户入群。
      • 需要用户同意;直播大群不能邀请用户入群。
    • 此接口支持批量邀请成员加入群组,JSON Key 详情请参考 GroupInviteMemberParam

    示例

    Json::Value json_value_invite;
    json_value_invite[kTIMGroupInviteMemberParamGroupId] = groupid;
    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"
    }
    

    TIMGroupDeleteMember

    删除群组成员。

    原型

    TIM_DECL int TIMGroupDeleteMember(const char* json_group_delete_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_delete_param const char* 删除群组成员的 JSON 字符串
    cb TIMCommCallback 删除群组成员成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 对于私有群:只有创建者可删除群组成员。
      • 对于公开群和聊天室:只有管理员和群主可以踢人。
      • 对于直播大群:不能踢人。
    • 此接口支持批量删除群成员,JSON Key 详情请参考 GroupDeleteMemberParam

    示例

    Json::Value json_value_delete;
    json_value_delete[kTIMGroupDeleteMemberParamGroupId] = groupid;
    json_value_delete[kTIMGroupDeleteMemberParamUserData] = "reason";
    json_value_delete[kTIMGroupDeleteMemberParamIdentifierArray].append("user1");
    json_value_delete[kTIMGroupDeleteMemberParamIdentifierArray].append("user2");
    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"
    }
    

    TIMGroupGetJoinedGroupList

    获取已加入群组列表。

    原型

    TIM_DECL int TIMGroupGetJoinedGroupList(TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    cb TIMCommCallback 获取已加入群组列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 此接口可以获取自己所加入的群列表。
      • 此接口只能获得加入的部分直播大群的列表。
    • 此接口用于获取当前用户已加入的群组列表,返回群组的基础信息。具体返回的群组基本信息字段参考 GroupBaseInfo

    TIMGroupGetGroupInfoList

    获取群组信息列表。

    原型

    TIM_DECL int TIMGroupGetGroupInfoList(const char* json_group_getinfo_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_getinfo_param const char* 获取群组信息列表参数的 JSON 字符串
    cb TIMCommCallback 获取群组信息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    此接口用于获取指定群 ID 列表的群详细信息。具体返回的群组详细信息字段参考 GroupDetailInfo

    示例

    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" ]
    

    TIMGroupModifyGroupInfo

    修改群信息。

    原型

    TIM_DECL int TIMGroupModifyGroupInfo(const char* json_group_modifyinfo_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_modifyinfo_param const char* 设置群信息参数的 JSON 字符串 JSON 字符串
    cb TIMCommCallback 设置群信息成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 修改群主(群转让)的权限说明:
      • 只有群主才有权限进行群转让操作。
      • 直播大群不能进行群转让操作。
    • 修改群其他信息的权限说明:
      • 对于公开群、聊天室和直播大群,只有群主或者管理员可以修改群简介。
      • 对于私有群,任何人可修改群简介。
    • kTIMGroupModifyInfoParamModifyFlag可以按位或设置多个值。不同的 flag 设置不同的键,详情请参考 GroupModifyInfoParam

    示例一、设置群所有者

    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"
    }
    

    示例二、设置群名称和群通知

    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"
    }
    

    TIMGroupGetMemberInfoList

    获取群成员信息列表。

    原型

    TIM_DECL int TIMGroupGetMemberInfoList(const char* json_group_getmeminfos_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_getmeminfos_param const char* 获取群成员信息列表参数的 JSON 字符串
    cb TIMCommCallback 获取群成员信息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 任何群组类型都可以获取成员列表。
      • 直播大群只能拉取部分成员列表:包括群主、管理员和部分成员。
    • 根据不同的选项,获取群成员信息列表。成员信息的各个字段含义请参考 GroupMemberInfo

    示例

    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] = groupid;
    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
     }
    }
    

    TIMGroupModifyMemberInfo

    修改群成员信息。

    原型

    TIM_DECL int TIMGroupModifyMemberInfo(const char* json_group_modifymeminfo_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_modifymeminfo_param const char* 设置群信息参数的 JSON 字符串
    cb TIMCommCallback 设置群成员信息成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 权限说明:
      • 只有群主或者管理员可以进行对群成员的身份进行修改。
      • 直播大群不支持修改用户群内身份。
      • 只有群主或者管理员可以进行对群成员进行禁言。
    • kTIMGroupModifyMemberInfoParamModifyFlag可以按位或设置多个值,不同的 flag 设置不同的键。请参考 GroupModifyMemberInfoParam

    示例

    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"
    }
    

    TIMGroupMarkGroupMemberList

    标记群成员。

    原型

    TIM_DECL int TIMGroupMarkGroupMemberList(const char* group_id, const char* member_array, uint32_t mark_type, bool enable_mark, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 群 ID
    member_array const char* 群成员 ID 列表
    mark_type uint32_t 标记类型。数字类型,大于等于 1000,您可以自定义。一个直播群里最多允许定义 10 个标记
    enable_mark bool true 表示添加标记,false 表示移除标记
    cb const void* 设置/移除群成员自定义角色成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,ImSDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 仅支持直播群。
    • 只有群主才有权限标记群组中其他人。

    示例

    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);
    

    TIMGroupGetPendencyList

    获取群未决信息列表群未决信息是指还没有处理的操作,例如,邀请加群或者请求加群操作还没有被处理,称之为群未决信息。

    原型

    TIM_DECL int TIMGroupGetPendencyList(const char* json_group_getpendence_list_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_getpendence_list_param const char* 设置群未决信息参数的 JSON 字符串
    cb TIMCommCallback 获取群未决信息列表成功与否的回调。回调函数定义和参数解析请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 此处的群未决消息泛指所有需要审批的群相关的操作。例如:加群待审批,拉人入群待审批等等。即便审核通过或者拒绝后,该条信息也可通过此接口拉回,拉回的信息中有已决标志。
    • UserA 申请加入群 GroupA,则群管理员可获取此未决相关信息,UserA 因为没有审批权限,不需要获取此未决信息。
    • 如果 AdminA 拉 UserA 进去 GroupA,则 UserA 可以拉取此未决相关信息,因为该未决信息待 UserA 审批。
    • 权限说明:
      • 只有审批人有权限拉取相关未决信息。
    • kTIMGroupPendencyOptionStartTime设置拉取时间戳,第一次请求填0,后边根据 server 返回的 GroupPendencyResultkTIMGroupPendencyResultNextStartTime指定的时间戳进行填写。
    • kTIMGroupPendencyOptionMaxLimited拉取的建议数量,server 可根据需要返回或多或少,不能作为完成与否的标志。

    示例

    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_getpendence_list_param JSON 字符串如下
    {
     "group_pendency_option_max_limited" : 0,
     "group_pendency_option_start_time" : 0
    }
    

    TIMGroupReportPendencyReaded

    上报群未决信息已读。

    原型

    TIM_DECL int TIMGroupReportPendencyReaded(uint64_t time_stamp, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    time_stamp uint64_t 已读时间戳(单位秒)。与 GroupPendencykTIMGroupPendencyAddTime指定的时间比较
    cb TIMCommCallback 上报群未决信息已读成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    时间戳 time_stamp 以前的群未决请求都将置为已读。上报已读后,仍然可以拉取到这些未决信息,但可通过对已读时戳的判断判定未决信息是否已读。

    TIMGroupHandlePendency

    处理群未决信息。

    原型

    TIM_DECL int TIMGroupHandlePendency(const char* json_group_handle_pendency_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_handle_pendency_param const char* 处理群未决信息参数的 JSON 字符串
    cb TIMCommCallback 处理群未决信息成功与否的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    • 对于群的未决信息,IM SDK 增加了处理接口。审批人可以选择对单条信息进行同意或者拒绝。已处理成功过的未决信息不能再次处理。
    • 处理未决信息时需要带一个未决信息 GroupPendency,可以在接口 TIMGroupGetPendencyList 返回的未决信息列表将未决信息保存下来,在处理未决信息的时候将 GroupPendency 传入键kTIMGroupHandlePendencyParamPendency

    示例

    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" : ""
     }
    }
    

    TIMGroupGetOnlineMemberCount

    获取指定群在线人数。

    原型

    TIM_DECL int TIMGroupGetOnlineMemberCount(const char* groupid, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 群 ID
    cb TIMCommCallback 获取指定群在线人数的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    请注意

    • 目前只支持:直播群( AVChatRoom)。
    • 该接口有频限检测,SDK 限制调用频率为60秒1次

    示例

    TIMGroupGetOnlineMemberCount("lamarzhang_group_public", [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
    }, nullptr);
    json_param 的示例。 json key 请参考 [GroupGetOnlineMemberCountResult](TIMCloudCallback.h)
    {"group_get_online_member_count_result":0}
    

    TIMGroupSearchGroups

    搜索群资料(5.4.666 及以上版本支持,需要您购买旗舰版套餐)。

    原型

    TIM_DECL int TIMGroupSearchGroups(const char *json_group_search_groups_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_search_groups_param const char* 群列表的参数 array ,具体参考 GroupSearchParam
    cb TIMCommCallback 搜索群列表回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    SDK 会搜索群名称包含于关键字列表 keywordList 的所有群并返回群信息列表。关键字列表最多支持5个。

    示例

    Json::Array json_keyword_list;
    json_keyword_list.append("lamarzhang_group_public");
    Json::Array json_field_list;
    json_field_list.appned(kTIMGroupSearchFieldKey_GroupId);
    Json::Object json_obj;
    json_obj[TIMGroupSearchParamKeywordList] = json_keyword_list;
    json_obj[TIMGroupSearchParamFieldList] = json_field_list;
    TIMGroupSearchGroups(json_array.toStyledString().c_str(), [](int32_t code, const char* desc, const char* json_param, const void* user_data) {
    }, nullptr);
    // 回调的 json_param 示例。 json key 请参考 [GroupDetailInfo](TIMCloudDef.h)
    [{
      "group_detial_info_add_option": 1,
      "group_detial_info_create_time": 0,
      "group_detial_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_detial_info_face_url": "",
      "group_detial_info_group_id": "lamarzhang_group_public",
      "group_detial_info_group_name": "lamarzhang_group_public",
      "group_detial_info_group_type": 0,
      "group_detial_info_info_seq": 9,
      "group_detial_info_introduction": "Instroduction",
      "group_detial_info_is_shutup_all": false,
      "group_detial_info_last_info_time": 1620810613,
      "group_detial_info_last_msg_time": 1620810613,
      "group_detial_info_max_member_num": 1000,
      "group_detial_info_member_num": 2,
      "group_detial_info_next_msg_seq": 2,
      "group_detial_info_notification": "Notification",
      "group_detial_info_online_member_num": 0,
      "group_detial_info_owener_identifier": "lamarzhang",
      "group_detial_info_searchable": true,
      "group_detial_info_visible": true
    }]
    

    TIMGroupSearchGroupMembers

    搜索群成员(5.4.666 及以上版本支持,需要您购买旗舰版套餐)。

    原型

    TIM_DECL int TIMGroupSearchGroupMembers(const char *json_group_search_group_members_param, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    json_group_search_group_members_param const char* 群成员列表的参数 array ,具体参考 GroupMemberSearchParam
    cb TIMCommCallback 搜索群成员列表的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult
    说明:

    SDK 会在本地搜索指定群 ID 列表中,群成员信息(名片、好友备注、昵称、userID)包含于关键字列表 keywordList 的所有群成员并返回群 ID 和群成员列表的 map,关键字列表最多支持5个。

    示例

    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.appned(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);
    // 回调的 json_param 示例。 json key 请参考 [GroupGetOnlineMemberCountResult](TIMCloudDef.h)
    [{
    "group_search_member_result_groupid": "lamarzhang_group_public",
    "group_search_member_result_menber_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
    }]
    }]
    

    TIMGroupInitGroupAttributes

    初始化群属性,会清空原有的群属性列表。

    原型

    TIM_DECL int TIMGroupInitGroupAttributes(const char *group_id, const char *json_group_atrributes, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 群 ID
    json_group_atrributes const char* 群属性列表的参数,具体参考 GroupAttributes
    cb TIMCommCallback 初始化群属性的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult

    示例

    Json::Object json_obj;
    json_obj[TIMGroupAttributeKey] = "atrribute_key1";
    json_obj[TIMGroupAttributeValue] = "atrribute_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) {
    }, nullptr);
    // json_param 为空字符串,判断 code 即可
    

    TIMGroupSetGroupAttributes

    设置群属性,已有该群属性则更新其 value 值,没有该群属性则添加该群属性。

    原型

    TIM_DECL int TIMGroupSetGroupAttributes(const char *group_id, const char *json_group_atrributes, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 群 ID
    json_group_atrributes const char* 群属性列表的参数,具体请参考 GroupAttributes
    cb TIMCommCallback 设置群属性的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult

    示例

    Json::Object json_obj;
    json_obj[TIMGroupAttributeKey] = "atrribute_key1";
    json_obj[TIMGroupAttributeValue] = "atrribute_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) {
    }, nullptr);
    json_param 为空字符串,判断 code 即可
    

    TIMGroupDeleteGroupAttributes

    删除群属性。

    原型

    TIM_DECL int TIMGroupDeleteGroupAttributes(const char *group_id, const char *json_keys, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 群 ID
    json_keys const char* 群属性的 key
    cb TIMCommCallback 删除群属性的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult

    示例

    Json::Array json_array;
    json_array.append("atrribute_key1");
    TIMGroupDeleteGroupAttributes("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);
    // json_param 无json 字符串带回,判断 code 即可
    

    TIMGroupGetGroupAttributes

    获取群指定属性,keys 传 nil 则获取所有群属性。

    原型

    TIM_DECL int TIMGroupGetGroupAttributes(const char *group_id, const char *json_keys, TIMCommCallback cb, const void* user_data);
    

    参数

    参数 类型 含义
    group_id const char* 群 ID
    json_keys const char* 群属性的 key json_keys 传空的字符串则获取所有属性列表
    cb TIMCommCallback 获取群指定属性的回调。回调函数定义请参考 TIMCommCallback
    user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理

    返回值

    类型 含义
    int 返回 TIM_SUCC 表示接口调用成功(接口只有返回 TIM_SUCC,回调 cb 才会被调用),其他值表示接口调用失败。每个返回值的定义请参考 TIMResult

    示例

    Json::Array json_array;
    json_array.append("atrribute_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);
    // 回调的 json_param 示例。 json key 请参考 [GroupAttributes](TIMCloudDef.h)
    [{
      "group_atrribute_key": "atrribute_key1",
      "group_atrribute_value": "atrribute_value1"
    }]
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持