oicq

Install:
> npm i oicq # or > yarn add oicq
Usage:
const { createClient } = require("oicq")
const account = 147258369
const client = createClient(account)
client.on("system.online", () => console.log("Logged in!"))
client.on("message", e => {
console.log(e)
e.reply("hello world", true) //true表示引用对方的消息
})
client.on("system.login.qrcode", function (e) {
//扫码后按回车登录
process.stdin.once("data", () => {
this.login()
})
}).login()
注意:扫码登录现在仅能在同一ip下进行,建议使用密码登录,只需验证一次设备便长期有效
密码登录教程
Api Reference
Class: Client
使用 createClient() 或 new Client 创建实例
| Method |
Description |
| login() |
登录 |
| logout() |
登出 |
| queryQrcodeResult() |
获取扫码结果 |
| submitSlider() |
提交滑动验证码 |
| sendSmsCode() |
发短信 |
| submitSmsCode() |
提交短信验证码 |
| pickGroup() |
得到一个群对象 |
| pickFriend() |
得到一个好友对象 |
| pickMember() |
得到一个群员对象 |
| pickUser() |
得到一个用户对象 |
| pickDiscuss() |
得到一个讨论组对象 |
| setOnlineStatus() |
设置在线状态 |
| setNickname() |
设置昵称 |
| setGender() |
设置性别 |
| setBirthday() |
设置生日 |
| setDescription() |
设置个人说明 |
| setSignature() |
设置个性签名 |
| setAvatar() |
设置头像 |
| getRoamingStamp() |
获取漫游表情 |
| deleteStamp() |
删除漫游表情 |
| addClass() |
添加好友分组 |
| deleteClass() |
删除好友分组 |
| renameClass() |
重命名好友分组 |
| reloadFriendList() |
重载好友列表 |
| reloadStrangerList() |
重载陌生人列表 |
| reloadGroupList() |
重载群列表 |
| reloadBlackList() |
重载黑名单列表 |
| getSystemMsg() |
获取系统消息 |
| getForwardMsg() |
解析合并转发 |
| makeForwardMsg() |
制作合并转发 |
| getVideoUrl() |
获取视频地址 |
| imageOcr() |
ocr |
| cleanCache() |
清空缓存文件 |
| Property |
Description |
| uin |
我的账号 |
| status |
在线状态 |
| nickname |
昵称 |
| sex |
性别 |
| age |
年龄 |
| fl |
好友列表(Map) |
| gl |
群列表(Map) |
| sl |
陌生人列表(Map) |
| gml |
群员列表缓存(Map) |
| blacklist |
黑名单列表(Set) |
| classes |
好友分组(Map) |
| stamp |
漫游表情(Set)) |
| logger |
日志记录器 |
| config |
配置 |
| dir |
本地存储路径 |
| stat |
数据统计 |
| bkn |
csrf-token |
| cookies |
cookies |
| tiny_id |
我的频道账号 |
Events
| Event |
Description |
| system.login.qrcode |
收到二维码 |
| system.login.slider |
滑动验证码 |
| system.login.device |
设备锁 |
| system.login.error |
登录错误 |
| system.online |
上线 |
| system.offline.kickoff |
服务器踢下线 |
| system.offline.network |
网络错误导致下线 |
| request.friend |
好友申请 |
| request.group.add |
加群申请 |
| request.group.invite |
群邀请 |
| request |
全部请求 |
| message.group |
群消息 |
| message.private |
私聊消息 |
| message.discuss |
讨论组消息 |
| message |
全部消息 |
| notice.friend.increase |
好友增加 |
| notice.friend.decrease |
好友减少 |
| notice.friend.recall |
好友撤回 |
| notice.friend.poke |
好友戳一戳 |
| notice.friend |
好友通知 |
| notice.group.increase |
群员增加 |
| notice.group.decrease |
群员减少 |
| notice.group.recall |
群撤回 |
| notice.group.poke |
群戳一戳 |
| notice.group.ban |
群禁言 |
| notice.group.admin |
群管理变更 |
| notice.group.transfer |
群转让 |
| notice.group |
群通知 |
| notice |
全部通知 |
| sync.message |
私聊消息同步 |
| sync.read |
已读同步 |
| guild.message |
频道消息 |
Class: Group
群。 notice.group 和 message.group 相关事件中含有此实例 ( e.group 访问)
或者使用 client.pickGroup() 获得群实例
| Method |
Description |
| sendMsg() |
发送消息 |
| recallMsg() |
撤回消息 |
| setName() |
设置群名 |
| setAvatar() |
设置群头像 |
| muteAll() |
禁言全员 |
| muteMember() |
禁言群员 |
| muteAnony() |
禁言匿名者 |
| kickMember() |
踢人 |
| pokeMember() |
戳一戳 |
| setCard() |
设置名片 |
| setAdmin() |
设置管理员 |
| setTitle() |
设置头衔 |
| invite() |
邀请好友 |
| quit() |
退群/解散 |
| getAnonyInfo() |
获取匿名身份 |
| allowAnony() |
允许/禁止匿名 |
| getChatHistory() |
获取聊天记录 |
| markRead() |
标记已读 |
| getFileUrl() |
获取群文件下载地址 |
| shareMusic() |
分享音乐 |
| getMemberMap() |
获取群员列表 |
| getAvatarUrl() |
获取群头像地址 |
| pickMember() |
获取一个群成员对象 |
| getAtAllRemainder() |
获取@全体剩余次数 |
| renew() |
刷新群资料 |
| Property |
Description |
| group_id |
群号 |
| name |
群名 |
| info |
群资料 |
| is_owner |
我是否群主 |
| is_admin |
我是否管理 |
| all_muted |
是否全员禁言 |
| mute_left |
我的禁言剩余时间 |
| fs |
群文件系统 |
Class: User
| Method |
Description |
| sendMsg() |
发送消息 |
| recallMsg() |
撤回消息 |
| getSimpleInfo() |
查询资料 |
| getChatHistory() |
获取聊天记录 |
| markRead() |
标记已读 |
| getFileUrl() |
获取离线文件下载地址 |
| getAvatarUrl() |
获取头像地址 |
| asFriend() |
获取作为好友的对象 |
| asMember() |
获取作为某群群员的对象 |
| addFriendBack() |
回添双向好友 |
| setFriendReq() |
同意好友申请 |
| setGroupReq() |
同意加群申请 |
| setGroupInvite() |
同意群邀请 |
| Property |
Description |
| user_id |
QQ号 |
Class: Friend
好友。继承 User 的所有方法和属性
notice.friend 和 message.private 相关事件中含有此实例 ( e.friend 访问)
或者使用 client.pickFriend() 获得好友实例
| Method |
Description |
| shareMusic() |
分享音乐 |
| setRemark() |
设置备注 |
| setClass() |
设置分组 |
| thumbUp() |
点赞 |
| poke() |
戳一戳 |
| delete() |
删除 |
| sendFile() |
发送文件 |
| forwardFile() |
转发文件 |
| recallFile() |
撤回文件 |
| Property |
Description |
| nickname |
昵称 |
| sex |
性别 |
| remark |
备注 |
| class_id |
分组id |
| class_name |
分组名 |
| info |
好友资料 |
Class: Member
群成员。继承 User 的所有方法和属性
message.group 相关事件中含有此实例 ( e.member 访问)
或者使用 client.pickMember() 获得群成员实例
| Method |
Description |
| setAdmin() |
设置管理 |
| setTitle() |
设置头衔 |
| setCard() |
设置名片 |
| kick() |
踢群 |
| mute() |
禁言 |
| poke() |
戳一戳 |
| addFriend() |
加为好友 |
| renew() |
更新群员资料 |
| Property |
Description |
| group_id |
群号 |
| card |
名片或昵称 |
| title |
头衔 |
| is_friend |
是否好友 |
| is_owner |
是否群主 |
| is_admin |
是否管理 |
| mute_left |
禁言剩余时间 |
| group |
所在群对象 |
| info |
群员资料 |
Class: Contactable
抽象类,用户和群的基类,里面的方法和属性都会被继承
| Method |
Description |
| uploadImages() |
上传一批图片以备发送 |
| uploadVideo() |
上传一个视频以备发送 |
| uploadPtt() |
上传一个语音以备发送 |
| makeForwardMsg() |
制作合并转发消息以备发送 |
| getForwardMsg() |
解析合并转发消息 |
| getVideoUrl() |
获取视频下载地址 |
| Property |
Description |
| client |
所在客户端对象 |
Class: Gfs
群文件系统,通过 group.fs 获取
| Method |
Description |
| df() |
查询使用空间 |
| stat() |
获取文件或目录属性 |
| dir() |
列出文件和目录 |
| ls() |
dir的别名 |
| mkdir() |
创建目录 |
| rm() |
删除文件或目录 |
| rename() |
重命名文件或目录 |
| mv() |
移动文件 |
| upload() |
上传文件 |
| forward() |
转发文件 |
| download() |
获取下载链接 |
Class: Message
拥有子类: PrivateMessage, GroupMessage, DiscussMessage
对应的消息事件中含有这些实例中的一个
| Method |
Description |
| serialize() |
序列化一条消息 |
| toString() |
一种适合阅读的形式 |
| Static Method |
Description |
| deserialize() |
反序列化一条消息 |
| Property |
Description |
| message_type |
消息类别:群或私聊 |
| sub_type |
子类别 |
| group_id |
群号 |
| from_id |
发送者 |
| to_id |
接收者 |
| anonymous |
匿名者信息 |
| auto_reply |
是否自动回复 |
| block |
是否屏蔽 |
| atme |
是否atme |
| atall |
是否atall |
| message |
消息链 |
| raw_message |
消息摘要 |
| sender |
发送者 |
| time |
消息时间 |
| seq |
消息序号 |
| rand |
消息随机数 |
| font |
字体 |
| source |
引用回复的消息 |
Namespace: segment
用于创建可发送的消息元素类型
//样例代码,文字+图片+表情+AT
const { segment } = require("oicq")
const message = [
"hello world",
segment.image("/tmp/abc.jpg"),
segment.face(104),
segment.at(10001),
]
| Method |
Description |
| at() |
创建at元素 |
| face() |
创建表情元素 |
| image() |
创建图片元素 |
| flash() |
创建闪照元素 |
| video() |
创建视频元素 |
| record() |
创建语音元素 |
| xml() |
创建xml元素 |
| json() |
创建json元素 |
| share() |
创建链接分享元素 |
| location() |
创建地点分享元素 |
| poke() |
创建戳一戳元素 |
| bface() |
创建bface元素 |
| sface() |
创建sface元素 |
| mirai() |
创建特殊元素 |
其他:
