# 应用类api
说明
所有应用类API具有统一的返回值:Ret
调用 Promise
api 时无需使用catch()
,需要判断是否成功请使用Ret.retcode或Ret.status
大部分API没有data
返回值
API调用失败时你会得到一个error
(包含code
和message
)
弃用说明
弃用只是不推荐使用,并不会删除
- 获取列表和资料
- 消息相关
- Client.sendPrivateMsg(user_id, message, auto_escape)
- Client.sendGroupMsg(group_id, message, auto_escape)
- Client.sendDiscussMsg(discuss_id, message, auto_escape)
- Client.sendTempMsg(group_id, user_id, message, auto_escape)
- Client.deleteMsg(message_id)
- Client.reportReaded(message_id)
- Client.getMsg(message_id)
- Client.getChatHistory(message_id, count)
- Client.getForwardMsg(resid)
- Client.makeForwardMsg(fakes, dm)
- 构建消息
- .text(text) 弃用
- .at(qq, text, dummy)
- .face(id, text)
- .sface(id, text)
- .bface(file)
- .rps(id)
- .dice(id)
- .image(file, cache, timeout, headers)
- .flash(file, cache, timeout, headers)
- .record(file, cache, timeout, headers)
- .video(file)
- .location(lat, lng, address, id)
- .music(type, id)
- .json(data)
- .xml(data, type)
- .share(url, title, image, content)
- .shake()
- .poke(type, id)
- .reply(id)
- .node(id)
- .anonymous(ignore)
- .mirai(data)
- segment.toCqcode(elem(s))
- 系统消息处理
- 群操作
- Client.sendGroupNotice(group_id, content)
- Client.setGroupName(group_id, group_name)
- Client.setGroupAnonymous(group_id, enable)
- Client.setGroupWholeBan(group_id, enable)
- Client.setGroupAdmin(group_id, user_id, enable)
- Client.setGroupSpecialTitle(group_id, user_id, special_title, duration)
- Client.setGroupCard(group_id, user_id, card)
- Client.setGroupKick(group_id, user_id, reject_add_request)
- Client.setGroupBan(group_id, user_id, duration)
- Client.setGroupAnonymousBan(group_id, flag, duration?: number)
- Client.setGroupLeave(group_id, dismiss)
- Client.sendGroupPoke(group_id, user_id)
- Client.setGroupPortrait(group_id, file)
- 个人相关
- Client.setOnlineStatus(status)
- Client.setNickname(nickname)
- Client.setGender(gender)
- Client.setBirthday(birthday)
- Client.setDescription(description)
- Client.setSignature(signature?: string)
- Client.setPortrait(file)
- Client.addGroup(group_id, comment)
- Client.addFriend(group_id, user_id, comment)
- Client.deleteFriend(user_id, block)
- Client.inviteFriend(group_id, user_id)
- Client.sendLike(user_id: number, times?: number)
- 群文件系统
- 其他
- Client.preloadImages(files) 弃用
- Client.getRoamingStamp(no_cache?: )
- Client.getCookies(domain)
- Client.getCsrfToken() 弃用
- Client.cleanCache(type)
- Client.getStatus() 弃用
- Client.reloadFriendList()
- Client.reloadGroupList()
- Client.sendUni(cmd, body)内部
- Client.sendOidb(cmd, body)内部
- Client.em(name: string, data?: any)内部
- Client.getGroupNotice(group_id) 弃用
- Client.getLevelInfo(user_id) 弃用
- Client.canSendImage() 弃用
- Client.canSendRecord() 弃用
- Client.getVersionInfo() 弃用
- 其他参数
# 获取列表和资料
# Client.getGroupInfo(group_id, no_cache)
获取群资料(该方法一般用于刷新群资料缓存,从缓存中获取直接访问
Client.gl.get(gid)
即可)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
no_cache? | boolean | false | 是否不使用缓存数据 |
# Client.getGroupMemberList(group_id, no_cache)
获取群成员列表,缓存于
Client.gml
中
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
no_cache? | boolean | false | 是否不使用缓存数据 |
返回值 Promise
<Ret<Map
<number, MemberInfo>>>
# Client.getGroupMemberInfo(group_id, user_id, no_cache)
获取群员资料,缓存于
client.gml
中
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | QQ号 | |
no_cache? | boolean | false | 是否不使用缓存数据 |
返回值 Promise
<Ret<MemberInfo>>
# Client.getStrangerInfo(user_id, no_cache)
获取陌生人资料
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
no_cache? | boolean | false | 是否不使用缓存数据 |
返回值 Promise
<Ret<StrangerInfo>>
# Client.getFriendList() 弃用
获取好友列表
注意
已弃用 请直接访问 Client.fl
# Client.getStrangerList() 弃用
获取陌生人列表
注意
已弃用 请直接访问 Client.sl
# Client.getGroupList() 弃用
获取群列表
注意
已弃用 请直接访问 Client.gl
# Client.getLoginInfo() 弃用
获取登录账号信息
注意
已弃用 请直接访问 Client
返回值 Ret<StrangerInfo>
# 消息相关
# Client.sendPrivateMsg(user_id, message, auto_escape)
发送私聊消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
user_id | number | QQ号 | |
message | MessageElem|Iterable<MessageElem| string>| string | 消息内容 | |
auto_escape? | boolean | false | unknown |
返回值 Promise
<Ret<{ message_id }>>
参数 | 类型 | 说明 |
---|---|---|
message_id | string | 消息id |
# Client.sendGroupMsg(group_id, message, auto_escape)
发送群消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
message | MessageElem | Iterable<MessageElem| string> | string | 消息内容 | |
auto_escape? | boolean | false | unknown |
返回值 Promise
<Ret<{ message_id }>>
# Client.sendDiscussMsg(discuss_id, message, auto_escape)
发送讨论组消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
discuss_id | number | 讨论组号 | |
message | MessageElem | Iterable<MessageElem| string> | string | 消息内容 | |
auto_escape? | boolean | false | unknown |
返回值 Promise
<Ret>
# Client.sendTempMsg(group_id, user_id, message, auto_escape)
发送群临时会话,大多数时候可以使用私聊达到同样效果
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | QQ号 | |
message | MessageElem | Iterable<MessageElem| string> | string | 消息内容 | |
auto_escape? | boolean | false | unknown |
返回值 Promise
<Ret<{ message_id }>>
# Client.deleteMsg(message_id)
撤回消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
message_id | string | 消息id |
返回值 Promise
<Ret>
# Client.reportReaded(message_id)
置消息已读 (message_id及之前的消息将全部变为已读)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
message_id | string | 消息id |
返回值 Promise
<Ret>
# Client.getMsg(message_id)
获取一条消息 (无法获取被撤回的消息)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
message_id | string | 消息id |
返回值 Promise
<Ret<PrivateMessageEventData | GroupMessageEventData>>
# Client.getChatHistory(message_id, count)
获取message_id往前的count条消息(包括自身) 无法获取被撤回的消息,因此返回的数量并不一定为count 若要获取最新的20条消息,参考 message-id的规则和解析方法 自行构造消息id,除群号外其余位补0
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
message_id | string | 消息id | |
count? | number | 20 | 获取消息条数,不能超过20 |
返回值 Promise
<Ret<PrivateMessageEventData[] | GroupMessageEventData[]>>
# Client.getForwardMsg(resid)
获取转发消息 resid在xml消息中,需要自行解析xml获得 暂不支持套娃转发解析
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
resid | string | 转发消息id |
返回值 Promise
<Ret<Array
<{
group_id?: number,
user_id: number,
nickname: string,
time: number,
message: MessageElem[],
raw_message: string,
}>>>
# Client.makeForwardMsg(fakes, dm)
制作一个合并转发消息,得到的XmlElem可直接发送
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fakes | FakeMessage\Iterable<FakeMessage> | 消息 | |
dm | boolean | false | 以群模式上传图片,设为true则以私聊模式上传图片 |
# FakeMessage
属性 | 类型 | 值 | 说明 |
---|---|---|---|
user_id | number | ||
message | string|MessageElem|Iterable<MessageElem| string> | 可转发的有效元素理论上只有[文字、表情、图片],不支持CQ码 | |
nickname? | string | 昵称 | |
time? | number | 时间戳(秒),默认:当前时间 |
# 构建消息
提示
oicq中所有消息由模块中的工具类segment
和cqcode
中的方法构建
const { segment, cqcode } = require("oicq");
cqcode中的方法的返回值类型均为string
,也就是cq码
以下方法没有前缀的均为两种类都有的方法
# .text(text) 弃用
文本
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
text | string | 文本 |
返回值 TextElem
# .at(qq, text, dummy)
艾特
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
number|"all" | |||
text | string | '@' +qq|q名 | |
dummy? | boolean | false | 假at,只显示艾特文本 |
返回值 AtElem
# .face(id, text)
经典表情
可以参考这里(图片 (opens new window)/项目 (opens new window))的(可能更新不及时)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
id | number | 表情id | |
text? | string |
返回值 FaceElem
# .sface(id, text)
小表情(几乎不再使用)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
id | number | 表情id | |
text? | string |
返回值 FaceElem
# .bface(file)
原创表情
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | string | 文件路径 |
返回值 BfaceElem
# .rps(id)
猜拳
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
id? | number | `` | 1~3 |
返回值 MfaceElem
# .dice(id)
骰子
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
id? | number | `` | 1~6 |
返回值 MfaceElem
# .image(file, cache, timeout, headers)
图片(后三个参数在下载网络资源时有效)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | MediaFile | 文件 | |
cache? | boolean | true | file为网络资源时是否使用缓存 |
timeout? | number | `` | file为网络资源时请求超时时间 |
headers? | OutgoingHttpHeaders | `` | file为网络资源时请求头 |
返回值 ImgPttElem
# .flash(file, cache, timeout, headers)
闪照(后三个参数在下载网络资源时有效)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | MediaFile | 文件 | |
cache? | boolean | true | file为网络资源时是否使用缓存 |
timeout? | number | `` | file为网络资源时请求超时时间 |
headers? | OutgoingHttpHeaders | `` | file为网络资源时请求头 |
返回值 ImgPttElem
# .record(file, cache, timeout, headers)
语音(后三个参数在下载网络资源时有效)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | MediaFile | 文件 | |
cache? | boolean | true | file为网络资源时是否使用缓存 |
timeout? | number | `` | file为网络资源时请求超时时间 |
headers? | OutgoingHttpHeaders | `` | file为网络资源时请求头 |
返回值 ImgPttElem
# .video(file)
视频
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | string | 发送仅支持本地文件路径或转发 |
返回值 VideoElem
# .location(lat, lng, address, id)
地点分享
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
lat | number | 纬度 | |
lng | number | 经度 | |
address | string | 地点名 | |
id? | string | `` |
返回值 LocationElem
# .music(type, id)
音乐分享
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
type | MusicType | 平台名 | |
id | string | 音乐id |
返回值 MusicElem
# .json(data)
JSON消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
data | any | 一个 json 字符串或一个 json 对象 |
返回值 JsonElem
# .xml(data, type)
xml卡牌消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
data | string | ||
type? | number | `` |
返回值 XmlElem
# .share(url, title, image, content)
链接分享
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
url | string | 链接 | |
title | string | 标题 | |
image? | string | `` | |
content? | string | `` |
返回值 ShareElem
# .shake()
窗口抖动
返回值 ShakeElem
# .poke(type, id)
戳一戳
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
type | number | 0~6,分别对应哪种戳的类型 | |
id? | number | `` |
返回值 PokeElem
# .reply(id)
引用回复
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
id | string | message_id |
返回值 ReplyElem
# .node(id)
node
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
id | string |
返回值 NodeElem
# .anonymous(ignore)
匿名消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
ignore? | boolean | true | 匿名失败时是否继续发送 |
返回值 AnonymousElem
# .mirai(data)
只有mirai系客户端可以解析的消息
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
data | string |
返回值 MiraiElem
# segment.toCqcode(elem(s))
将元素转换到CQ码字符串(CQ码字符串无法逆转换到元素,因为类型会丢失)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
elem(s) | MessageElem|Iterable<MessageElem> |
返回值 string
# 系统消息处理
# Client.setFriendAddRequest(flag, approve, remark, block)
处理加好友请求
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
flag | string | 在[事件]中获得 | |
approve? | boolean | true | 是否同意请求 |
remark? | string | ||
block? | boolean |
返回值 Promise
<Ret>
# Client.setGroupAddRequest(flag, approve, remark, block)
处理入群请求
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
flag | string | 在[事件]中获得 | |
approve? | boolean | true | 是否同意请求 |
remark? | string | ||
block? | boolean |
返回值 Promise
<Ret>
# Client.getSystemMsg()
获取未处理的请求
返回值 Promise
<Ret<Array<FriendAddEventData | GroupAddEventData | GroupInviteEventData>>>
# FriendAddEventData
添加好友事件数据
继承于公共请求事件数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
request_type | string | "friend" | 请求类型 |
sub_type | string | "add" | "single" | //加好友请求 |
comment | string | 附加信息 | |
source | string | 来源(如"条件查找") | |
age | number | 年龄 | |
sex | Gender | 性别 |
# GroupAddEventData
群请求事件数据
继承于公共请求事件数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
request_type | string | "group" | 请求类型 |
sub_type | string | "add" | 加群请求 |
group_id | number | 群号 | |
group_name | string | 群名 | |
comment | string | 附加信息 | |
inviter_id? | number | 邀请者(来自群员的邀请时) | |
tips | string | 如"该帐号存在风险,请谨慎操作" |
# GroupInviteEventData
邀请入群事件数据
继承于公共请求事件数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
request_type | string | "group" | 请求类型 |
sub_type | string | "invite" | 群邀请 |
group_id | number | 群号 | |
group_name | string | 群名 | |
role | GroupRole | 邀请者权限 |
# 群操作
# Client.sendGroupNotice(group_id, content)
发简易群公告
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
content | string | 内容 |
返回值 Promise
<Ret>
# Client.setGroupName(group_id, group_name)
设置群名
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
group_name | string | 群名 |
返回值 Promise
<Ret>
# Client.setGroupAnonymous(group_id, enable)
开启或关闭匿名功能
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
enable? | boolean | true | 是否打开 |
返回值 Promise
<Ret>
# Client.setGroupWholeBan(group_id, enable)
全员禁言
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
enable? | boolean | true | 是否打开 |
返回值 Promise
<Ret>
# Client.setGroupAdmin(group_id, user_id, enable)
设置管理员
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | ||
enable? | boolean | true | 是否打开 |
返回值 Promise
<Ret>
# Client.setGroupSpecialTitle(group_id, user_id, special_title, duration)
设置群头衔
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | ||
special_title? | string | `` | 头衔 |
duration? | boolean | `` | 有效期 |
返回值 Promise
<Ret>
# Client.setGroupCard(group_id, user_id, card)
设置群名片
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | ||
card? | string | `` | 群昵称 |
返回值 Promise
<Ret>
# Client.setGroupKick(group_id, user_id, reject_add_request)
踢人(不支持批量)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | ||
reject_add_request? | boolean | `` | 不再接收其群请求 |
返回值 Promise
<Ret>
# Client.setGroupBan(group_id, user_id, duration)
禁言,时间为0则取消禁言
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | ||
duration? | number | 1800 | 禁言时间(秒) |
返回值 Promise
<Ret>
# Client.setGroupAnonymousBan(group_id, flag, duration?: number)
禁言匿名群员
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
flag | string | 在[消息事件]中 | |
duration? | number | `` | 禁言时间(秒) |
返回值 Promise
<Ret>
# Client.setGroupLeave(group_id, dismiss)
退群
注意
dismiss参数可能无效,如果你是群主无论如何群都会立即解散
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
dismiss? | boolean | false | 是否解散 |
返回值 Promise
<Ret>
# Client.sendGroupPoke(group_id, user_id)
戳一戳(可以对好友使用)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number |
返回值 Promise
<Ret>
# Client.setGroupPortrait(group_id, file)
设置群头像
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
file | MediaFile | 媒体文件 |
返回值 Promise
<Ret>
# 个人相关
# Client.setOnlineStatus(status)
设置在线状态
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
status | number | 在线状态 |
返回值 Promise
<Ret>
# Client.setNickname(nickname)
设置昵称
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
nickname | string | 昵称 |
返回值 Promise
<Ret>
# Client.setGender(gender)
设置性别
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
gender | 0|1|2 | 未知|男|女 |
返回值 Promise
<Ret>
# Client.setBirthday(birthday)
设置生日
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
birthday | string|number | 20110202的形式(yyyyMMdd) |
返回值 Promise
<Ret>
# Client.setDescription(description)
设置个人说明
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
description? | string | "" | 说明 |
返回值 Promise
<Ret>
# Client.setSignature(signature?: string)
设置个性签名
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
signature? | string | "" | 个性签名 |
返回值 Promise
<Ret>
# Client.setPortrait(file)
设置头像
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | MediaFile | 媒体文件 |
返回值 Promise
<Ret>
# Client.addGroup(group_id, comment)
添加群
注意
该接口风控
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
comment? | string | "" | 附言 |
返回值 Promise
<Ret>
# Client.addFriend(group_id, user_id, comment)
添加群员为好友
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number | ||
comment? | string | "" | 附言 |
返回值 Promise
<Ret>
# Client.deleteFriend(user_id, block)
删除好友
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
user_id | number | ||
block? | boolean | `` |
返回值 Promise
<Ret>
# Client.inviteFriend(group_id, user_id)
邀请好友入群(不支持陌生人和批量)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 | |
user_id | number |
返回值 Promise
<Ret>
# Client.sendLike(user_id: number, times?: number)
点赞(不支持陌生人)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
user_id | number | ||
times? | number | 1 | 次数 |
返回值 Promise
<Ret>
# 群文件系统
注意
这里面的方法是会reject的,需要catch
node15开始,unhandledRejection默认会升级为uncaughtException导致程序退出
# Client.acquireGfs(group_id)
初始化一个群文件系统
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 |
返回值 Gfs
# Gfs.gid 只读
群号
# Gfs.stat(fid)
查看文件属性(尽量不要对目录使用此方法)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fid | string | 文件或目录 |
返回值 Promise<GfsStat>
# GfsStat
值 | 说明 |
---|---|
GfsDirStat | 目录属性 |
GfsFileStat | 文件属性 |
# Gfs.ls(fid, start, limit)
列出文件
Gfs.dir(fid, start, limit)
别名
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fid? | string | `` | 文件或目录 |
start? | number | 0 | 开始的索引 |
limit? | number | 100 | 限制,最大100 |
返回值 Promise<GfsStat[]>
# Gfs.mkdir(name: string)
创建目录
只能在根目录下创建目录
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
name? | string | 目录 |
返回值 Promise<GfsDirStat>
# GfsDirStat
目录属性
继承于群文件基础属性
属性 | 类型 | 说明 |
---|---|---|
file_count | number | 文件数 |
is_dir | true | 是否为目录 |
# Gfs.rm(fid)
删除文件或目录(删除目标是目录的时候会删除下面的所有文件)
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fid | string | 文件或目录 |
返回值 Promise<void>
# Gfs.rename(fid, name)
重命名文件或目录
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fid | string | 文件或目录 | |
name | string | 文件名或目录名 |
返回值 Promise<void>
# Gfs.mv(fid, pid)
移动文件到其他目录
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fid | string | 文件或目录 | |
pid | string | 父目录 |
返回值 Promise<void>
# Gfs.df()
查看可用空间和文件数量
返回值:
Promise<{
total: number,//总容量
used: number,//已用
free: number,//剩余
file_count: number,//
max_file_count: number,//
}>;
# Gfs.upload(file, pid, name, process)
上传文件,仅支持本地文件路径或Buffer
大文件上传时开启debug可以打印上传进度
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
file | MediaFile | 文件 | |
pid? | string | '/' | 父目录,默认传到根目录 |
name? | string | `` | 文件名? |
process | function | undefined | 上传进度回调函数 |
返回值 Promise
<GfsFileStat>
# process(percentage)
上传进度回调函数
参数 | 类型 | 说明 |
---|---|---|
percentage | string | 百分比 |
# GfsFileStat
文件属性
继承于群文件基础属性
属性 | 类型 | 说明 |
---|---|---|
size | number | 文件大小(字节) |
busid | number | |
md5 | string | |
sha1 | string | |
duration | number | 有效时间 |
download_times | number | 下载次数 |
# Gfs.download(fid)
获取文件的下载链接
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
fid | string | 文件 |
返回值 Promise
<FileElem["data"]>
# 其他
# Client.preloadImages(files) 弃用
预先上传图片以备发送 通常图片在发送时一并上传 提前上传可用于加快发送速度,实现秒发
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
files | Iterable<MediaFile> | 媒体文件 |
返回值 Promise
<Ret<string[]>>
# Client.getRoamingStamp(no_cache?: )
获取漫游表情
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
no_cache? | boolean | false | 是否不用缓存中的 |
返回值 Promise
<Ret<string[]>>
# Client.getCookies(domain)
获取cookie
提示
使用方法见web-api
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
domain? | Domain | `` | 域名 |
返回值 Promise
<Ret<{ cookies: string }
>>
# Domain
值 |
---|
"tenpay.com"
"docs.qq.com"
"office.qq.com"
"connect.qq.com"
"vip.qq.com"
"mail.qq.com"
"qzone.qq.com"
"gamecenter.qq.com"
"mma.qq.com"
"game.qq.com"
"qqweb.qq.com"
"openmobile.qq.com"
"qun.qq.com"
"ti.qq.com"
# Client.getCsrfToken() 弃用
获取CsrfToken
提示
使用方法见web-api
返回值 Promise
<Ret<{ token: number }
>>
# Client.cleanCache(type)
清除 image 和 record 文件夹下的缓存文件
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
type? | "image"\|"record" | `` | 类型 |
返回值 Promise
<Ret>
# Client.getStatus() 弃用
获取在线状态和数据统计
注意
已弃用 请直接访问 Client.stat
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
type? | "image"\|"record" | `` | 类型 |
# Status 弃用
属性 | 类型 | 默认 | 说明 |
---|---|---|---|
online | boolean | 是否在线 | |
status | number | 在线状态 | |
remote_ip? | number | `` | 服务器远程ip |
remote_port? | number | `` | 服务器远程端口 |
msg_cnt_per_min | number | 每分钟消息数 | |
statistics | Statistics | 数据统计信息 | |
config | ConfBot | 实例配置 |
# Client.reloadFriendList()
重载好友列表 完成之前无法调用任何api,也不会上报任何事件
返回值 Promise
<Ret>
# Client.reloadGroupList()
重载群列表 完成之前无法调用任何api,也不会上报任何事件
返回值 Promise
<Ret>
# Client.sendUni(cmd, body)内部
隐藏方法,可用于扩展协议
发送一个未加密的uni包
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
cmd | string | ||
body | Uint8Array |
返回值 Promise
<Ret<Buffer
>>
# Client.sendOidb(cmd, body)内部
隐藏方法,可用于扩展协议
发送一个未加密的oidb包
参数 | 类型 | 默认需 | 说明 |
---|---|---|---|
cmd | string | ||
body | Uint8Array |
返回值 Promise
<Ret<Buffer
>>
# Client.em(name: string, data?: any)内部
隐藏方法,可用于扩展协议
触发一个oicq标准事件
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
name | string | 事件名 | |
data? | any | 参数 |
# Client.getGroupNotice(group_id) 弃用
获取群公告
注意
该方法已废弃,参考web-api自行获取
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
group_id | number | 群号 |
返回值:
Promise
<Ret<any[]>>
# Client.getLevelInfo(user_id) 弃用
获取等级信息
注意
该方法已废弃,参考web-api自行获取
参数 | 类型 | 默认 | 说明 |
---|---|---|---|
user_id? | number | `` |
返回值 Promise
<Ret<any>>
# Client.canSendImage() 弃用
是否能发图(没用)
注意
该方法已废弃,参考web-api自行获取
返回值 Promise
<Ret>
# Client.canSendRecord() 弃用
是否能发语音(没用)
注意
该方法已废弃,参考web-api自行获取
返回值 Promise
<Ret>
# Client.getVersionInfo() 弃用
获取版本信息(没用)
注意
该方法已废弃,参考web-api自行获取
返回值 Promise
<Ret>
# 其他参数
# Ret<object>
应用类方法返回参数
属性 | 说明 | 成功 | 异步 | 失败 |
---|---|---|---|---|
retcode | 状态码 | 0 | 1 | retcode |
status | 状态 | "ok" | "async" | "failed" |
data | <object>(返回的数据) | Object | null | null |
error | 错误 | null | null | RetError |
# retcode
值 | 说明 |
---|---|
0 | 成功 |
1 | 异步 |
100 | 参数错误 |
102 | 失败 |
103 | 超时 |
104 | 客户端未上线 |
# RetError
错误信息对象
属性 | 类型 | 说明 |
---|---|---|
code | number | 错误码 |
message | string | 错误信息 |
# MessageElem
群权限
值 | 说明 |
---|---|
TextElem | 一般文本消息 |
AtElem | 艾特某人 |
FaceElem | 经典表情 |
BfaceElem | 原创表情 |
MfaceElem | 魔法表情 |
ImgPttElem | 图片,闪照,语音 |
LocationElem | 地点分享 |
MusicElem | 音乐分享 |
ShareElem | 链接分享 |
JsonElem | json消息 |
XmlElem | xml卡牌消息 |
AnonymousElem | 匿名消息 |
ReplyElem | 回复 |
NodeElem | 合并转发 |
ShakeElem | 窗口抖动 |
PokeElem | 戳一戳 |
FileElem | 文件(仅接收) |
VideoElem | 视频 |
MiraiElem | 该元素仅mirai系的客户端可解析,官方客户端无法识别 |
说明
所有的消息类型都是对象 内有type<string>属性和data<object>属性
# TextElem
文本消息
type
值 说明 text
文本 data
属性 类型 默认 说明 text string 消息文本
# AtElem
艾特某人
type
值 说明 "at"
艾特某人 data
属性 类型 默认 说明 qq number| "all"
艾特的对象,all为全体 text? string '@'
+qq|q名at失败时显示的文本 dummy? boolean false
假at,只显示艾特文本
# FaceElem
经典表情
type
值 说明 "face"
"sface"
data
属性 类型 默认 说明 id number 表情id text? string
# BfaceElem
原创表情
type
值 说明 "bface"
原创表情 data
属性 类型 默认 说明 file string 文件路径 text string
# MfaceElem
魔法表情
type
值 说明 "rps"
猜拳 "dice"
骰子 data
属性 类型 默认 说明 id number
# ImgPttElem
图片,闪照,语音
type
值 说明 "image"
图片 "flash"
闪照 "record"
语音 data
属性 类型 默认 说明 file MediaFile 文件 cache? boolean true
file为网络资源时是否使用缓存 timeout? number `` file为网络资源时请求超时时间 headers? OutgoingHttpHeaders `` file为网络资源时请求头 url? string `` 资源地址,仅接收时有 type? string "image"|"flash"|"face" 类型
# MediaFile
类型 | 说明 |
---|---|
string | 等同于[CQ:image]中的file参数,string支持以下写法: |
'http(s)://' | |
'base64://' | |
'/tmp/example.jpg' 本地绝对路径 | |
'example.jpg' 本地相对(于启动目录的)路径 | |
'file:///' | |
'protobuf://' 仅用于语音和视频的转发 | |
Uint8Array | |
ArrayBuffer | |
SharedArrayBuffer |
# LocationElem
地点分享
type
值 说明 "location"
地点分享 data
属性 类型 默认 说明 address string 地点名 lat number 纬度 lng number 经度 name? string id? string
# MusicElem
音乐分享
type
值 说明 "music"
音乐分享 data
属性 类型 默认 说明 type MusicType 平台名 id string 音乐id
# MusicType
值 | 说明 |
---|---|
"qq" | QQ影音 |
"163" | 网抑云音乐 |
"migu" | 咪咕音乐 |
"kugou" | 酷狗音乐 |
"kuwo" | 酷我音乐 |
# ShareElem
链接分享
type
值 说明 "share"
链接分享 data
属性 类型 默认 说明 url string 链接 title string 标题 content? string `` 内容 image? string `` 预览图
# JsonElem
JSON消息
json消息
值 说明 "json"
json消息 data
属性 类型 默认 说明 data any 一个 json 字符串或一个 json 对象 text? string ``
# XmlElem
xml卡牌消息
type
值 说明 "xml"
xml卡牌消息 data
属性 类型 默认 说明 data string type? number `` type为35的是合并转发 text? string ""
# AnonymousElem
匿名消息
type
值 说明 "anonymous"
匿名消息 data
属性 类型 默认 说明 ignore? boolean true
匿名失败时是否继续发送
# ReplyElem
引用回复
type
值 说明 "reply"
回复 data
属性 类型 默认 说明 id string message_id
# NodeElem
node
type
值 说明 "node"
data
属性 类型 默认 说明 id string
# ShakeElem
窗口抖动
type
值 说明 "shake"
窗口抖动
# PokeElem
戳一戳
type
值 说明 "poke"
戳一戳 data
属性 类型 默认 说明 type number 0~6,分别对应哪种戳的类型 id? number ``
# FileElem
文件(仅接受)
type
值 说明 "file"
文件(仅接受) data
属性 类型 默认 说明 name string 文件名 url string 资源链接 size number 大小,单位[] md5 string md5 duration number busid弃用 number fileid弃用 string fid string
# VideoElem
视频
type
值 说明 "video"
视频 data
属性 类型 默认 说明 file string 发送仅支持本地文件路径或转发 url? string 仅接收
# MiraiElem
该元素仅mirai系的客户端可解析,官方客户端无法识别
type
值 说明 "mirai"
mirai消息 data
属性 类型 默认 说明 data string
# CommonRequestEventData
公共请求事件数据
继承于公共事件数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
post_type | string | "request" | |
user_id | number | ||
nickname | string | 昵称 | |
flag | string | 同意或拒绝时传入 |
# CommonEventData
公共事件数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
self_id | number | ||
time | number | 10位时间戳 | |
post_type | string | "system" | "request" | "message" | "notice" | "sync" | string | 事件类型 |
sub_type? | string |
# CommonMessageEventData
公共消息数据
继承于 公共事件数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
post_type | string | "message" | |
message | MessageElem[] | 消息链 | |
raw_message | string | 字符串格式的消息 | |
message_id | string | 消息id | |
user_id | number | ||
font | string | ||
reply | function | reply | 可直接使用这个函数回复消息 |
# reply(message, auto_escape)
属性 | 类型 | 值 | 说明 |
---|---|---|---|
message | MessageElem | Iterable<MessageElem|string> | string | ||
auto_escape? | boolean |
返回值 Promise
<Ret<{ message_id|string }>>
# PrivateMessageEventData
私聊消息数据 继承于公共消息数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
message_type | string | "private" | 私聊消息 |
sub_type | string | "friend" | "group" | "single" | "other" | "self" | |
sender | FriendInfo | 发送者 | |
auto_reply | boolean | 是否自动回复 |
# GroupMessageEventData
群聊消息数据 继承于公共消息数据
属性 | 类型 | 值 | 说明 |
---|---|---|---|
message_type | string | "group" | 群消息 |
sub_type | string | "normal" | "anonymous" | 类型 |
group_id | number | 群号 | |
group_name | string | 群名 | |
anonymous | Anonymous | null | 匿名消息 | |
sender | MemberBaseInfo | 发送者 | |
atme | boolean | ||
seqid | number | ||
block | boolean | 是否已屏蔽 |
# Anonymous
# GfsBaseStat
群文件基础属性
属性 | 类型 | 说明 |
---|---|---|
fid | string | 文件(夹)id |
pid | string | 父文件夹id |
name | string | |
user_id | number | 创建者 |
create_time | number | 创建时间 |