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.Config,V12:V12.Config} | 一般的な | 共通構成 |
[アダプター].[番号] | OneBotConfig | - | ロボットの構成 |
OneBotConfig
設定項目 | タイプ | デフォルト値 | 説明 |
---|
パスワード | 弦 | - | icqq にのみ有効で、アカウントとパスワードが未入力または空白の場合は、QR コードをスキャンしてログインします。 |
V11 | V11.構成 | configV11 | V11構成 |
V12 | V12.構成 | configV12 | V12構成 |
プロトコル | クライアントの初期化に渡される設定 | {} | |
構成V11
設定項目 | タイプ | デフォルト値 | 説明 |
---|
心拍数 | 番号 | 3 | ハートビート間隔単位:秒 |
アクセストークン | 弦 | - | アクセストークン |
秘密 | 弦 | - | 署名キー |
レート制限間隔 | 番号 | 4 | 速度制限間隔単位:秒 |
post_message_format | 弦 | 弦 | メッセージのフォーマット |
再接続間隔 | 番号 | 3 | 再接続間隔単位:秒 |
use_http | ブール値 | 間違い | httpプロトコルを使用するかどうか |
有効化_cors | ブール値 | 間違い | クロスドメインを許可するかどうか |
フィルター | フィルター | {} | イベントフィルターの設定 |
use_ws | ブール値 | 間違い | wsプロトコルを使用するかどうか |
http_reverse_url | 弦[] | - | http レポート アドレス |
ws_reverse_url | 弦[] | - | 逆WS接続アドレス |
構成V12
設定項目 | タイプ | デフォルト値 | 説明 |
---|
心拍数 | 番号 | 3 | ハートビート間隔単位:秒 |
アクセストークン | 弦 | - | アクセストークン |
リクエストタイムアウト | 番号 | 15 | リクエストタイムアウト単位:秒 |
再接続間隔 | 番号 | 3 | 再接続間隔単位:秒 |
有効化_cors | ブール値 | 間違い | クロスドメインを許可するかどうか |
フィルター | フィルター | {} | イベントフィルターの設定 |
use_http | ブール値 | 間違い | httpプロトコルを使用するかどうか |
use_ws | ブール値 | 間違い | wsプロトコルを使用するかどうか |
webhook_reverse_url | 弦[] | - | Webhook レポート アドレス |
ws_reverse_url | 弦[] | - | 逆WS接続アドレス |
イベントフィルター
文法指導
onebots
のイベント フィルターの最外層は JSON オブジェクトで、キーがアルゴリズムの場合は値が演算子のパラメーターとして使用され、演算子ではない場合は対応するフィルター処理を意味します。イベント データ オブジェクトのkey
。- フィルタリング ルール内のオブジェクトは、そのすべての項目が一致する場合にのみイベントを通過させます (and 演算と同等)。値が配列の場合、イベントに対応する
key
値がそれらの 1 つを満たす必要があることを意味します。 - 使用可能な論理演算子は次のとおりです:
$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コードを取得する |
/追加 | 役職 | {uin,...config} | ロボット構成にロボット構成を追加 |
/編集 | 役職 | {uin,...config} | ロボット構成のロボット構成 config を変更します。 |
/取り除く | 得る | ういん、力 | ロボットを削除します。force が true の場合、ロボット データ ディレクトリは削除されます。 |
謝辞
- icqqjs/icqq の基礎となるサービスのサポート
- takayama-lily/onebot oneBot V11 オリジナルバージョン