Skip to content

枚举与常量 ​

icqq 导出的常用枚举值。从 @icqqjs/icqq 引入即可使用。

js
const { OnlineStatus, Platform, ErrorCode } = require("@icqqjs/icqq")

Platform(登录设备) ​

创建客户端时通过 config.platform 指定要模拟的登录设备。

成员值说明
Android1安卓手机(默认)。
aPad2安卓平板。
Watch3安卓手表。
iMac4macOS。
iPad5iPad。
Tim6Tim。
Custom7自定义。

示例 ​

js
const { createClient, Platform } = require("@icqqjs/icqq")
const client = createClient({ platform: Platform.aPad })

OnlineStatus(在线状态) ​

用于 client.setOnlineStatus(status) 设置账号在线状态。

成员值说明
Offline0离线。
Online11在线。
Absent31离开。
Invisible41隐身。
Busy50忙碌。
Qme60Q 我吧。
DontDisturb70请勿打扰。

示例 ​

js
// 假设 client 已登录
const { OnlineStatus } = require("@icqqjs/icqq")
await client.setOnlineStatus(OnlineStatus.Online)

ChannelType(子频道类型) ​

频道相关,出现在子频道信息的 channel_type 字段。

成员值说明
Unknown0未知类型。
Text1文字频道。
Voice2语音频道。
Live5直播频道。
App6应用频道。
Forum7论坛频道。

示例 ​

js
const { ChannelType } = require("@icqqjs/icqq")
const channels = client.getChannelList("<guild_id>")
const textChannels = channels.filter((c) => c.channel_type === ChannelType.Text)

NotifyType(频道通知类型) ​

频道相关,出现在子频道的 notify_type 字段。

成员值说明
Unknown0未知类型。
AllMessages1接收所有消息通知。
Nothing2不通知。

GuildRole(频道权限) ​

频道成员的权限,出现在 GuildMember.role。

成员值说明
Member1普通成员。
GuildAdmin2频道管理员。
Owner4频道主。
ChannelAdmin5子频道管理员。

Gender(性别) ​

注意 Gender 是字符串字面量类型,不是数字枚举。

取值说明
"male"男。
"female"女。
"unknown"未知。

出现在 FriendInfo.sex、MemberInfo.sex、好友申请事件的 sex 等字段。


GroupRole(群内权限) ​

同样是字符串字面量类型。出现在 MemberInfo.role。

取值说明
"owner"群主。
"admin"管理员。
"member"普通成员。

ErrorCode(调用错误码) ​

调用 API 失败时,抛出的 ApiRejection.code 可能是下列值之一。

成员值说明
ClientNotOnline-1客户端离线。
PacketTimeout-2发包超时未收到回应。
UserNotExists-10用户不存在。
GroupNotJoined-20群不存在(未加入)。
MemberNotExists-30群员不存在。
MessageBuilderError-60发消息参数不正确。
RiskMessageError-70群消息被风控发送失败。
SensitiveWordsError-80群消息含敏感词发送失败。
SignApiError-90签名 api 异常。
HighwayTimeout-110上传图片 / 文件 / 视频超时。
HighwayNetworkError-120上传时网络错误。
NoUploadChannel-130没有上传通道。
HighwayFileTypeError-140不支持的 file 类型。
UnsafeFile-150文件安全校验未通过。
OfflineFileNotExists-160离线(私聊)文件不存在。
GroupFileNotExists-170群文件不存在(无法转发)。
FFmpegVideoThumbError-210获取视频封面失败。
FFmpegPttTransError-220音频转换失败。

示例 ​

js
const { ErrorCode } = require("@icqqjs/icqq")
try {
  await client.pickGroup(<group_id>).sendMsg("hi")
} catch (e) {
  if (e.code === ErrorCode.RiskMessageError) console.log("被风控了")
}

LoginErrorCode(登录错误码) ​

登录失败时 system.login.error 事件的 code 可能是下列值(不在列内的属于未知错误)。

成员值说明
WrongPassword1密码错误。
AccountFrozen40账号被冻结。
TooManySms162发短信太频繁。
WrongSmsCode163短信验证码错误。
WrongTicket237滑块 ticket 错误。

示例 ​

js
const { LoginErrorCode } = require("@icqqjs/icqq")
client.on("system.login.error", (e) => {
  if (e.code === LoginErrorCode.WrongPassword) console.log("密码错了")
})

相关 ​

事件类型参考 · 核心类型