圈组服务器管理
更新时间: 2022/12/21 15:55:40
圈组服务器(Server)就是社群本身,所有的内容、兴趣、话题、关系都是以此为基础进行发展的。在圈组的场景下,任何行为的开始前都应该先创建一个Server。
Server 的属性包括名称、图标、自定义字段等,具体可见以下 serverInfo
字段说明。
字段名 | 类型 | 说明 |
---|---|---|
serverId | string | 服务器ID |
name | string | 服务器名称 |
icon | string | 图标 |
ext | string | 自定义扩展字段 |
ower | string | 所有者 |
memberNumber | string | 成员数量 |
inviteMode | 0|1 | 邀请模式:0-邀请需要同意(默认),1-邀请不需要同意 |
applyMode | 0|1 | 申请模式:0-申请不需要同意(默认),1-申请需要同意 |
validFlag | 0|1 | 有效标志:0-无效,1-有效 |
createTime | number | 创建时间的时间戳 |
updateTime | number | 更新时间的时间戳 |
channelNumber | number | 频道数 |
当用户开始邀请朋友时,是以 Server 的维度去发起邀请的。也就是说,用户的朋友加入的是 Server,Server 是关系的集合。
创建圈组服务器
登录成功后,可以创建一个圈组服务器:
接口原型
type CreateServerOptions = {
/**
* 名称
*/
name: string;
/**
* 图标
*/
icon: string;
/**
* 自定义扩展 服务器字段为custom
*/
ext: string;
/**
* 邀请模式:0-邀请需要同意(默认),1-邀请不需要同意
*/
inviteMode: 0 | 1;
/**
* 申请模式:0-申请不需要同意(默认),1-申请需要同意
*/
applyMode: 0 | 1;
/**
* 反垃圾相关字段
*/
antispamTag?: AntispamTag
}
export type AntispamTag = {
/**
* 用户配置的对某些资料内容另外的反垃圾的业务ID, Json结构, {"textbid":"","picbid":""}
*/
antiSpamBusinessId: {
textbid: string
picbid: string
}
}
/**
* 创建服务器,返回服务器详情
*/
createServer(options: CreateServerOptions): Promise<ServerInfo>
示例代码
const qchat = new QChat(options);
qchat.qchatServer.createServer({
"name": "服务器",
"antiSpamBusinessId":{
"textbid":"",
"picbid":""
}
...
})
创建服务器参数中如果带上 antiSpamBusinessId
则会对服务器名称,自定义扩展,和服务器图标进行安全通检查。antiSpamBusinessId
代表安全通自定义业务 ID;如需新增安全通自定义业务,如需新增安全通自定义业务,请联系商务经理进行相关配置,然后前往云信控制台的安全通配置界面获取该业务 ID。
查询圈组服务器
SDK提供两种方式查询Server信息,分别是按ServerId查询Server信息和按时间分页查询Server信息。
按ServerId查询圈组服务器信息
查询方法
可通过传入ServerId列表查询指定的圈组服务器信息: #接口原型
type GetServersOptions = {
/**
* 服务器ID列表
*/
serverIds: string[]
}
/**
* 查询服务器列表
*/
getServers(options: GetServersOptions): Promise<ServerInfo[]>
示例代码
const qchat = new QChat(options);
qchat.qchatServer.getServers({
"serverIds": ['123456'],
})
按时间分页查询圈组服务器信息
查询方法
可以通过时间戳和查询数量分页查询Server信息: 接口原型
type GetServersOptions = {
/**
* 服务器ID列表
*/
serverIds: string[]
}
/**
* 查询服务器列表
*/
type GetServersByPageOptions = {
/**
* 时间戳 传0取当前时间
*/
timestamp: number
/**
* 条数
*/
limit?: number
}
type GetServersByPageResult = {
/**
* 分页便捷选项
*/
listQueryTag: {
/**
* 是否还有下一页
*/
hasMore: boolean;
/**
* 下一次翻页时的起始时间戳
*/
nextTimetag: number;
}
datas: ServerInfo[]
}
/**
* 查询服务器列表(分页)
*/
getServersByPage(options: GetServersByPageOptions): Promise<GetServersByPageResult>
示例代码
const qchat = new QChat(options);
qchat.qchatServer.getServersByPage({
"timestamp": 0,
"limit":10
})
修改圈组服务器信息
有管理服务器权限的用户可以对创建好的圈组服务器修改信息,可修改的信息包括:服务器名称,服务器图标,服务器自定义扩展,服务器邀请模式和服务器申请模式。
接口原型
type UpdateServerOptions = {
/**
* 服务器ID
*/
serverId: string
/**
* 名称
*/
name: string;
/**
* 图标
*/
icon: string;
/**
* 自定义扩展 服务器字段为custom
*/
ext: string;
/**
* 邀请模式:0-邀请需要同意(默认),1-邀请不需要同意
*/
inviteMode: 0 | 1;
/**
* 申请模式:0-申请不需要同意(默认),1-申请需要同意
*/
applyMode: 0 | 1;
/**
* 反垃圾相关字段
*/
antispamTag?: AntispamTag
}
export type AntispamTag = {
/**
* 用户配置的对某些资料内容另外的反垃圾的业务ID, Json结构, {"textbid":"","picbid":""}
*/
antiSpamBusinessId: {
textbid: string
picbid: string
}
}
/**
* 更新服务器
*/
updateServer(options: UpdateServerOptions): Promise<ServerInfo>
示例代码
const qchat = new QChat(options);
qchat.qchatServer.updateServer({
"name": "123456",
})
修改服务器参数中如果带上 antiSpamBusinessId
则会对服务器名称,自定义扩展,和服务器图标进行安全通检查。antiSpamBusinessId
代表安全通自定义业务 ID。如需新增安全通自定义业务,请联系商务经理进行相关配置,然后前往云信控制台的安全通配置界面获取该业务 ID。
删除圈组服务器
圈组服务器创建者可以删除该服务器: 接口原型
type DeleteServerOptions = {
/**
* 服务器ID
*/
serverId: string
}
/**
* 删除服务器
*/
deleteServer(options: DeleteServerOptions): Promise<void>
示例代码
const qchat = new QChat(options);
qchat.qchatServer.deleteServer({
"serverId": "123456",
})
订阅圈组服务器的系统通知
您可通过以下接口订阅或者取消订阅圈组服务器(Server)的系统通知,与您相关的系统通知,比如您被邀请加入圈组服务器、您从圈组服务器被踢等,不需要订阅就可以收到,与您不相关的系统通知,大Server下需要主动订阅Server才能收到,小Server下不需要订阅就可以收到,Server中的成员大于服务端设置的大Server阈值(服务端可配置)即认为是大Server:
接口原型
ype SubscribeServerOptions = {
/**
* 订阅类型 :
* 1.订阅某个channel的【消息】/【通知】
* 2.订阅某个channel的【消息未读数】/【通知】
* 3.订阅某个channel的【消息未读状态】/【通知】
* 4.订阅某个server的【消息】/【通知】,如server基本信息修改、人员进出、权限变更、创建channel等
*/
type: 4;
/**
* 操作类型 1订阅 2取消订阅
*/
opeType: 1 | 2
servers: string[]
}
/**
* 订阅服务器
*/
subscribeServer(options: SubscribeServerOptions): Promise<void>
示例代码
const qchat = new QChat(options);
qchat.qchatServer.subscribeServer({
"type": 4,
"opeType": 1,
"servers": [
{
"serverId": "123456"
}
]
})