Средство запуска приложений OneBot, реализованное с использованием ts, поддерживает icqq, официального робота qq, робота WeChat и DingTalk.
Документы
Пример использования
Глобальная установка (не рекомендуется после 0.4.8)
1 Установите зависимости
2 Инициализируйте файл конфигурации
Выполните следующую команду в каталоге, в котором вы хотите сохранить файл конфигурации.
3. Измените сгенерированный файл конфигурации по умолчанию на нужную конфигурацию и снова запустите приведенную выше команду, чтобы запустить проект.
частичная установка
1 Инициализируйте проект узла
2. Установите onebots и соответствующие зависимости адаптера.
npm install onebots
npm install @icqqjs/icqq # 如需使用icqq适配器,请务必安装
npm install web-wechat # 如需使用微信适配器,请务必安装
npm install qq-official-bot # 如需使用qq官方机器人适配器,请务必安装
npm install node-dd-bot # 如需使用钉钉机器人适配器,请务必安装
- Что касается руководства по установке @icqqjs:
Установить:
- Создайте новый файл
.npmrc
в корневом каталоге вашего проекта и введите следующий контент.
@icqqjs:registry=https://npm.pkg.github.com
- Введите
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
в командной строке, нажмите Enter и войдите в 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
3. Выполните следующую команду, чтобы создать файл конфигурации.
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 : {}
Объяснение конфигурации
Конфигурация
Элементы конфигурации | тип | значение по умолчанию | описание |
---|
порт | число | 6727 | Порт прослушивания службы |
уровень журнала | нить | информация | Уровень журнала |
общий | {V11:V11.Config,V12:V12.Config} | общий | Общая конфигурация |
[адаптер].[номер] | OneBotConfig | - | Конфигурация робота |
OneBotConfig
Элементы конфигурации | тип | значение по умолчанию | описание |
---|
пароль | нить | - | Действует только для icqq, если учетная запись и пароль не заполнены или заполнены пустыми, отсканируйте QR-код для входа. |
V11 | V11.Конфигурация | конфигV11 | Конфигурация V11 |
V12 | V12.Конфигурация | конфигV12 | Конфигурация V12 |
протокол | Конфигурация передается на инициализацию клиента | {} | |
КонфигВ11
Элементы конфигурации | тип | значение по умолчанию | описание |
---|
сердцебиение | число | 3 | Единица интервала пульса: секунды |
access_token | нить | - | токен доступа |
секрет | нить | - | Ключ подписи |
rate_limit_interval | число | 4 | Единица интервала ограничения скорости: секунды |
post_message_format | нить | нить | Форматирование сообщения |
reconnect_interval | число | 3 | Единица интервала переподключения: секунды. |
use_http | логическое значение | ЛОЖЬ | Использовать ли протокол http |
Enable_cors | логическое значение | ЛОЖЬ | Разрешить ли междоменный доступ |
фильтры | Фильтры | {} | Конфигурация фильтра событий |
use_ws | логическое значение | ЛОЖЬ | Использовать ли протокол ws |
http_reverse_url | нить[] | - | HTTP-адрес для отправки отчетов |
ws_reverse_url | нить[] | - | Обратный адрес подключения ws |
КонфигV12
Элементы конфигурации | тип | значение по умолчанию | описание |
---|
сердцебиение | число | 3 | Единица интервала пульса: секунды |
access_token | нить | - | токен доступа |
request_timeout | число | 15 | Единица тайм-аута запроса: секунды |
reconnect_interval | число | 3 | Единица интервала переподключения: секунды. |
Enable_cors | логическое значение | ЛОЖЬ | Разрешить ли междоменный доступ |
фильтры | Фильтры | {} | Конфигурация фильтра событий |
use_http | логическое значение | ЛОЖЬ | Использовать ли протокол http |
use_ws | логическое значение | ЛОЖЬ | Использовать ли протокол ws |
webhook_reverse_url | нить[] | - | отчетный адрес вебхука |
ws_reverse_url | нить[] | - | Обратный адрес подключения ws |
фильтр событий
Грамматические инструкции
- Самый внешний слой фильтра событий
onebots
— это объект JSON, в котором ключом является ключ. Если это алгоритм, значение используется в качестве параметра оператора. Если это не оператор, это означает фильтрацию соответствующего. key
объекта данных события. - Любой объект в правиле фильтрации пропускает событие только в том случае, если все его элементы совпадают (эквивалентно операции и). Если значение является массивом, это означает, что значение
key
, соответствующее событию, должно удовлетворять одному из них. - Доступные логические операторы:
$and
(логическое И), $or
(логическое ИЛИ), $not
(логическое НЕ), $nor
(логическое исключающее ИЛИ), $regexp
(регулярное совпадение текста), $like
(нечеткое совпадение текста), $gt
(числовое значение больше сравнения), $gte
(числовое значение больше или равно сравнению), $lt
(числовое значение меньше сравнения), $lte
(числовое значение меньше или равно сравнению), $between
(сравнение числового диапазона)
Пример
1. Сообщайте только о событиях частного чата
filters :
message_type : private
2. Частный чат или назначенный групповой чат.
filters :
$or :
message_type : private
group_id :
- 123456789 987654321
3. Событие приватного чата, а не назначенный пользователь
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
5. Сообщайте только о событиях сообщений, если пользователь старше 18 лет.
filters :
type : message
sender :
age :
$gt : 18
6. Сообщайте только о событиях сообщений и их содержании! сообщение в начале
filters :
type : message
raw_message :
.regexp : ' ^!|! '
7. Не сообщайте о сообщениях, содержащих cnm
.
filters :
$not :
type : message
raw_message :
$like : cnm
Управляйте oneBot с помощью API
URL | метод | параметры | описание |
---|
/список | ПОЛУЧАТЬ | | Получить список запущенных в данный момент роботов |
/деталь | ПОЛУЧАТЬ | уин | Получить указанную конфигурацию робота |
/qrкод | ПОЛУЧАТЬ | уин | Получите назначенный QR-код для входа в систему робота. |
/добавлять | ПОЧТА | {уин,...конфигурация} | Добавьте конфигурацию робота для конфигурации робота |
/редактировать | ПОЧТА | {уин,...конфигурация} | Измените конфигурацию конфигурации робота для конфигурации робота. |
/удалять | получать | уин, сила | Удалить робота. Если значение Force истинно, каталог данных робота будет удален. |
Благодарности
- Поддержка базового сервиса icqqjs/icqq
- takayama-lily/onebot oneBot V11 оригинальная версия