群组相关接口

最近更新时间:2019-08-30 18:49:59

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

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

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