Le lanceur d'applications OneBot implémenté à l'aide de ts, prend en charge icqq, le robot officiel qq, les robots WeChat et DingTalk
Documents
Exemple d'utilisation
Installation globale (déconseillée après la 0.4.8)
1 Installer les dépendances
2 Initialiser le fichier de configuration
Exécutez la commande suivante dans le répertoire où vous souhaitez stocker le fichier de configuration
3. Modifiez le fichier de configuration par défaut généré par la configuration souhaitée et exécutez à nouveau la commande ci-dessus pour démarrer le projet.
installation partielle
1 Initialisez le projet de nœud
2. Installez les onebots et les dépendances d'adaptateur correspondantes
npm install onebots
npm install @icqqjs/icqq # 如需使用icqq适配器,请务必安装
npm install web-wechat # 如需使用微信适配器,请务必安装
npm install qq-official-bot # 如需使用qq官方机器人适配器,请务必安装
npm install node-dd-bot # 如需使用钉钉机器人适配器,请务必安装
- Concernant le guide d'installation de @icqqjs :
Installer:
- Créez un nouveau fichier
.npmrc
dans le répertoire racine de votre projet et entrez le contenu suivant
@icqqjs:registry=https://npm.pkg.github.com
- Entrez
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
sur la ligne de commande, appuyez sur Entrée et connectez-vous à github selon les invites
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: # 你的公开邮箱地址
- Installer les dépendances
npm install @icqqjs/icqq # or > yarn add @icqqjs/icqq
3. Exécutez la commande suivante pour générer le fichier de configuration
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. Modifiez le fichier de configuration par défaut généré par la configuration souhaitée et exécutez à nouveau la commande ci-dessus pour démarrer le projet.
Profil par défaut
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 : {}
Explication de la configuration
Configuration
Éléments de configuration | taper | valeur par défaut | desc |
---|
port | nombre | 6727 | Port d'écoute du service |
niveau de journal | chaîne | infos | Niveau de journalisation |
général | {V11:V11.Config,V12:V12.Config} | général | Configuration commune |
[adaptateur].[numéro] | OneBotConfig | - | Configuration des robots |
OneBotConfig
Éléments de configuration | taper | valeur par défaut | desc |
---|
mot de passe | chaîne | - | Uniquement efficace pour icqq, si le compte et le mot de passe ne sont pas renseignés ou renseignés en blanc, scannez le QR code pour vous connecter. |
V11 | V11.Config | configV11 | Configuration V11 |
V12 | V12.Config | configV12 | Configuration V12 |
protocole | Configuration transmise à l'initialisation du client | {} | |
ConfigurationV11
Éléments de configuration | taper | valeur par défaut | desc |
---|
pulsation | nombre | 3 | Unité d'intervalle de battement de coeur : secondes |
access_token | chaîne | - | jeton d'accès |
secrète | chaîne | - | Clé de signature |
taux_limite_intervalle | nombre | 4 | Unité d'intervalle de limitation de vitesse : secondes |
format_message_post | chaîne | chaîne | Formatage des messages |
reconnect_interval | nombre | 3 | Unité d'intervalle de reconnexion : secondes |
utiliser_http | booléen | FAUX | S'il faut utiliser le protocole http |
activer_cors | booléen | FAUX | S'il faut autoriser l'inter-domaine |
filtres | Filtres | {} | Configuration du filtre d'événements |
utiliser_ws | booléen | FAUX | S'il faut utiliser le protocole ws |
http_inverse_url | chaîne[] | - | adresse de rapport http |
ws_reverse_url | chaîne[] | - | Adresse de connexion ws inversée |
ConfigurationV12
Éléments de configuration | taper | valeur par défaut | desc |
---|
pulsation | nombre | 3 | Unité d'intervalle de battement de coeur : secondes |
access_token | chaîne | - | jeton d'accès |
demande_timeout | nombre | 15 | Unité de délai d'expiration de la demande : secondes |
reconnect_interval | nombre | 3 | Unité d'intervalle de reconnexion : secondes |
activer_cors | booléen | FAUX | S'il faut autoriser l'inter-domaine |
filtres | Filtres | {} | Configuration du filtre d'événements |
utiliser_http | booléen | FAUX | S'il faut utiliser le protocole http |
utiliser_ws | booléen | FAUX | S'il faut utiliser le protocole ws |
webhook_reverse_url | chaîne[] | - | adresse de rapport du webhook |
ws_reverse_url | chaîne[] | - | Adresse de connexion ws inversée |
filtre d'événements
Instructions de grammaire
- La couche la plus externe du filtre d'événements de
onebots
est un objet JSON, dans lequel la clé est la clé. S'il s'agit d'un algorithme, la valeur est utilisée comme paramètre de l'opérateur. S'il ne s'agit pas d'un opérateur, cela signifie filtrer le correspondant. key
de l’objet de données d’événement. - Tout objet dans la règle de filtrage ne laissera passer l'événement que si tous ses éléments correspondent (équivalent à une opération and). Si la valeur est un tableau, cela signifie que
key
correspondant à l'événement doit satisfaire l'un d'entre eux. - Les opérateurs logiques disponibles sont :
$and
(ET logique), $or
(OU logique), $not
(NON logique), $nor
(XOR logique), $regexp
(correspondance régulière de texte), $like
(correspondance floue de texte), $gt
(valeur numérique supérieure à la comparaison), $gte
(valeur numérique supérieure ou égale à la comparaison), $lt
(valeur numérique inférieure ou égale à la comparaison), $lte
(valeur numérique inférieure ou égale à la comparaison), $between
(comparaison de plages numériques)
Exemple
1. Signalez uniquement les événements de chat privé
filters :
message_type : private
2. Chat privé ou chat de groupe désigné
filters :
$or :
message_type : private
group_id :
- 123456789 987654321
3. Événement de chat privé et non l'utilisateur désigné
filters :
message_type : private
$not :
user_id :
- 123456789 987654321
4. Événements de discussion privée (à l'exclusion des événements d'utilisateurs spécifiés) ou événements de discussion de groupe spécifiés
filters :
$or :
- message_type : private
$not :
user_id : 123456789
- message_type : group
group_id : 987654321
5. Signalez uniquement les événements de message et l'utilisateur est âgé de plus de 18 ans.
filters :
type : message
sender :
age :
$gt : 18
6. Signalez uniquement les événements de message et le contenu du message l'est ! message au début
filters :
type : message
raw_message :
.regexp : ' ^!|! '
7. Ne signalez pas les messages contenant cnm
.
filters :
$not :
type : message
raw_message :
$like : cnm
Gérer oneBot à l'aide de l'API
URL | méthode | paramètres | desc |
---|
/liste | OBTENIR | | Obtenez la liste des robots actuellement en cours d'exécution |
/détail | OBTENIR | uin | Obtenez la configuration du robot spécifiée |
/qrcode | OBTENIR | uin | Obtenez le code QR de connexion du robot désigné |
/ajouter | POSTE | {uin,...config} | Ajouter une configuration de robot pour la configuration du robot |
/modifier | POSTE | {uin,...config} | Modifier la configuration du robot pour la configuration du robot |
/retirer | obtenir | uin, forcer | Supprimez le robot. Lorsque la force est vraie, le répertoire de données du robot sera supprimé. |
Remerciements
- Prise en charge du service sous-jacent icqqjs/icqq
- takayama-lily/onebot oneBot V11 version originale