# http-api (node-onebot)
提示
将机器人部署为独立的服务,通过http或ws与外界通信
兼容 onebot (opens new window) 协议 (旧称cqhttp)
系统中需安装 nodejs (opens new window) 12.16 以上版本,否则报错
Usage:
# install
> npm i oicq -g
# startup
> oicq <account>
# startup with pm2
> pm2 start "oicq <account>"
# update
> npm up -g oicq
配置等文件存储在
/home/<user>/.oicq/
下,Windows下一般是C:\Users\<user>\.oicq\
可以用扫码或密码登录,如需切换登录方式,请删除%HOME%/.oicq/<account>/password
文件
# 通信
- [x] HTTP和正向WS服务器
- [x] POST上报(多点)
- [x] 反向WS连接(多点)
# API (完整文档 (opens new window))
已实现(文档中已列出)
名称 | 备注 |
---|---|
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
。
新版格式(文档 (opens new window)) | cqhttp格式(文档 (opens new window)) | |
---|---|---|
好友请求 | 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 |
# 其他
- [x] 字符串或数组消息段
- [x] 鉴权
- [x] WS心跳
- [x] _async异步调用api
- [x] _rate_limited限速调用api
- [x] 事件过滤器 (opens new window)
- [x] 设置允许跨域请求
- [x] config.js 支持更多的配置 (opens new window)