nim-web-sdk-ng
Version:
Yunxin IM SDK next generation
1,504 lines (1,503 loc) • 40.6 kB
TypeScript
import { QChatChannelUnreadInfo, QChatServerUnreadInfo } from './QChatChannelServiceInterface';
/**
* 调用方式:
* ```js
* qchat.qchatServer.createServer(options)
* ```
*/
export interface QChatServerServiceInterface {
/**
* 创建服务器,返回值为服务器基本信息
*
* #### 影响范围
* - 服务器创建者,及多端同步账号,收到 type = {@link ESystemMessageType.serverCreate} 的圈组内置系统通知
* - 服务器创建者,及多端同步账号,收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*
* @example
* ```js
* const serverInfo = await qchat.qchatServer.createServer({
* name: '美食圈',
* // 邀请用户加入时,是否需要用户同意。0: 需要,1: 不需要
* inviteMode: 0,
* // 申请加入时,是否需要管理员同意。0: 不需要,1: 需要
* applyMode: 1
* })
* ```
*/
createServer(options: CreateServerOptions): Promise<ServerInfo>;
/**
* 删除服务器。仅服务器创建者可删除服务器。
*
* #### 影响范围
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverRemove} 的圈组内置系统通知
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*/
deleteServer(options: DeleteServerOptions): Promise<void>;
/**
* 更新服务器信息。仅服务器创建者可更新服务器信息。
*
* #### 影响范围
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverUpdate} 的圈组内置系统通知
*/
updateServer(options: UpdateServerOptions): Promise<ServerInfo>;
/**
* 根据服务器ID,查询服务器信息
*
* - 可以查询当前账号并未加入的服务器
* - 只有存在的服务器才会在结果中返回
*/
getServers(options: GetServersOptions): Promise<ServerInfo[]>;
/**
* 分页查询服务器列表。
*
* - 该函数只会查询当前账号加入的服务器
* - 查询从 `options.timestamp` 开始查,查找 `createTime` 小于 `options.timestamp` 的服务器,直到查完,或者达到 `options.limit`
*
* @example
* ```js
* const limit = 10
* let list = []
*
* // 第一页。timetag设置为0,表示最新时间
* let res = await qchat.qchatServer.getServersByPage({
* "timestamp": 0,
* "limit": limit
* })
*
* list = [...list, ...res.datas]
* while (res.listQueryTag.hasMore) {
* res = await qchat.qchatServer.getServersByPage({
* "timestamp": res.listQueryTag.nextTimetag,
* "limit": limit
* })
* list = [...list, ...res.datas]
* }
* ```
*/
getServersByPage(options: GetServersByPageOptions): Promise<GetServersByPageResult>;
/**
* 邀请用户进入服务器
*
* #### 影响范围
* - 若服务器邀请模式为无须同意
* - 被邀请人加入服务器
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverMemberInviteDone} 的圈组内置系统通知
* - 被邀请者收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
* - 若服务器邀请模式为需要同意
* - 被邀请者收到 type = {@link ESystemMessageType.serverMemberInvite} 的圈组内置系统通知
* - 被邀请者通过 {@link QChatServerServiceInterface.acceptServerInvite},或者 {@link QChatServerServiceInterface.rejectInviteServer} 回应
*/
inviteServerMembers(options: InviteServerMembersOptions): Promise<InviteServerMembersResult>;
/**
* 接受进入服务器邀请
*
* 管理员调用 {@link QChatServerServiceInterface.inviteServerMembers | inviteServerMembers} 邀请用户进入服务器
* 被邀请人收到 type = {@link ESystemMessageType.serverMemberInvite} 的圈组内置系统通知。随后,被邀请人通过该接口同意申请
*
* #### 影响范围
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverMemberInviteAccept} 的圈组内置系统通知
* - 接收邀请者收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*
* @example
* ```js
* qchat.qchatServer.acceptServerInvite({
* // 圈组服务器ID
* "serverId": "10390564",
* // 邀请者accid
* "accid": "zk1",
* "recordInfo": {
* // 系统通知的 requestId
* "requestId": "14159103"
* }
* })
* ```
*/
acceptServerInvite(options: AcceptServerInviteOptions): Promise<void>;
/**
* 拒绝入群邀请
*
* 管理者通过 {@link QChatServerServiceInterface.inviteServerMembers | inviteServerMembers} 邀请用户进入服务器后,被邀请人可以通过该函数拒绝邀请
*
* #### 影响范围
* - 邀请者收到 type = {@link ESystemMessageType.serverMemberInviteReject} 的圈组内置系统通知
*/
rejectInviteServer(options: RejectServerInviteOptions): Promise<void>;
/**
* 申请加入服务器。如果申请人被封禁 {@link QChatServerServiceInterface.banServerMember},调用此函数会收到 403 错误
*
* #### 影响范围
* - 若服务器模式为申请者可以直接加入
* - 申请人加入服务器
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverMemberApplyDone} 的圈组内置系统通知
* - 申请人收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
* - 若服务器模式为申请者需要同意才可以加入
* - 服务器内拥有 “服务器申请权限” 的用户,会收到 type = {@link ESystemMessageType.serverMemberApply} 的圈组内置系统通知
* - 拥有权限的用户,通过 {@link QChatServerServiceInterface.acceptServerApply | acceptServerApply}同意申请,或者通过 {@link QChatServerServiceInterface.rejectServerApply | rejectServerApply} 拒绝申请
*/
applyServerJoin(options: ApplyServerJoinOptions): Promise<QChatServerApplyRecordInfo>;
/**
* 同意服务器加入申请
*
* 申请人调用 {@link QChatServerServiceInterface.applyServerJoin | applyServerJoin} 申请加入服务器。
* 拥有 “服务器申请权限” 的用户,收到 type = {@link ESystemMessageType.serverMemberApply} 的圈组内置系统通知。随后,权限用户通过该接口同意申请
*
* #### 影响范围
* - 同意申请后,服务器内所有用户收到 type = {@link ESystemMessageType.serverMemberApplyAccept} 的圈组内置系统通知
* - 申请人收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*
* @example
* ```js
* qchat.qchatServer.acceptServerApply({
* // 圈组服务器ID
* "serverId": "10390563",
* // 申请人accid
* "accid": "zk2",
* "recordInfo": {
* // 系统通知的 requestId
* "requestId": "14159101"
* }
* })
* ```
*/
acceptServerApply(options: AcceptServerApplyOptions): Promise<void>;
/**
* 拒绝入群申请
*
* 申请人调用 {@link QChatServerServiceInterface.applyServerJoin | applyServerJoin} 申请加入服务器后,群管理者可以通过该函数拒绝申请
*
* #### 影响范围
* - 申请人收到 type = {@link ESystemMessageType.serverMemberApplyReject} 的圈组内置系统通知
*/
rejectServerApply(options: RejectServerApplyOptions): Promise<void>;
/**
* 踢除服务器成员
*
* #### 影响范围
* - 服务器内成员收到 type = {@link ESystemMessageType.serverMemberKick} 的圈组内置系统通知
* - 被踢者收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*/
kickServerMembers(options: KickServerMembersOptions): Promise<void>;
/**
* 主动离开服务器。服务器创建者离群会报 403 错误。
*
* #### 影响范围
* - 服务器内成员收到 type = {@link ESystemMessageType.serverMemberLeave} 的内置系统通知
* - 主动离群者收到 type = {@link ESystemMessageType.serverEnterLeave} 的内置系统通知
*/
leaveServer(options: LeaveServerOptions): Promise<void>;
/**
* 订阅服务器的人员变更、权限变更等消息
*/
subscribeServer(options: SubscribeServerOptions): Promise<SubscribeServerResult | void>;
/**
* 修改他人服务器成员信息。仅管理员可操作,管理员用于修改他人在服务器中的成员信息
*
* #### 影响范围
* - 服务器内成员收到 type = {@link ESystemMessageType.serverMemberUpdate} 的内置系统通知
*/
updateServerMemberInfo(options: UpdateServerMemberInfoOptions): Promise<MemberInfo>;
/**
* 修改自己在服务器中的成员信息
*
* #example
* ```js
* const res = await qchat.qchatServer.updateMyMemberInfo({
* "serverId": "10390609",
* "accid": qchat.account,
* "nick": "my nick",
* "avatar": "https://avatar.com/xxx.png",
* "ext": "extension"
* })
* ```
*/
updateMyMemberInfo(options: UpdateMyMemberInfoOptions): Promise<MemberInfo>;
/**
* 根据用户ID,查询服务器下该用户的具体信息
*
* @example
* ```js
* const members = await qchat.qchatServer.getServerMemberInfo({
* "accids": [
* {
* "accid": "autotest1",
* "serverId": "10390582"
* },
* {
* "accid": "autotest2",
* "serverId": "10390582"
* }
* ]
* })
* ```
*/
getServerMembers(options: GetServerMembersOptions): Promise<MemberInfo[]>;
/**
* 分页查询服务器成员。从 timetag 开始逆序查找。查找 createTime 小于 timetag 的成员,直到查完,或者达到 limit。
*
* 若 timetag = 0,表示从服务器当前时间开始逆序查询。注意,被ban成员不会被查到
*
* @example
* ```js
* const serverId = '10390581'
* const limit = 10
* let list = []
*
* // 第一页。timetag设置为0,表示最新时间
* let res = await qchat.qchatServer.getServerMembersByPage({
* "serverId": serverId,
* "timetag": 0,
* "limit": limit
* })
*
* list = [...list, ...res.datas]
* while (res.listQueryTag.hasMore) {
* res = await qchat.qchatServer.getServerMembersByPage({
* "serverId": serverId,
* "timetag": res.listQueryTag.nextTimetag,
* "limit": limit
* })
* list = [...list, ...res.datas]
* }
* ```
*/
getServerMembersByPage(options: GetServerMembersByPageOptions): Promise<GetServerMembersByPageResult>;
/**
* 拥有封禁他人权限(QChatRoleAuth.banServerMember)的用户可调用 {@link QChatServerServiceInterface.banServerMember | banServerMember} 封禁服务器成员。
*
* - 不在服务器内的成员不能通过此方法禁止
* - 游客也无法通过此方法禁止
*
* #### 影响范围
* - 被封禁的成员将直接被踢出服务器,且不能再申请加入服务器或被邀请加入服务器。
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverMemberKick} 的圈组内置系统通知
* - 被封禁者收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*/
banServerMember(options: BanServerMemberOptions): Promise<void>;
/**
* 解封服务器成员。解除封禁后,需要重新通过申请,或者邀请的方式加入服务器
*/
unbanServerMember(options: UnbanServerMemberOptions): Promise<void>;
/**
* 分页获取封禁成员。从 timetag 开始逆序查找。查找 createTime 小于 timetag 的封禁记录,直到查完,或者达到 limit。
*
* 若 timetag = 0,表示从服务器当前时间开始逆序查找
*
* @example
* ```js
* const serverId = '10390581'
* const limit = 10
* let list = []
*
* // 第一页。timetag设置为0,表示最新时间
* let res = await qchat.qchatServer.getBannedMembersByPage({
* "serverId": serverId,
* "timetag": 0,
* "limit": limit
* })
*
* list = [...list, ...res.datas]
* while (res.listQueryTag.hasMore) {
* res = await qchat.qchatServer.getBannedMembersByPage({
* "serverId": serverId,
* "timetag": res.listQueryTag.nextTimetag,
* "limit": limit
* })
* list = [...list, ...res.datas]
* }
*
* ```
*/
getBannedMembersByPage(options: GetBannedMembersByPageOptions): Promise<GetBannedMembersByPageResult>;
/**
* 通过关键词、时间范围、服务器类型等条件,搜索所有符合要求的服务器
*
* @example
* ```
* const res = await qchat.qchatServer.serverSearchByPage({
* "keyword": "网易云信",
* "startTime": 0,
* "endTime": 1698911671817,
* "limit": 100,
* // 即 createServer 时设置的 searchType
* "serverType": [0, 1],
* "order": "ASC",
* // square 表示全局搜索服务器
* // person 表示搜索个人加入的服务器
* "searchType": "square",
* "sort": "createTime"
* })
* ```
*/
serverSearchByPage(options: ServerSearchByPageOptions): Promise<ServerSearchByPageResult>;
/**
* 通过keyword,搜索服务器内的群成员
*
* @example
* ```js
* const res = await qchat.qchatServer.serverMemberSearchByPage({
* "serverId": "10390605",
* "keyword": "abc",
* "limit": 100
* })
* ```
*/
serverMemberSearchByPage(options: ServerMemberSearchByPageOptions): Promise<MemberInfo[]>;
/**
* 生成一个邀请码。可以通过 `ttl` 设置邀请码有效时间。若不设置,默认有效期为 30 天。
*
* 有效期内,任何人都可以通过 {@link QChatServerServiceInterface.joinByInviteCode | joinByInviteCode} 加入服务器。过期后,邀请码失效。
*
* @example
* ```js
* const res = await qchat.qchatServer.generateInviteCode({
* "serverId": "10390581",
* "ttl": 86400000
* })
*
* // 将 Code 发给其它端后,其它端加入频道
* await qchat.qchatServer.joinByInviteCode({
* "serverId": res.serverId,
* "inviteCode": res.inviteCode,
* "ps": "xxx"
* })
* ```
*/
generateInviteCode(options: QChatServerGenerateInviteCodeOptions): Promise<QChatServerInviteCode>;
/**
* 根据邀请码加入服务器。如果邀请码过期,会收到 508 错误
*
* #### 影响范围
* - 无论服务器申请模式如何,通过邀请码都可以直接加入服务器
* - 服务器内所有成员收到 type = {@link ESystemMessageType.serverMemberJoinByInviteCode} 的圈组内置系统通知
* - 申请者收到 type = {@link ESystemMessageType.serverEnterLeave} 的圈组内置系统通知
*
* @example
* ```js
* qchat.qchatServer.joinByInviteCode({
* "serverId": "10390581",
* "inviteCode": "2F027WFKEN",
* "ps": "xxx"
* })
* ```
*/
joinByInviteCode(options: QChatServerJoinByInviteCodeOptions): Promise<void>;
/**
* 下面这个接口不确定怎么用,测试了一下,返回的数据都是空的
*/
/**
* 查询某服务器下的申请和邀请进入的历史记录
*/
getInviteApplyRecordOfServer(options: QChatServerGetInviteApplyRecordOfServerOptions): Promise<QChatServerInviteApplyRecord[]>;
/**
* 查询自己申请加入服务器,以及被邀请加入服务器的历史记录。
*
* 初次请求时,cursor 可以不填写。下次请求时,使用返回纪录的 `recordId` 作为 `cursor`。
*/
getInviteApplyRecordOfSelf(options: QChatServerGetInviteApplyRecordOfSelfOptions): Promise<QChatServerInviteApplyRecord[]>;
/**
* 清空服务器下所有频道的未读数
*/
markRead(options: QChatServerMarkReadOptions): Promise<QChatServerMarkReadResult>;
/**
* 订阅服务器下的所有频道。
*
* 圈组订阅机制请查看文档: [圈组订阅机制](https://doc.yunxin.163.com/messaging-enhanced/docs/jc0Mzg1NDA?platform=web)
*/
subscribeAllChannel(options: SubscribeAllChannelOptions): Promise<SubscribeAllChannelResult>;
/**
* 以游客身份加入服务器。请查看文档:[游客功能](https://doc.yunxin.163.com/messaging-enhanced/docs/zEyMjgyMzQ?platform=web)
*
* 注: 目前 IM 服务端限定最多加 10 个
*
* #### 影响范围
* - 以游客身份加入服务器并不会触发圈组内置系统回调
*/
enterAsVisitor(options: {
serverIds: string[];
}): Promise<{
failedServers: string[];
}>;
/**
* 以游客身份离开服务器。请查看文档:[游客功能](https://doc.yunxin.163.com/messaging-enhanced/docs/zEyMjgyMzQ?platform=web)
*
* 注: 目前 IM 服务端限定最多加 10 个
*
* #### 影响范围
* - 以游客身份离开服务器并不会触发圈组内置系统回调
*/
leaveAsVisitor(options: {
serverIds: string[];
}): Promise<{
failedServers: string[];
}>;
/**
* 以游客身份订阅服务器
*
* 圈组订阅机制请查看文档: [圈组订阅机制](https://doc.yunxin.163.com/messaging-enhanced/docs/jc0Mzg1NDA?platform=web)
*/
subscribeAsVisitor(options: NIMEQChatServerSubscribeAsVisitorOptions): Promise<{
failedServers: string[];
}>;
}
/**
* qchatServer 模块的监听事件
*
* Example:
*
* const instance = new SDK()
*
* instance.qchatServer.on('serverUnreadInfo', msg => { console.log(msg) }
*/
export interface NIMEQChatServerServiceListener {
/**
* 收到服务器总消息未读通知
*/
serverUnreadInfo: [msg: QChatServerUnreadInfo];
}
export interface NIMEQChatServerSubscribeAsVisitorOptions {
/**
* 操作类型. 1 订阅; 2 取消订阅
*/
opeType: 1 | 2;
/**
* 订阅模式
*
* 注: 订阅服务器目前默认且只能固定传 7
*/
type?: 7;
/**
* 要订阅的服务器信息
*/
serverIds: string[];
}
export interface SubscribeAllChannelOptions {
/**
* 订阅类型 :
*
* 1.订阅某个channel的【消息】/【通知】
*
* 2.订阅某个channel的【消息未读数】/【通知】
*
* 3.订阅某个channel的【消息未读状态】/【通知】
*/
type: number;
/**
* 服务器id列表,最多十个
*/
serverIds: string[];
}
export interface SubscribeAllChannelResult {
/**
* 订阅成功频道的未读数详情
*/
unreadInfos: QChatChannelUnreadInfo[];
/**
* 订阅失败服务器id列表
*/
failServerIds: string[];
}
export interface QChatServerMarkReadOptions {
/**
* 需要清空服务器id列表
*/
serverIds: string[];
}
export interface QChatServerMarkReadResult {
/**
* 清空成功服务器id列表
*/
successServerIds: string[];
/**
* 清空失败服务器id列表
*/
failServerIds: string[];
/**
* 清空未读的服务器时间戳,这个时间戳之前的频道消息都认为是已读
*/
ackTimestamp: number;
}
export declare type TQChatSearchOrder = keyof typeof QChatChannelEOrder;
export declare enum QChatChannelEOrder {
ASC = 1,
DESC = 2
}
export declare type TSearchType = keyof typeof ESearchType;
export declare enum QChatEServerSortType {
reorderWeight = 0,
createTime = 1,
totalMember = 2
}
export declare type TSortType = keyof typeof QChatEServerSortType;
export declare enum ESearchType {
/**
* 广场
*/
square = 1,
/**
* 个人
*/
person = 2
}
export interface ServerSearchByPageOptions {
/**
* 搜索关键字
*/
keyword: string;
/**
* 查询时间范围的开始时间
*/
startTime?: number;
/**
* 查询时间范围的结束时间,要求比开始时间大
*/
endTime?: number;
/**
* 排序规则:ASC-升序 ,DESC-倒序 默认DESC
*/
order?: TQChatSearchOrder;
/**
* 返回结果的记录数,最大和默认都是100
*/
limit?: number;
/**
* 搜索的服务器类型,例如[1,2,3]。即 createServer 时的 searchType
*/
serverType?: number[];
/**
* 搜索场景:square-广场,person-个人服务器。
*
* square 是指全局搜索服务器
* person 是指个人已加入的服务器
*/
searchType: TSearchType;
/**
* 排序条件 reorderWeight-自定义权重排序、createTime-创建时间(默认)、totalMember-服务器总人数
*/
sort?: TSortType;
/**
* 排序条件 查询游标,查询的起始位置,上一次查询结果中的listQueryTag字段会返回cursor字段。
*/
cursor?: string;
}
export interface ServerSearchByPageResult {
/**
* 分页便捷选项
*/
listQueryTag: {
/**
* 是否还有下一页
*/
hasMore: boolean;
/**
* 下一次翻页时的起始时间戳
*/
nextTimetag: number;
/**
* 查询游标,下次查询的起始位置
*/
cursor: string;
};
datas: ServerInfo[];
}
export interface ServerMemberSearchByPageOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 关键字
*/
keyword: string;
/**
* 查询数量 最大和默认都是100
*/
limit?: number;
}
export interface ServerMemberSearchByPageResult {
/**
* 分页便捷选项
*/
listQueryTag: {
/**
* 是否还有下一页
*/
hasMore: boolean;
/**
* 下一次翻页时的起始时间戳
*/
nextTimetag: number;
};
datas: MemberInfo[];
}
export interface BanServerMemberOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 目标用户accid
*/
accid: string;
/**
* 自定义扩展
*/
ext?: string;
}
export interface UnbanServerMemberOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 目标用户accid
*/
accid: string;
/**
* 自定义扩展
*/
ext?: string;
}
export interface GetBannedMembersByPageOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 查询从该时间开始,寻找比该时间更早的纪录。第一次查询可以传入0,0会解析为服务器的当前时间
*/
timetag: number;
/**
* 数量, 默认 100
*/
limit?: number;
}
export interface GetBannedMembersByPageResult {
/**
* 分页便捷选项
*/
listQueryTag: {
/**
* 是否还有下一页
*/
hasMore: boolean;
/**
* 下一次翻页时的起始时间戳
*/
nextTimetag: number;
};
datas: ServerMemberBanInfo[];
}
export interface ServerMemberBanInfo {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户accid
*/
accid: string;
/**
* 自定义扩展
*/
ext?: string;
/**
* 封禁时间
*/
banTime: string;
/**
* 有效标志:true-有效,false-无效
*/
validFlag: boolean;
/**
* 创建时间
*/
createTime: number;
/**
* 更新时间
*/
updateTime: number;
}
export interface CreateServerOptions {
/**
* 名称
*/
name: string;
/**
* 图标
*/
icon?: string;
/**
* 自定义扩展
*/
ext?: string;
/**
* 邀请模式. 指服务器里的有权限者邀请某人员进入, 是否需要该人的同意
*
* 注: 0-需要同意(默认), 1-不需要同意
*/
inviteMode?: 0 | 1;
/**
* 申请模式. 指人员申请进入服务器是否需要有权限者的同意
*
* 注: 0-不需要同意(默认),1-需要同意
*/
applyMode?: 0 | 1;
/**
* 反垃圾相关字段
*/
antispamTag?: AntispamTag;
/**
* 服务器搜索类型,客户自定义,大于等于0的整数 0代表无类型 参见 {@link ServerInfo.searchType | searchType}
*/
searchType?: number;
/**
* 服务器是否允许被搜索,true允许,false不允许,默认允许
*/
searchEnable?: boolean;
}
/**
* 反垃圾相关字段
*/
export interface AntispamTag {
/**
* 用户配置的对某些资料内容另外的反垃圾的业务ID, Json结构, {"textbid":"","picbid":""}
* http://doc.hz.netease.com/display/MMC/AntispamTag
*/
antiSpamBusinessId: {
textbid: string;
picbid: string;
};
}
export interface DeleteServerOptions {
/**
* 服务器ID
*/
serverId: string;
}
export interface UpdateServerOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 名称
*/
name?: string;
/**
* 图标
*/
icon?: string;
/**
* 自定义扩展
*/
ext?: string;
/**
* 邀请模式. 指服务器里的有权限者邀请某人员进入, 是否需要该人的同意
*
* 注: 0-需要同意(默认), 1-不需要同意
*/
inviteMode?: 0 | 1;
/**
* 申请模式. 指人员申请进入服务器是否需要有权限者的同意
*
* 注: 0-不需要同意(默认),1-需要同意
*/
applyMode?: 0 | 1;
/**
* 反垃圾相关字段
*/
antispamTag?: AntispamTag;
/**
* 服务器搜索类型,客户自定义,大于等于0的整数 0代表无类型 参见 {@link ServerInfo.searchType | searchType}
*/
searchType?: number;
/**
* 服务器是否允许被搜索,true允许,false不允许,默认允许
*/
searchEnable?: boolean;
}
export interface GetServersOptions {
/**
* 服务器ID列表
*/
serverIds: string[];
}
export interface GetServersByPageOptions {
/**
* 时间戳
*
* 传 0 等于取当前时间
*/
timestamp: number;
/**
* 条数
*/
limit?: number;
}
export interface GetServersByPageResult {
/**
* 分页便捷选项
*/
listQueryTag: {
/**
* 是否还有下一页
*/
hasMore: boolean;
/**
* 下一次翻页时的起始时间戳
*/
nextTimetag: number;
};
datas: ServerInfo[];
}
export interface InviteServerMembersOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户账号列表
*/
accids: string[];
/**
* 附言(最长5000)
*/
ps: string;
/**
* 本邀请记录的额外参数
*/
params: {
/**
* 有效时长,单位: 毫秒
*/
ttl: number;
};
}
export interface InviteServerMembersResult {
/**
* 因为用户服务器数量超限导致失败的accid列表
*/
failByOverAccids: string[];
/**
* 因为用户被服务器封禁导致失败的accid列表
*/
failByBanAccids: string[];
/**
* 邀请记录的信息
*/
recordInfo: {
/**
* 邀请记录唯一标识
*/
requestId: string;
/**
* 时间戳,表示邀请过期的截止日期
*/
expireTime: number;
};
}
export interface AcceptServerInviteOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 邀请者的accid
*/
accid: string;
/**
* 邀请记录的信息
*/
recordInfo: {
/**
* 邀请记录的唯一标识
*/
requestId: string;
};
}
export interface RejectServerInviteOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 邀请者accid
*/
accid: string;
/**
* 附言(最长5000)
*/
ps: string;
/**
* 邀请记录的信息
*/
recordInfo: {
/**
* 邀请记录的唯一标识
*/
requestId: string;
};
}
export interface ApplyServerJoinOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 附言(最长5000)
*/
ps: string;
/**
* 本申请记录的额外参数
*/
params: {
/**
* 有效时长,单位: 毫秒
*/
ttl: number;
};
}
export interface AcceptServerApplyOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 申请账号ID
*/
accid: string;
/**
* 申请记录的信息
*/
recordInfo: {
/**
* 申请记录的唯一标识。见 type = {@link ESystemMessageType.serverMemberApply} 圈组系统通知的 requestId
*/
requestId: string;
};
}
export interface RejectServerApplyOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户账号
*/
accid: string;
/**
* 附言(最长5000)
*/
ps: string;
/**
* 申请记录的信息
*/
recordInfo: {
/**
* 申请记录的唯一标识
*/
requestId: string;
};
}
export interface KickServerMembersOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户账号列表
*/
accids: string[];
}
export interface LeaveServerOptions {
/**
* 服务器ID
*/
serverId: string;
}
export interface UpdateServerMemberInfoOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户accid
*/
accid: string;
/**
* 昵称
*/
nick?: string;
/**
* 头像
*/
avatar?: string;
/**
* 反垃圾相关字段
*/
antispamTag?: AntispamTag;
}
export interface UpdateMyMemberInfoOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户accid。填自己的accid。
*/
accid: string;
/**
* 昵称
*/
nick?: string;
/**
* 头像
*/
avatar?: string;
/**
* 自定义扩展
*/
ext?: string;
/**
* 反垃圾相关字段
*/
antispamTag?: AntispamTag;
}
export interface GetServerMembersOptions {
accids: {
accid: string;
serverId: string;
}[];
}
export interface GetServerMembersByPageOptions {
/**
* 服务器ID
*/
serverId: string;
/**
* 时间戳 传0取当前时间
*/
timetag: number;
/**
* 数量, 默认 100
*/
limit?: number;
}
export interface GetServerMembersByPageResult {
/**
* 分页便捷选项
*/
listQueryTag: {
/**
* 是否还有下一页
*/
hasMore: boolean;
/**
* 下一次翻页时的起始时间戳
*/
nextTimetag: number;
};
datas: MemberInfo[];
}
export interface MemberInfo {
/**
* 服务器ID
*/
serverId: string;
/**
* 用户accid
*/
accid: string;
/**
* 昵称
*/
nick: string;
/**
* 头像
*/
avatar: string;
/**
* 自定义扩展
*/
ext?: string;
/**
* 类型:0-普通成员,1-所有者
*/
type: 0 | 1;
/**
* 加入时间
*/
joinTime: number;
/**
* 邀请模人
*/
inviter: string;
/**
* 有效标志:0-无效,1-有效
*/
validFlag: 0 | 1;
/**
* 创建时间
*/
createTime: number;
/**
* 更新时间
*/
updateTime: number;
}
export interface ServerInfo {
/**
* 服务器ID
*/
serverId: string;
/**
* 名称
*/
name: string;
/**
* 图标
*/
icon?: string;
/**
* 自定义扩展
*/
ext?: string;
/**
* 所有者
*/
owner: string;
/**
* 成员数量
*/
memberNumber: string;
/**
* 邀请模式. 指服务器里的有权限者邀请某人员进入, 是否需要该人的同意
*
* 注: 0-需要同意(默认), 1-不需要同意
*/
inviteMode: 0 | 1;
/**
* 申请模式. 指人员申请进入服务器是否需要有权限者的同意
*
* 注: 0-不需要同意(默认),1-需要同意
*/
applyMode: 0 | 1;
/**
* 有效标志:0-无效,1-有效
*/
validFlag: 0 | 1;
/**
* 创建时间
*/
createTime: number;
/**
* 更新时间
*/
updateTime: number;
/**
* 频道数
*/
channelNumber: number;
/**
* 频道分组的数量
*/
categoryNumber?: number;
/**
* 服务器搜索类型,客户自定义,大于0的整数 参见 {@link ServerInfo.searchType | searchType}
*/
searchType: number;
/**
* 服务器是否允许被搜索.
*
* true 允许, false 不允许
*/
searchEnable: boolean;
/**
* 自定义排序权重值
*
* 注: IM 服务端下发的自定义顺序权重, 下发时已经排好,客户端不需要干预。
*
* 注2: 这个值目前只能通过 IM 服务端提供的 HTTP API 接口去更改
*/
reorderWeight: string;
}
export interface SubscribeServerOptions {
/**
* 订阅类型 :
*
* 4.订阅某个server的【消息】/【通知】,如server基本信息修改、人员进出、权限变更、创建channel等
*/
type: 4;
/**
* 操作类型 1订阅 2取消订阅
*/
opeType: 1 | 2;
/**
* 要订阅的服务器信息
*/
servers: {
serverId: string;
}[];
}
export interface QChatServerInviteApplyRecord {
/**
* 这条数据的唯一标识,仅用于分页查询使用。
*/
recordId: string;
/**
* account ID,操作者/申请者的账号 id
*/
accid: string;
/**
* 邀请/申请的类型:
*
* 1 表示申请,也能表示申请记录的拒绝与同意
*
* 2 表示邀请记录,仅查询服务器下的记录能查到这种类型, 接口为 {@link QChatServerServiceInterface.getInviteAndApplyRecord | getInviteAndApplyRecord}
*
* 3 表示邀请记录的同意/拒绝的记录
*
* 4 表示邀请码生成,仅查询服务器下的记录能查到这种类型, 接口为 {@link QChatServerServiceInterface.getInviteAndApplyRecord | getInviteAndApplyRecord}
*
* 5 表示通过邀请码加入
*/
type: number;
/**
* 服务器 id
*/
serverId: string;
/**
* 状态。0表示初始状态
*
* 1 表示同意
*
* 2 表示拒绝
*
* 3 表示通过其他 申请/邀请 同意了,
*
* 4 表示通过其他 申请/邀请 拒绝了
*
* 5 表示邀请/申请时自动加入
*
* 6 表示过期
*/
status: number;
/**
* 申请/邀请的唯一标识
*/
requestId: string;
/**
* 创建时间
*/
createTime: number;
/**
* 修改时间
*/
updateTime: number;
/**
* 过期时间
*/
expireTime: number;
/**
* 内容数据,对应上文 type 的类型有以下四种定义
*/
data: QChatServerInviteAndApplyDataWithType1 & QChatServerInviteAndApplyDataWithType2 & QChatServerInviteAndApplyDataWithType3 & QChatServerInviteAndApplyDataWithType4 & QChatServerInviteAndApplyDataWithType5;
}
export interface QChatServerInviteAndApplyDataWithType1 {
/**
* 申请时的附言
*/
applyPostscript?: string;
/**
* 该申请的同意人
*/
updateAccid?: string;
/**
* 同意/拒绝申请时的附言
*/
updatePostscript?: string;
}
export interface QChatServerInviteAndApplyDataWithType2 {
/**
* 邀请时的附加信息
*/
invitePostscript?: string;
/**
* 受邀请者的信息
*/
inviteUsers: {
/**
* 受邀者的账号 id
*/
accid: string;
/**
* 受邀者的状态,0表示初始状态。定义同 {@link QChatServerInviteApplyRecord.status | status}
*/
status: number;
/**
* 受到拒绝时的附言
*/
updatePostscript?: string;
/**
* 更新时间
*/
updateTime: number;
}[];
}
export interface QChatServerInviteAndApplyDataWithType3 {
/**
* 邀请时的附加信息
*/
invitePostscript?: string;
/**
* 同意/拒绝时的附加信息
*/
updatePostscript?: string;
}
export interface QChatServerInviteAndApplyDataWithType4 {
/**
* 邀请码的附加信息
*/
invitePostscript?: string;
/**
* 邀请码
*/
inviteCode: string;
/**
* 该邀请码的使用人数
*/
inviteUserCount?: number;
}
export interface QChatServerInviteAndApplyDataWithType5 {
/**
* 附言
*/
updatePostscript?: string;
/**
* 邀请码
*/
inviteCode: string;
}
export interface QChatServerGetInviteApplyRecordOfSelfOptions {
/**
* 开始时间戳
*/
fromTime: number;
/**
* 结束时间戳
*/
toTime: number;
/**
* 排列顺序。默认为 false
*
* 为 true 则代表按时间戳升序查询,从 fromTime 开始查询到 toTime 之间的 limit 条记录
*
* 为 false 则代表按时间戳降序查询,从 toTime 开始查询到 fromTime 之间的 limit 条记录
*/
reverse?: boolean;
/**
* 分页大小
*/
limit?: number;
/**
* 游标 id,id 的来源参照 {@link QChatServerInviteApplyRecord.recordId | recordId}
*
* 注:若有多条记录有相同的时间,需要借助这个参数才能精准的分页。
*/
cursor?: string;
}
export interface QChatServerGetInviteApplyRecordOfServerOptions {
/**
* 服务器 id
*/
serverId: string;
/**
* 开始时间戳
*/
fromTime: number;
/**
* 结束时间戳
*/
toTime: number;
/**
* 排列顺序。默认为 false
*
* 为 true 则代表按时间戳升序查询,从 fromTime 开始查询到 toTime 之间的 limit 条记录
*
* 为 false 则代表按时间戳降序查询,从 toTime 开始查询到 fromTime 之间的 limit 条记录
*/
reverse?: boolean;
/**
* 分页大小
*/
limit?: number;
/**
* 游标 id,id 的来源参照 {@link QChatServerInviteApplyRecord.recordId | recordId}
*
* 注:若有多条记录有相同的时间,需要借助这个参数才能精准的分页。
*/
cursor?: string;
}
export interface QChatServerJoinByInviteCodeOptions {
/**
* 服务器 id
*/
serverId: string;
/**
* 邀请码
*/
inviteCode: string;
/**
* 附言
*/
ps?: string;
}
export interface QChatServerGenerateInviteCodeOptions {
/**
* 服务器 id
*/
serverId: string;
/**
* 有效时长,单位: 毫秒。默认 30 天
*/
ttl?: number;
}
export interface QChatServerInviteCode {
/**
* 服务器 id
*/
serverId: string;
/**
* 唯一标识
*/
requestId: string;
/**
* 邀请码
*/
inviteCode: string;
/**
* 时间戳,表示邀请过期的截止日期
*/
expireTime: number;
}
/**
* 申请加入服务器的记录的信息
*/
export interface QChatServerApplyRecordInfo {
/**
* 申请记录的唯一标识
*/
requestId: string;
/**
* 时间戳,表示邀请过期的截止日期
*/
expireTime: number;
}
export interface SubscribeServerResult {
/**
* 订阅失败的服务器列表
*/
failedServers: {
serverId: string;
}[];
}