在你想存放配置文件的目录执行如下命令
3 更改生成的默认配置文件成你想要的配置配置后再次运行上面的指令,启动项目
npm install onebots
npm install @icqqjs/icqq # 如需使用icqq适配器,请务必安装
npm install web-wechat # 如需使用微信适配器,请务必安装
npm install qq-official-bot # 如需使用qq官方机器人适配器,请务必安装
npm install node-dd-bot # 如需使用钉钉机器人适配器,请务必安装
安装:
在你的项目根目录新建文件 .npmrc
,并录入以下内容
@icqqjs:registry=https://npm.pkg.github.com
命令行输入 npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
,回车,根据提示登录github
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
UserName: # 你的github账号
Password: # 前往 https://github.com/settings/tokens/new 获取,scopes勾选 read:packages
E-Mail: # 你的公开邮箱地址
安装依赖
npm install @icqqjs/icqq # or > yarn add @icqqjs/icqq
npx onebots -r icqq # 注册icqq适配器并启动onebots
npx onebots -r wechat # 注册微信适配器并启动onebots
npx onebots -r qq # 注册qq官方适配器并启动onebots
npx onebots -r dingtalk # 注册钉钉适配器并启动onebots
# 你也可以同时注册多个适配器,多次使用-r即可,例如 npx onebots -r qq -r icqq -r wechat
4. 更改生成的默认配置文件成你想要的配置配置后再次运行上面的指令,启动项目
port : 6727 # 监听端口
log_level : info # 日志等级
platform : 5 # 机器人客户端协议(1:Android 2:APad 3:Watch 4:IMac 5:IPad)
timeout : 30 # 登录超时时间(秒)
general : # 通用配置,在单个配置省略时的默认值
V11 : # oneBotV11的通用配置
heartbeat : 3 # 心跳间隔 (秒)
access_token : " " # 访问api的token
post_timeout : 15 # 上报超时时间,(秒)
secret : " " # 上报数据的sha1签名密钥
rate_limit_interval : 4 # ws心跳间隔(秒)
post_message_format : string # "string"或"array"
reconnect_interval : 3 # 重连间隔 (秒)
use_http : true # 是否使用 http
enable_cors : true # 是否允许跨域
filters : {} # 过滤器配置
use_ws : true # 是否使用websocket
http_reverse : [] # http上报地址
ws_reverse : [] # 反向ws连接地址
V12 : # oneBotV12的通用配置
heartbeat : 3 # 心跳间隔 (秒)
access_token : " " # 访问api的token
request_timeout : 15 # 上报超时时间 (秒)
reconnect_interval : 3 # 重连间隔 (秒)
enable_cors : true # 是否允许跨域
use_http : true # 是否启用http
use_ws : true # 是否启用 websocket
filters : {} # 过滤器配置
webhook : [] # http 上报地址
ws_reverse : [] # 反向ws连接地址
protocol :
platform : 2
sign_api_addr : " " # 你的签名地址
password : " " # 账号密码,未配置则扫码登陆
# ...其他配置项参考icqq的Config配置
# 每个账号的单独配置(用于覆盖通用配置)
icqq.123456789 :
password : " " # 账号密码,未配置则扫码登陆
version : V11 # 使用的oneBot版本
# ...其他配置项参见上方对应oneBot版本的通用配置
protocol :
platform : 2
sign_api_addr : " " # 你的签名地址
# ...其他配置项参考icqq的Config配置
qq.123456789 : # `${适配器名称}:${appId}`
versions :
- version : V11
# 。。。其他配置项参见上方对应oneBot版本的通用配置
protocol : # 将会覆盖通用配置中的protocol
token : ' ' # qq机器人token
secret : ' ' # qq机器人secret
sandbox : false # 是否沙箱环境
intents : # 需要监听的intents
- ' GROUP_AT_MESSAGE_CREATE' # 群聊@事件 没有群聊权限请注释
- ' C2C_MESSAGE_CREATE' # 私聊事件 没有私聊权限请注释
- ' DIRECT_MESSAGE' # 频道私信事件
# - 'GUILD_MESSAGES' # 私域机器人频道消息事件,公域机器人请注释
- ' GUILDS' # 频道变更事件
- ' GUILD_MEMBERS' # 频道成员变更事件
- ' GUILD_MESSAGE_REACTIONS' # 频道消息表态事件
- ' INTERACTION' # 互动事件
- ' PUBLIC_GUILD_MESSAGES' # 公域机器人频道消息事件,私域机器人请注释
# 。。。其他配置项参见上方对应oneBot版本的通用配置
dingtalk.abcedfg : # `${适配器名称}:${clientId}`
versions :
- version : V11
- version : V12
protocol :
clientSecret : ' ' # 钉钉机器人秘钥 必填
username : ' 钉钉机器人' # 钉钉后台配置的机器人名称 不填则显示'钉钉机器人'
avatar : ' ' # 机器人头像 不填则显示钉钉logo
wechat.bot1 : # `${适配器名称}:${机器人唯一标识}`
versions :
- version : V11
- version : V12
protocol : {}
配置项
类型
默认值
desc
port
number
6727
服务监听端口
logLevel
string
info
日志级别
general
{V11:V11.Config,V12:V12.Config}
general
通用配置
[adapter].[number]
OneBotConfig
-
机器人配置
配置项
类型
默认值
desc
password
string
-
仅icqq生效,账号密码 未填写或填写为空则扫码登陆
V11
V11.Config
configV11
V11配置
V12
V12.Config
configV12
V12配置
protocol
传递给client初始化的配置
{}
配置项
类型
默认值
desc
heartbeat
number
3
心跳间隔 单位:秒
access_token
string
-
访问令牌
secret
string
-
签名密钥
rate_limit_interval
number
4
限速间隔 单位:秒
post_message_format
string
string
消息格式化
reconnect_interval
number
3
重连间隔 单位:秒
use_http
boolean
false
是否使用http协议
enable_cors
boolean
false
是否允许跨域
filters
Filters
{}
事件过滤器配置
use_ws
boolean
false
是否使用ws协议
http_reverse_url
string[]
-
http上报地址地址
ws_reverse_url
string[]
-
反向ws连接地址
配置项
类型
默认值
desc
heartbeat
number
3
心跳间隔 单位:秒
access_token
string
-
访问令牌
request_timeout
number
15
请求超时 单位:秒
reconnect_interval
number
3
重连间隔 单位:秒
enable_cors
boolean
false
是否允许跨域
filters
Filters
{}
事件过滤器配置
use_http
boolean
false
是否使用http协议
use_ws
boolean
false
是否使用ws协议
webhook_reverse_url
string[]
-
webhook上报地址
ws_reverse_url
string[]
-
反向ws连接地址
onebots
的事件过滤器最外层是一个JSON对象,其中的键是键如果是运算法,则值作为运算符的参数,如果不是运算符,则表示对事件数据对象相应 key
进行过滤。
过滤规则中任何一个对象, 只有在它的所有项都匹配的情况下, 才会让事件通过(等价于一个 and 运算),如果值为一个数组,则表示事件对应 key
值需满足其中一个。
可用逻辑运算符有:$and
(逻辑与) 、$or
(逻辑或) 、 $not
(逻辑非)、$nor
(逻辑异或)、$regexp
(文本正则匹配)、$like
(文本模糊匹配)、$gt
(数值大于比较)、$gte
(数值大于等于比较)、$lt
(数值小于比较)、$lte
(数值小于等于比较)、$between
(数值范围比较)
filters :
message_type : private
filters :
$or :
message_type : private
group_id :
- 123456789 987654321
filters :
message_type : private
$not :
user_id :
- 123456789 987654321
4. 私聊事件(排除指定用户的事件)或指定群聊事件
filters :
$or :
- message_type : private
$not :
user_id : 123456789
- message_type : group
group_id : 987654321
filters :
type : message
sender :
age :
$gt : 18
filters :
type : message
raw_message :
.regexp : ' ^!|\!'
filters :
$not :
type : message
raw_message :
$like : cnm
url
method
params
desc
/list
GET
获取当前运行的机器人列表
/detail
GET
uin
获取指定机器人配置
/qrcode
GET
uin
获取指定机器人登录二维码
/add
POST
{uin,...config}
添加机器人 config 为机器人配置
/edit
POST
{uin,...config}
修改机器人配置 config 为机器人配置
/remove
get
uin,force
移除机器人,force为true时,将删除机器人data目录
icqqjs/icqq 底层服务支持
takayama-lily/onebot oneBot V11 原先版本