圈组服务器成员管理
更新时间: 2024/03/12 10:59:27
前提条件
已创建服务器。
使用限制
服务器存在如下与其成员数量相关的限制:
- 单个用户的服务器的数量上限(包括自己创建的和加入的)默认为 100 个。
- 单个服务器可容人数上限默认为 500000。
若需要扩展上限,可在控制台配置圈组子功能项(单个用户 server 数 和 单 server 容纳人数),具体请参考开通和配置圈组功能。
邀请
- 拥有“邀请他人加入服务器的权限”(
kPermissionIviteMember
,具体权限类型请参见NIMQChatPermissions
)的人可以向他人发起邀请,邀请别人加入圈组服务器。收到邀请通知的人可以接受或者拒绝邀请。 - 拥有该权限的人也可以提前生成邀请码,其他用户可以直接使用邀请码加入圈组服务器。
邀请成员加入服务器
功能介绍
调用Invite
方法邀请用户加入服务器。
如果邀请失败,将通过QChatServerInviteResp
返回邀请失败的成员列表以及邀请失败的原因(NIMQChatServerInviteFailReason
)。
示例代码
cppQChatServerInviteParam 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
方法接受加入服务器邀请。
示例代码
cppQChatServerAcceptInviteParam 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
方法拒绝加入服务器邀请。
示例代码
cppQChatServerRejectInviteParam 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
方法生成邀请码。
示例代码
cppQChatServerGenerateInviteCodeParam 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
方法申请加入服务器。
示例代码
cppQChatServerApplyParam 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
方法同意加入服务器申请。
示例代码
cppQChatServerAcceptApplyParam 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
方法拒绝加入服务器申请。
示例代码
cppQChatServerRejectApplyParam 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
方法通过邀请码加入圈组服务器。
示例代码
cppQChatServerJoinByInviteCodeParam 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
方法将指定用户踢出服务器。
示例代码
cppQChatServerKickParam 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
方法离开指定服务器。
示例代码
cppQChatServerLeaveParam 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。 |
示例代码
cppQChatServerUpdateMemberInfoParam 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
方法查询服务器成员列表。
示例代码
cppQChatServerGetMembersParam 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
方法按成员加入服务器的时间倒序(由近及远)分页查询服务器成员列表。
示例代码
cppQChatServerGetMembersPageParam 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
)。
示例代码
cppQChatServerGetInviteApplyRecordOfServerParam 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
)。
示例代码
cppQChatServerGetInviteApplyRecordOfServerParam 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);