2.1.9 • Published 3 years ago

@axeelander/oicq v2.1.9

Weekly downloads
-
License
MPL-2.0
Repository
-
Last release
3 years ago

oicq

npm version dm node engine discord

  • QQ(安卓)协议基于Node.js的实现,支持最低node版本为 v14
  • 若你不熟悉Node.js或不会组织代码,可通过 template 创建一个简单的应用程序
  • API Reference / Type Docs (文档仅供参考,具体类型以包内d.ts声明文件为准)
  • 从v1.x升级 (v1在master分支)

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()

注意:第一次运行程序时,有可能扫描命令行中的二维码和图片中的二维码都会显示过期,只需要重新运行一次程序即可,后面不会出现这个问题。

Api Reference

Class: Client

MethodDescription
login()登录
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()获取视频地址
cleanCache()清空缓存文件
PropertyDescription
uin我的账号
status在线状态
nickname昵称
sex性别
age年龄
fl好友列表(Map)
gl群列表(Map)
sl陌生人列表(Map)
gml群员列表缓存(Map)
blacklist黑名单列表(Set)
classes好友分组(Map)
stamp漫游表情(Set))
logger日志记录器
config配置
dir本地存储路径
stat数据统计
bkncsrf-token
cookiescookies
EventDescription
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已读同步

Class: Group

所有的notice.groupmessage.group事件的上报数据中含有此实例 (e.group访问)

MethodDescription
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()刷新群资料
PropertyDescription
group_id群号
name群名
info群资料
is_owner我是否群主
is_admin我是否管理
all_muted是否全员禁言
mute_left我的禁言剩余时间
fs群文件系统

Class: User

MethodDescription
sendMsg()发送消息
recallMsg()撤回消息
getSimpleInfo()查询资料
getChatHistory()获取聊天记录
markRead()标记已读
getFileUrl()获取离线文件下载地址
getAvatarUrl()获取头像地址
asFriend()获取作为好友的对象
asMember()获取作为某群群员的对象
addFriendBack()回添双向好友
setFriendReq()同意好友申请
setGroupReq()同意加群申请
setGroupInvite()同意群邀请
PropertyDescription
user_idQQ号

Class: Friend

继承 User 的所有方法和属性
所有的notice.friendmessage.private事件中含有此实例 (e.friend访问)

MethodDescription
shareMusic()分享音乐
setRemark()设置备注
setClass()设置分组
thumbUp()点赞
poke()戳一戳
delete()删除
PropertyDescription
nickname昵称
sex性别
remark备注
class_id分组id
class_name分组名
info好友资料

Class: Member

继承 User 的所有方法和属性
所有的message.group事件中含有此实例 (e.member访问)

MethodDescription
setAdmin()设置管理
setTitle()设置头衔
setCard()设置名片
kick()踢群
mute()禁言
poke()戳一戳
addFriend()加为好友
renew()更新群员资料
PropertyDescription
group_id群号
card名片或昵称
title头衔
is_friend是否好友
is_owner是否群主
is_admin是否管理
mute_left禁言剩余时间
group所在群对象
info群员资料

Class: Contactable

抽象类,用户和群的基类,里面的方法和属性都会被继承

MethodDescription
uploadImages()上传一批图片以备发送
uploadVideo()上传一个视频以备发送
uploadPtt()上传一个语音以备发送
makeForwardMsg()制作合并转发消息以备发送
getForwardMsg()解析合并转发消息
getVideoUrl()获取视频下载地址
PropertyDescription
client所在客户端对象

Class: Gfs

群文件系统

MethodDescription
df()查询使用空间
stat()获取文件或目录属性
dir()列出文件和目录
ls()dir的别名
mkdir()创建目录
rm()删除文件或目录
rename()重命名文件或目录
mv()移动文件
upload()上传文件
download()获取下载链接
PropertyDescription
group_id群号
group所在群对象
client所在客户端对象

Class: Message

拥有子类: PrivateMessage, GroupMessage, DiscussMessage

MethodDescription
serialize()序列化一条消息
toString()一种适合阅读的形式
Static MethodDescription
deserialize()反序列化一条消息
PropertyDescription
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引用回复的消息

Class: ForwardMessage

基本同 Message

Namespace: segment

const { segment } = require("oicq)

MethodDescription
at()创建at元素
face()创建表情元素
image()创建图片元素
flash()创建闪照元素
video()创建视频元素
record()创建语音元素
xml()创建xml元素
json()创建json元素
share()创建链接分享元素
location()创建地点分享元素
poke()创建戳一戳元素
bface()创建bface元素
sface()创建sface元素
mirai()创建特殊元素

使用密码登录

首次登录建议使用扫码,因为使用密码可能需要处理滑动验证码,目前非手机环境的滑动无法通过。
登录几天后不会再弹出滑动验证码,此时建议改用密码登录,更加稳定。

const { createClient } = require("oicq")
const client = createClient(147258369)

//若弹出登录保护地址,去验证通过即可
client.login("password")

其他:

group:236172566