TS를 사용하여 구현된 OneBot 애플리케이션 실행 프로그램은 icqq, qq 공식 로봇, WeChat 및 DingTalk 로봇을 지원합니다.
문서
사용예
전역 설치(0.4.8 이후에는 권장되지 않음)
1 종속성 설치
2 구성 파일 초기화
구성 파일을 저장하려는 디렉터리에서 다음 명령을 실행합니다.
3. 생성된 기본 구성 파일을 원하는 구성으로 변경한 후 위 명령을 다시 실행하여 프로젝트를 시작합니다.
부분 설치
1 노드 프로젝트 초기화
2. onebot 및 해당 어댑터 종속성을 설치합니다.
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
입력하고 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.구성,V12:V12.구성} | 일반적인 | 공통 구성 |
[어댑터].[번호] | OneBot구성 | - | 로봇 구성 |
OneBot구성
구성 항목 | 유형 | 기본값 | 설명 |
---|
비밀번호 | 끈 | - | icqq에만 유효하며, 계정과 비밀번호가 채워져 있지 않거나 공백으로 채워져 있는 경우 QR 코드를 스캔하여 로그인하세요. |
V11 | V11.구성 | 구성V11 | V11 구성 |
V12 | V12.구성 | 구성V12 | V12 구성 |
규약 | 클라이언트 초기화에 전달된 구성 | {} | |
구성V11
구성 항목 | 유형 | 기본값 | 설명 |
---|
심장 박동 | 숫자 | 3 | 하트비트 간격 단위: 초 |
액세스 토큰 | 끈 | - | 액세스 토큰 |
비밀 | 끈 | - | 서명 키 |
rate_limit_interval | 숫자 | 4 | 속도 제한 간격 단위 : 초 |
post_message_format | 끈 | 끈 | 메시지 형식 |
재연결_간격 | 숫자 | 3 | 재접속 간격 단위: 초 |
use_http | 부울 | 거짓 | http 프로토콜 사용 여부 |
활성화_코르스 | 부울 | 거짓 | 도메인 간 허용 여부 |
필터 | 필터 | {} | 이벤트 필터 구성 |
use_ws | 부울 | 거짓 | ws 프로토콜 사용 여부 |
http_reverse_url | 끈[] | - | http 보고 주소 |
ws_reverse_url | 끈[] | - | 역방향 ws 연결 주소 |
구성V12
구성 항목 | 유형 | 기본값 | 설명 |
---|
심장 박동 | 숫자 | 3 | 하트비트 간격 단위: 초 |
액세스 토큰 | 끈 | - | 액세스 토큰 |
request_timeout | 숫자 | 15 | 요청 시간 초과 단위: 초 |
재연결_간격 | 숫자 | 3 | 재접속 간격 단위: 초 |
활성화_코르스 | 부울 | 거짓 | 도메인 간 허용 여부 |
필터 | 필터 | {} | 이벤트 필터 구성 |
use_http | 부울 | 거짓 | http 프로토콜 사용 여부 |
use_ws | 부울 | 거짓 | ws 프로토콜 사용 여부 |
webhook_reverse_url | 끈[] | - | 웹훅 보고 주소 |
ws_reverse_url | 끈[] | - | 역방향 ws 연결 주소 |
이벤트 필터
문법 지침
-
onebots
의 이벤트 필터의 가장 바깥쪽 레이어는 JSON 객체로, 알고리즘인 경우 해당 값을 연산자의 매개변수로 사용한다는 의미입니다. 이벤트 데이터 객체의 key
. - 필터링 규칙의 모든 객체는 모든 항목이 일치하는 경우에만 이벤트를 통과시킵니다(및 연산과 동일). 값이 배열인 경우 이벤트에 해당하는
key
값이 그 중 하나를 충족해야 함을 의미합니다. - 사용 가능한 논리 연산자는
$and
(논리적 AND), $or
(논리적 OR), $not
(논리적 NOT), $nor
(논리적 배타적 OR), $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
API를 사용하여 oneBot 관리
URL | 방법 | 매개변수 | 설명 |
---|
/목록 | 얻다 | | 현재 실행 중인 로봇 목록 가져오기 |
/세부 사항 | 얻다 | 너 | 지정된 로봇 구성 가져오기 |
/qr코드 | 얻다 | 너 | 지정된 로봇 로그인 QR코드 획득 |
/추가하다 | 우편 | {유인,...구성} | 로봇 구성을 위한 로봇 구성 추가 |
/편집하다 | 우편 | {유인,...구성} | 로봇 구성에 대한 로봇 구성 구성 수정 |
/제거하다 | 얻다 | 유인, 힘 | 로봇을 제거합니다. force가 true이면 로봇 데이터 디렉터리가 삭제됩니다. |
감사의 말
- icqqjs/icqq 기본 서비스 지원
- takayama-lily/onebot oneBot V11 원본 버전