Lanzador de aplicaciones OneBot implementado mediante ts, compatible con icqq, robot oficial qq, robot WeChat y DingTalk
Documentos
Ejemplo de uso
Instalación global (no recomendada después de 0.4.8)
1 Instalar dependencias
2 Inicializar el archivo de configuración
Ejecute el siguiente comando en el directorio donde desea almacenar el archivo de configuración
3. Cambie el archivo de configuración predeterminado generado a la configuración que desee y ejecute el comando anterior nuevamente para iniciar el proyecto.
instalación parcial
1 Inicialice el proyecto del nodo
2. Instale onebots y las dependencias del adaptador correspondiente.
npm install onebots
npm install @icqqjs/icqq # 如需使用icqq适配器,请务必安装
npm install web-wechat # 如需使用微信适配器,请务必安装
npm install qq-official-bot # 如需使用qq官方机器人适配器,请务必安装
npm install node-dd-bot # 如需使用钉钉机器人适配器,请务必安装
- Respecto a la guía de instalación de @icqqjs:
Instalar:
- Cree un nuevo archivo
.npmrc
en el directorio raíz de su proyecto e ingrese el siguiente contenido
@icqqjs:registry=https://npm.pkg.github.com
- Ingrese
npm login --scope=@icqqjs --auth-type=legacy --registry=https://npm.pkg.github.com
en la línea de comando, presione Enter e inicie sesión en github de acuerdo con las indicaciones
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: # 你的公开邮箱地址
- Instalar dependencias
npm install @icqqjs/icqq # or > yarn add @icqqjs/icqq
3. Ejecute el siguiente comando para generar el archivo de configuración.
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. Cambie el archivo de configuración predeterminado generado a la configuración que desee y ejecute el comando anterior nuevamente para iniciar el proyecto.
Perfil predeterminado
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 : {}
Explicación de configuración
configuración
Elementos de configuración | tipo | valor predeterminado | desc |
---|
puerto | número | 6727 | Puerto de escucha de servicio |
nivel de registro | cadena | información | Nivel de registro |
general | {V11:V11.Configuración,V12:V12.Configuración} | general | Configuración común |
[adaptador].[número] | OneBotConfig | - | Configuración del robot |
OneBotConfig
Elementos de configuración | tipo | valor predeterminado | desc |
---|
contraseña | cadena | - | Solo efectivo para icqq, si la cuenta y contraseña no están completadas o en blanco, escanee el código QR para iniciar sesión. |
V11 | V11.Configuración | configuraciónV11 | Configuración V11 |
V12 | V12.Configuración | configuraciónV12 | Configuración V12 |
protocolo | Configuración pasada a la inicialización del cliente. | {} | |
ConfiguraciónV11
Elementos de configuración | tipo | valor predeterminado | desc |
---|
latido del corazón | número | 3 | Unidad de intervalo de latido: segundos |
token_acceso | cadena | - | token de acceso |
secreto | cadena | - | Clave de firma |
intervalo_límite_tasa | número | 4 | Unidad de intervalo de límite de velocidad: segundos |
formato_post_mensaje | cadena | cadena | Formato de mensaje |
intervalo_reconexión | número | 3 | Unidad de intervalo de reconexión: segundos |
usar_http | booleano | FALSO | Si se debe utilizar el protocolo http |
habilitar_cors | booleano | FALSO | Ya sea para permitir dominios cruzados |
filtros | Filtros | {} | Configuración del filtro de eventos |
usar_ws | booleano | FALSO | Si se debe utilizar el protocolo ws |
http_url_inversa | cadena[] | - | dirección de informes http |
ws_reverse_url | cadena[] | - | Dirección de conexión ws inversa |
ConfiguraciónV12
Elementos de configuración | tipo | valor predeterminado | desc |
---|
latido del corazón | número | 3 | Unidad de intervalo de latido: segundos |
token_acceso | cadena | - | token de acceso |
solicitud_tiempo de espera | número | 15 | Unidad de tiempo de espera de solicitud: segundos |
intervalo_reconexión | número | 3 | Unidad de intervalo de reconexión: segundos |
habilitar_cors | booleano | FALSO | Ya sea para permitir dominios cruzados |
filtros | Filtros | {} | Configuración del filtro de eventos |
usar_http | booleano | FALSO | Si se debe utilizar el protocolo http |
usar_ws | booleano | FALSO | Si se debe utilizar el protocolo ws |
webhook_reverse_url | cadena[] | - | dirección de informes de webhook |
ws_reverse_url | cadena[] | - | Dirección de conexión ws inversa |
filtro de eventos
Instrucciones gramaticales
- La capa más externa del filtro de eventos de
onebots
es un objeto JSON, donde la clave es la clave, si es un algoritmo, el valor se usa como parámetro del operador. Si no es un operador, significa filtrar el correspondiente. key
del objeto de datos del evento. - Cualquier objeto en la regla de filtrado solo dejará pasar el evento si todos sus elementos coinciden (equivalente a una operación y Si el valor es una matriz, significa que
key
correspondiente al evento debe satisfacer uno de ellos). - Los operadores lógicos disponibles son:
$and
(Y lógico), $or
(O lógico), $not
(NO lógico), $nor
(O lógico exclusivo), $regexp
(coincidencia regular de texto), $like
(coincidencia difusa de texto), $gt
(numérica mayor que la comparación), $gte
(numérica mayor o igual que la comparación), $lt
(numérica menor que la comparación), $lte
(numérica menor o igual que la comparación), $between
(comparación de rango numérico)
Ejemplo
1. Informar solo eventos de chat privados
filters :
message_type : private
2. Chat privado o chat grupal designado
filters :
$or :
message_type : private
group_id :
- 123456789 987654321
3. Evento de chat privado y no el usuario designado
filters :
message_type : private
$not :
user_id :
- 123456789 987654321
4. Eventos de chat privados (excluidos eventos de usuarios específicos) o eventos de chat grupales específicos
filters :
$or :
- message_type : private
$not :
user_id : 123456789
- message_type : group
group_id : 987654321
5. Solo reporte eventos de mensajes y el usuario sea mayor de 18 años.
filters :
type : message
sender :
age :
$gt : 18
6. ¡Solo informe los eventos del mensaje y el contenido del mensaje! mensaje al principio
filters :
type : message
raw_message :
.regexp : ' ^!|! '
7. No informe mensajes que contengan cnm
.
filters :
$not :
type : message
raw_message :
$like : cnm
Administrar oneBot usando API
URL | método | parámetros | desc |
---|
/lista | CONSEGUIR | | Obtenga la lista de robots actualmente en ejecución |
/detalle | CONSEGUIR | uino | Obtenga la configuración del robot especificada |
/códigoqr | CONSEGUIR | uino | Obtenga el código QR de inicio de sesión del robot designado |
/agregar | CORREO | {uin,...config} | Agregar configuración de robot para la configuración del robot |
/editar | CORREO | {uin,...config} | Modificar la configuración del robot para la configuración del robot |
/eliminar | conseguir | uin, fuerza | Retire el robot. Cuando la fuerza sea verdadera, se eliminará el directorio de datos del robot. |
Expresiones de gratitud
- Soporte de servicio subyacente icqqjs/icqq
- takayama-lily/onebot oneBot V11 versión original