/node-onebot

Nodejs原生QQ机器人Http-Api(onebot的实现)

Primary LanguageJavaScriptMIT LicenseMIT

为了更好的维护和更新,该项目作为官方http-api与oicq仓库合并,今后请前往这里查看

↓↓推荐该项目的使用者迁移到更方便管理和维护的模式

> npm i -g oicq@1
> oicq <account>

该仓库的代码以及衍生fork等仍可以正常使用不受影响

node-onebot

基于 oicqonebot(cqhttp) QQ机器人协议的实现
将机器人部署为独立的服务,通过http或ws与外界通信
已支持手机QQ扫码直接登录(提示输入密码时直接按回车)
master分支是独立运行版,另提供插件版

core node engine discord

使用方法:

  1. 下载安装 nodejs 安装版 (版本必须高于v12.16)
  2. 下载此源码包 (建议用git clone)
  3. 重命名 config.sample.jsconfig.js 并配置
  4. 运行 node main 123456789 (数字是登陆账号)
  • 今后启动只需最后一步
  • 只有首次登陆时需要交互(密码、验证码、设备锁),之后推荐使用pm2或forever等部署工具。

config.js 支持更多的配置,可参考 ConfBot
如何获得滑动验证码的ticket
其他常见问题
当前master分支下只进行http/ws的bug修复,及时更新依赖即可获得新特性。


通信

  • HTTP和正向WS服务器
  • POST上报(多点)
  • 反向WS连接(多点)

已实现(文档中已列出)
名称 备注
get_friend_list
get_group_list
get_group_info
get_group_member_list
get_group_member_info
get_stranger_info
send_private_msg message_id是string
send_group_msg message_id是string
send_msg
delete_msg
get_msg
set_friend_add_request
set_group_add_request
set_group_special_title
set_group_admin
set_group_card
set_group_kick
set_group_ban
set_group_leave
set_group_name
set_group_whole_ban
set_group_anonymous_ban 仅支持flag字段,不支持另外两种
set_group_anonymous
send_like
get_login_info
can_send_image
can_send_record
get_status
get_version_info
.handle_quick_operation 仅WS有效
get_cookies
get_csrf_token
clean_cache
已实现(新增)
名称 参数 备注
get_stranger_list 获取陌生人列表
send_discuss_msg discuss_id
message
auto_escape
发讨论组消息,没有message_id
send_group_notice content 发送群公告
send_group_poke group_id
user_id
群戳一戳,未来可能会用CQ码实现
set_online_status status 设置在线状态(※仅限手机协议支持)
11我在线上 31离开 41隐身 50忙碌 60Q我吧 70请勿打扰
add_friend group_id
user_id
comment
添加群员为好友
delete_friend user_id
block
删除好友
block默认为true
invite_friend group_id
user_id
邀请好友入群
set_nickname nickname 设置昵称
set_gender gender 设置性别 0未知 1男 2女
set_birthday birthday 设置生日 格式:20110202
set_description description 设置个人说明
set_signature signature 设置签名
set_portrait file 设置个人头像,与CQ码中的file格式相同
set_group_portrait file 设置群头像
get_system_msg 获得未处理的申请
get_chat_history message_id
count
返回message_id往前的count条消息
count默认20
get_forward_msg resid
send_temp_msg group_id
user_id
message
auto_escape
尚未实现
名称
get_group_honor_info
get_credentials
get_vip_info
get_record
get_image
set_restart

Events

点开

新版事件的notice部分的上报格式默认与cqhttp中的格式不同。
如需使用cqhttp格式,在config.js中将use_cqhttp_notice设置为true

新版格式(文档) cqhttp格式(文档)
好友请求 request.friend.add request.friend
加群请求 request.group.add request.group.add
加群邀请 request.group.invite request.group.invite
好友消息 message.private.friend message.private.friend
单向好友 message.private.single
临时会话 message.private.group message.private.group
临时会话 message.private.other message.private.other
群聊消息 message.group.normal message.group.normal
匿名消息 message.group.anonymous message.group.anonymous
讨论组消 message.discuss
好友增加 notice.friend.increase notice.friend_add
好友减少 notice.friend.decrease
好友撤回 notice.friend.recall notice.friend_recall
资料变更 notice.friend.profile
群员增加 notice.group.increase notice.group_increase
群员减少 notice.group.decrease notice.group_decrease
群组撤回 notice.group.recall notice.group_recall
管理变更 notice.group.admin notice.group_admin
群组禁言 notice.group.ban notice.group_ban
群组转让 notice.group.transfer
群组文件 表现为CQ码 notice.group_upload
群戳一戳 notice.group.poke
群设置变 notice.group.setting
元事件 meta_event.lifecycle.enable meta_event.lifecycle.enable
元事件 meta_event.lifecycle.disable meta_event.lifecycle.disable
元事件 meta_event.lifecycle.connect meta_event.lifecycle.connect
元事件 meta_event.heartbeat meta_event.heartbeat

支持的CQ码


其他

  • 字符串或数组消息段
  • 鉴权
  • WS心跳
  • _async异步调用api
  • _rate_limited限速调用api
  • 事件过滤器
  • 设置允许跨域请求
  • 自动更新内核版本

考古

旧版cqhttp文档