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.sexMemberInfo.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("密码错了")
})

相关

事件类型参考 · 核心类型