IM 即时通讯
Web
产品介绍
简介
主要功能
产品优势
海外数据中心
IM平滑迁移方案
接口及业务限制
功能介绍
帐号集成与登录
基础消息功能
群组功能
聊天室功能
聊天室标签功能
多端登录与互踢策略
质量数据监控台
体验 Demo
下载 SDK 与 Demo 源码
更新日志
IM UIKit 更新日志
NIM SDK 开发版更新日志
NIM SDK 稳定版更新日志
快速开始
跑通 IM Demo 源码
实现 IM 文本消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能概览
快速集成 IM UIKit
非React框架集成 IM UIKit
组件导入
初始化
全局上下文
登录相关
实现消息收发及界面自定义
集成会话列表界面
集成会话消息界面
集成用户资料组件
集成通讯录界面
集成搜索组件
非 React 框架自定义渲染
主题样式设置
语言设置
初始化(兼容 NIM SDK)
不含 UI 集成
集成 SDK
浏览器环境集成
Node.js集成
初始化与登录相关
初始化与登录 IM
IM 连接相关
多端登录与互踢
消息相关
消息概述
消息收发
消息配置选项
广播消息收发
消息已读回执
消息撤回
消息重发与转发
本地消息
通知消息
群通知消息
超大群通知消息
历史消息
最近会话
用户资料托管
好友关系托管
用户关系托管
在线状态订阅
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群功能
系统通知
系统通知概述
内置系统通知管理
内置系统通知未读数
自定义系统通知收发
开通聊天室功能
聊天室
反垃圾(内容审核)
域名高可用
融合存储方案
扩展功能
工具方法
最佳实践
聊天室重要消息投递
API参考
SDK API (Web)
IM UIKit Store API
状态码
IM 控制台指南
创建应用
注册 IM 账号
升级服务
开通聊天室功能
配置应用客户端标识
常见问题
FAQ
服务协议

圈组服务器管理

更新时间: 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"
    }
  ]
})
此文档是否对你有帮助?
有帮助
我要吐槽
  • 创建圈组服务器
  • 查询圈组服务器
  • 按ServerId查询圈组服务器信息
  • 查询方法
  • 按时间分页查询圈组服务器信息
  • 查询方法
  • 修改圈组服务器信息
  • 删除圈组服务器
  • 订阅圈组服务器的系统通知