IM 即时通讯
Windows/macOS
开发指南

圈组服务器成员管理

更新时间: 2023/06/29 14:47:43

前提条件

创建服务器

使用限制

服务器存在如下与其成员数量相关的限制:

  • 单个用户的服务器的数量上限(包括自己创建的和加入的)默认为 100 个。
  • 单个服务器可容人数上限默认为 500000。

若需要扩展上限,可在控制台配置圈组子功能项(单个用户 server 数单 server 容纳人数),具体请参考开通和配置圈组功能

邀请

  • 拥有“邀请他人加入服务器的权限”(kPermissionIviteMember,具体权限类型请参见NIMQChatPermissions)的人可以向他人发起邀请,邀请别人加入圈组服务器。收到邀请通知的人可以接受或者拒绝邀请。
  • 拥有该权限的人也可以提前生成邀请码,其他用户可以直接使用邀请码加入圈组服务器。

邀请成员加入服务器

功能介绍

调用Invite 方法邀请用户加入服务器。

如果邀请失败,将通过QChatServerInviteResp返回邀请失败的成员列表以及邀请失败的原因(NIMQChatServerInviteFailReason)。

示例代码

QChatServerInviteParam param;
param.server_id = 123456;
param.invite_ids = {"accid1", "accid2"};
param.postscript = "your postscript";
param.cb = [this](const QChatServerInviteResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::Invite(param);

接受邀请

功能介绍

调用 AcceptInvite 方法接受加入服务器邀请。

示例代码

QChatServerAcceptInviteParam param;
param.server_id = 123456;
param.request_id = 123456;
param.accid = "accid1";
param.cb = [this](const QChatServerAcceptInviteResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::AcceptInvite(param);

拒绝邀请

功能介绍

调用 RejectInvite 方法拒绝加入服务器邀请。

示例代码

QChatServerRejectInviteParam param;
param.server_id = 123456;
param.accid = "accid1";
param.request_id = 123456;
param.postscript = "your postscript";
param.cb = [this](const QChatServerRejectInviteResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::RejectInvite(param);

生成邀请码

拥有“邀请他人加入服务器的权限”(kPermissionIviteMember,具体权限类型请参见NIMQChatPermissions)的人可以提前生成邀请码,其他用户可以直接使用提供的邀请码加入圈组服务器。

功能介绍

调用 GenerateInviteCode 方法生成邀请码。

示例代码

QChatServerGenerateInviteCodeParam param;
param.server_id = 123456;
param.cb = [this](const QChatServerGenerateInviteCodeResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::GenerateInviteCode(param);

申请

申请加入服务器

功能介绍

调用 Apply 方法申请加入服务器。

示例代码

QChatServerApplyParam param;
param.server_id = 123456;
param.postscript = "your postscript";
param.cb = [this](const QChatServerApplyResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::Apply(param);

接收申请

功能介绍

调用 AcceptApply 方法同意加入服务器申请。

示例代码

QChatServerAcceptApplyParam param;
param.server_id = 123456;
param.request_id = 123456;
param.accid = "accid1";
param.cb = [this](const QChatServerAcceptApplyResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::AcceptApply(param);

拒绝申请

功能介绍

调用 RejectApply 方法拒绝加入服务器申请。

示例代码

QChatServerRejectApplyParam param;
param.server_id = 123456;
param.request_id = 123456;
param.accid = "accid1";
param.postscript = "your postscript";
param.cb = [this](const QChatServerRejectApplyResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::RejectApply(param);

通过邀请码加入服务器

用户可以通过收到的邀请码加入圈组服务器。

功能介绍

调用 JoinByInviteCode 方法通过邀请码加入圈组服务器。

示例代码

QChatServerJoinByInviteCodeParam param;
param.server_id = 123456;
param.invite_code = "123456";
param.cb = [this](const QChatServerJoinByInviteCodeResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::JoinByInviteCode(param);

踢出服务器成员

功能介绍

调用 Kick 方法将指定用户踢出服务器。

示例代码

QChatServerKickParam param;
param.server_id = 123456;
param.accids = {"accid1", "accid2"};
param.cb = [this](const QChatServerKickResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::Kick(param);

离开服务器

功能介绍

调用 Leave 方法离开指定服务器。

示例代码

QChatServerLeaveParam param;
param.server_id = 123456;
param.cb = [this](const QChatServerLeaveResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::Leave(param);

更新服务器成员信息

功能介绍

调用 UpdateMemberInfo 方法更新服务器成员信息。

参数说明

参数 类型 说明
anti_spam_info {} QChatBusinessAntiSpamInfo 配置反垃圾信息,可配置反垃圾文本业务 ID 或 反垃圾图片业务 ID。

示例代码

QChatServerUpdateMemberInfoParam param;
param.member_info.server_id = 123456;
param.member_info.accid = "accid1";
param.member_info.nick = "nick";
param.member_info.avatar = "avatar url";
param.member_info.custom = "custom info";
param.anti_spam_info.text_bid = "anti spam text business id";
param.anti_spam_info.pic_bid = "anti spam pic business id";
param.cb = [this](const QChatServerUpdateMemberInfoResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::UpdateMemberInfo(param);

查询服务器成员信息

按照服务器ID和Accid查询

功能介绍

调用 GetServerMembers 方法查询服务器成员列表。

示例代码

QChatServerGetMembersParam param;
param.server_accid_list = {{123456, "accid1"}, {123456, "accid2"}, {456789, "accid3"}}
param.cb = [this](const QChatServerGetMembersResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::GetServerMembers(param);

按照时间分页查询

功能介绍

调用 GetServerMembersByPage 方法按成员加入服务器的时间倒序(由近及远)分页查询服务器成员列表。

示例代码

QChatServerGetMembersPageParam param;
param.server_id = 123456;
param.timestamp = 0;
param.limit = 20;
param.cb = [this](const QChatServerGetMembersPageResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::GetServerMembersByPage(param);

查询申请/邀请的历史记录

查询服务器下的申请/邀请记录

功能介绍

调用 GetInviteApplyRecordOfServer 方法查询服务器下的申请/邀请的历史记录。

查询服务器下的申请/邀请记录,需要拥有申请邀请历史查看权限(kPermissionGetServerInviteApplyRecords,具体权限类型请参见NIMQChatPermissions)。

示例代码

QChatServerGetInviteApplyRecordOfServerParam param;
param.server_id = 123456;
param.start_time = 0;
param.end_time = 0; // no time range limit
param.limit = 20;
param.reverse = false;
param.exclude_record_id = 0; // no record to exclude
param.cb = [this](const QChatServerGetInviteApplyRecordOfServerResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::GetInviteApplyRecordOfServer(param);

查询本人的申请/邀请记录

功能介绍

调用 GetInviteApplyRecordOfSelf 方法查询本人的申请和邀请历史记录。

查询本人的申请/邀请记录,需要拥有申请邀请历史查看权限(kPermissionGetServerInviteApplyRecords,具体权限类型请参见NIMQChatPermissions)。

示例代码

QChatServerGetInviteApplyRecordOfServerParam param;
param.start_time = 0;
param.end_time = 0; // no time range limit
param.limit = 20;
param.reverse = false;
param.exclude_record_id = 0; // no record to exclude
param.cb = [this](const QChatServerGetInviteApplyRecordOfSelfResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::GetInviteApplyRecordOfSelf(param);

封禁成员

功能介绍

调用 BanMember 方法封禁服务器成员。进行该操作需要拥有封禁其他成员的权限。

示例代码

QChatServerBanMemberParam param;
param.server_id = 123456;
param.accid = "accid";
param.custom = "custom";
param.cb = [this](const QChatServerBanMemberResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::BanMember(param);

解封成员

功能介绍

调用 UnbanMember 方法解封服务器成员。进行该操作需要拥有封禁其他成员的权限。

示例代码

QChatServerUnbanMemberParam param;
param.server_id = 123456;
param.accid = "accid";
param.custom = "custom";
param.cb = [this](const QChatServerUnbanMemberResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::UnbanMember(param);

查询封禁成员

功能介绍

调用 GetBannedMembersByPage 方法分页查询服务器内被封禁的成员。

示例代码

QChatServerGetBannedMembersPageParam param;
param.server_id = 123456;
param.timestamp = 0;
param.limit = 100;
param.cb = [this](const QChatServerGetBannedMembersPageResp& resp) {
    if (resp.res_code != NIMResCode::kNIMResSuccess) {
        // error handling
        return;
    }
    // process response
    // ...
};
Server::GetBannedMembersByPage(param);
此文档是否对你有帮助?
有帮助
去反馈
  • 前提条件
  • 使用限制
  • 邀请
  • 邀请成员加入服务器
  • 功能介绍
  • 示例代码
  • 接受邀请
  • 功能介绍
  • 示例代码
  • 拒绝邀请
  • 功能介绍
  • 示例代码
  • 生成邀请码
  • 功能介绍
  • 示例代码
  • 申请
  • 申请加入服务器
  • 功能介绍
  • 示例代码
  • 接收申请
  • 功能介绍
  • 示例代码
  • 拒绝申请
  • 功能介绍
  • 示例代码
  • 通过邀请码加入服务器
  • 功能介绍
  • 示例代码
  • 踢出服务器成员
  • 功能介绍
  • 示例代码
  • 离开服务器
  • 功能介绍
  • 示例代码
  • 更新服务器成员信息
  • 功能介绍
  • 参数说明
  • 示例代码
  • 查询服务器成员信息
  • 按照服务器ID和Accid查询
  • 功能介绍
  • 示例代码
  • 按照时间分页查询
  • 功能介绍
  • 示例代码
  • 查询申请/邀请的历史记录
  • 查询服务器下的申请/邀请记录
  • 功能介绍
  • 示例代码
  • 查询本人的申请/邀请记录
  • 功能介绍
  • 示例代码
  • 封禁成员
  • 功能介绍
  • 示例代码
  • 解封成员
  • 功能介绍
  • 示例代码
  • 查询封禁成员
  • 功能介绍
  • 示例代码