Der mit ts implementierte OneBot-Anwendungsstarter unterstützt icqq, den offiziellen qq-Roboter, WeChat und den DingTalk-Roboter
Dokumente
Anwendungsbeispiel
Globale Installation (nicht empfohlen nach 0.4.8)
1 Abhängigkeiten installieren
2 Konfigurationsdatei initialisieren
Führen Sie den folgenden Befehl in dem Verzeichnis aus, in dem Sie die Konfigurationsdatei speichern möchten
3. Ändern Sie die generierte Standardkonfigurationsdatei in die gewünschte Konfiguration und führen Sie den obigen Befehl erneut aus, um das Projekt zu starten.
Teilinstallation
1 Initialisieren Sie das Knotenprojekt
2. Installieren Sie Onebots und die entsprechenden Adapterabhängigkeiten
npm install onebots
npm install @icqqjs/icqq # 如需使用icqq适配器,请务必安装
npm install web-wechat # 如需使用微信适配器,请务必安装
npm install qq-official-bot # 如需使用qq官方机器人适配器,请务必安装
npm install node-dd-bot # 如需使用钉钉机器人适配器,请务必安装
- Bezüglich der Installationsanleitung von @icqqjs:
Installieren:
- Erstellen Sie eine neue Datei
.npmrc
in Ihrem Projektstammverzeichnis und geben Sie den folgenden Inhalt ein
@icqqjs:registry=https://npm.pkg.github.com
- Geben Sie
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
in die Befehlszeile ein, drücken Sie die Eingabetaste und melden Sie sich gemäß den Eingabeaufforderungen bei Github an
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: # 你的公开邮箱地址
- Abhängigkeiten installieren
npm install @icqqjs/icqq # or > yarn add @icqqjs/icqq
3. Führen Sie den folgenden Befehl aus, um die Konfigurationsdatei zu generieren
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. Ändern Sie die generierte Standardkonfigurationsdatei in die gewünschte Konfiguration und führen Sie den obigen Befehl erneut aus, um das Projekt zu starten.
Standardprofil
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 : {}
Konfigurationserklärung
Konfig
Konfigurationselemente | Typ | Standardwert | absteigend |
---|
Hafen | Nummer | 6727 | Dienst-Überwachungsport |
logLevel | Zeichenfolge | Info | Protokollebene |
allgemein | {V11:V11.Config,V12:V12.Config} | allgemein | Gemeinsame Konfiguration |
[Adapter].[Nummer] | OneBotConfig | - | Roboterkonfiguration |
OneBotConfig
Konfigurationselemente | Typ | Standardwert | absteigend |
---|
Passwort | Zeichenfolge | - | Gilt nur für icqq. Wenn das Konto und das Passwort nicht ausgefüllt oder leer ausgefüllt sind, scannen Sie den QR-Code, um sich anzumelden. |
V11 | V11.Config | configV11 | V11-Konfiguration |
V12 | V12.Config | configV12 | V12-Konfiguration |
Protokoll | An die Client-Initialisierung übergebene Konfiguration | {} | |
ConfigV11
Konfigurationselemente | Typ | Standardwert | absteigend |
---|
Herzschlag | Nummer | 3 | Heartbeat-Intervalleinheit: Sekunden |
access_token | Zeichenfolge | - | Zugriffstoken |
Geheimnis | Zeichenfolge | - | Signaturschlüssel |
rate_limit_interval | Nummer | 4 | Tempolimit-Intervalleinheit: Sekunden |
post_message_format | Zeichenfolge | Zeichenfolge | Nachrichtenformatierung |
reconnect_interval | Nummer | 3 | Einheit des Wiederverbindungsintervalls: Sekunden |
use_http | Boolescher Wert | FALSCH | Ob das HTTP-Protokoll verwendet werden soll |
enable_cors | Boolescher Wert | FALSCH | Ob domänenübergreifend zugelassen werden soll |
Filter | Filter | {} | Konfiguration des Ereignisfilters |
use_ws | Boolescher Wert | FALSCH | Ob das WS-Protokoll verwendet werden soll |
http_reverse_url | string[] | - | HTTP-Meldeadresse |
ws_reverse_url | string[] | - | Reverse-WS-Verbindungsadresse |
ConfigV12
Konfigurationselemente | Typ | Standardwert | absteigend |
---|
Herzschlag | Nummer | 3 | Heartbeat-Intervalleinheit: Sekunden |
access_token | Zeichenfolge | - | Zugriffstoken |
request_timeout | Nummer | 15 | Anforderungszeitüberschreitungseinheit: Sekunden |
reconnect_interval | Nummer | 3 | Einheit des Wiederverbindungsintervalls: Sekunden |
enable_cors | Boolescher Wert | FALSCH | Ob domänenübergreifend zugelassen werden soll |
Filter | Filter | {} | Konfiguration des Ereignisfilters |
use_http | Boolescher Wert | FALSCH | Ob das HTTP-Protokoll verwendet werden soll |
use_ws | Boolescher Wert | FALSCH | Ob das WS-Protokoll verwendet werden soll |
webhook_reverse_url | string[] | - | Webhook-Meldeadresse |
ws_reverse_url | string[] | - | Reverse-WS-Verbindungsadresse |
Ereignisfilter
Grammatikanweisungen
- Die äußerste Ebene des
onebots
-Ereignisfilters ist ein JSON-Objekt, in dem der Schlüssel der Schlüssel ist. Wenn es sich um einen Algorithmus handelt, wird der Wert als Parameter des Operators verwendet key
des Ereignisdatenobjekts. - Jedes Objekt in der Filterregel lässt das Ereignis nur dann passieren, wenn alle seine Elemente übereinstimmen (entspricht einer UND-Operation). Wenn der Wert ein Array ist, bedeutet dies, dass
key
eines davon erfüllen muss. - Verfügbare logische Operatoren sind:
$and
(logisches UND), $or
(logisches ODER), $not
(logisches NICHT), $nor
(logisches XOR), $regexp
(normaler Textabgleich), $like
(unscharfer Textabgleich), $gt
(numerischer Wert größer als Vergleich), $gte
(numerischer Wert größer oder gleich Vergleich), $lt
(numerischer Wert kleiner oder gleich Vergleich), $lte
(numerischer Wert kleiner oder gleich Vergleich), $between
(Zahlenbereichsvergleich)
Beispiel
1. Melden Sie nur private Chat-Ereignisse
filters :
message_type : private
2. Privater Chat oder bestimmter Gruppenchat
filters :
$or :
message_type : private
group_id :
- 123456789 987654321
3. Privates Chat-Ereignis und nicht der angegebene Benutzer
filters :
message_type : private
$not :
user_id :
- 123456789 987654321
4. Private Chat-Ereignisse (ausgenommen Ereignisse bestimmter Benutzer) oder bestimmte Gruppen-Chat-Ereignisse
filters :
$or :
- message_type : private
$not :
user_id : 123456789
- message_type : group
group_id : 987654321
5. Melden Sie nur Nachrichtenereignisse und der Benutzer ist älter als 18 Jahre
filters :
type : message
sender :
age :
$gt : 18
6. Melden Sie nur Nachrichtenereignisse und den Nachrichteninhalt! Nachricht am Anfang
filters :
type : message
raw_message :
.regexp : ' ^!|! '
7. Melden Sie keine Nachrichten, die cnm
enthalten.
filters :
$not :
type : message
raw_message :
$like : cnm
Verwalten Sie oneBot mithilfe der API
URL | Verfahren | Parameter | absteigend |
---|
/Liste | ERHALTEN | | Rufen Sie die Liste der aktuell ausgeführten Roboter ab |
/Detail | ERHALTEN | uin | Rufen Sie die angegebene Roboterkonfiguration ab |
/qrcode | ERHALTEN | uin | Besorgen Sie sich den vorgesehenen Roboter-Login-QR-Code |
/hinzufügen | POST | {uin,...config} | Roboterkonfiguration für Roboterkonfiguration hinzufügen |
/bearbeiten | POST | {uin,...config} | Ändern Sie die Roboterkonfigurationskonfiguration für die Roboterkonfiguration |
/entfernen | erhalten | uin, Kraft | Entfernen Sie den Roboter. Wenn Force wahr ist, wird das Roboterdatenverzeichnis gelöscht. |
Danksagungen
- icqqjs/icqq zugrundeliegender Service-Support
- takayama-lily/onebot oneBot V11 Originalversion