はじめに
最近、NapCatQQのWebUIがかなり整備され、初心者にも非常に使いやすくなったため、この記事を書きました。
この記事では基本的な使い方のみを扱い、一部の高度な機能は省略している可能性があります。ただし、以下の基礎知識は必要です:コマンドライン、HTTPプロトコル、Docker、Python。完全なゼロ基礎というわけではありません。(Webhookを使った通知のみを行いたい場合や、既存のNoneBotプラグインを使用するだけであれば、Pythonプログラミングは不要です)
使用するツールはNapCatQQとNoneBotです。前者はQQを実行し、OneBot11などのプロトコルに接続します。後者はPythonでプロトコルを呼び出すフレームワークです。問題が発生した場合は公式ドキュメントを参照してください。(Webhookを使った通知のみを行いたい場合は、NapCatQQの構築だけで完了です。)
準備
- サーバー1台。内網・外網を問いません。
- QQボットとして使用するQQアカウント1つ。メインアカウントの使用は推奨しません。
NapCatQQ
インストール
NapCatQQのインストール方法は多数ありますが、サービスとして利用するなら、Dockerを使ってShellバージョンをインストールすることをお勧めします: https://napneko.github.io/guide/boot/Shell#napcat-docker-linux容器化部署 DockerコンテナにはNTQQ本体が含まれているため、対応バージョンのQQを別途インストールする必要はありません。
この時点で http://[IP]:6099/webui にアクセスすると、NTQQのWebページが表示され、ログインや設定が行えます。ログインパスワードはログファイルで確認できます(デフォルト:napcat)。ログイン後に変更することをお勧めします。
または、docker logs napcatでログを確認し、QRコードでQQにログインすることもできます。
QRコードログイン時には、後続の電話認証を不要にするオプションをチェックすることをお勧めします。
HTTPプロトコルの有効化
WebUIでネットワーク設定->新規作成->HTTPサーバーを開き、名前、Host、ポートは任意です。メッセージ形式はArrayを推奨します。実際のテストではStringにも対応しており、テキストと画像の混合メッセージを送信できます。また、悪意のあるリクエストを防ぐためにTokenを設定することを強く推奨します。
有効化後、インターフェースデバッグ->HTTPや使い慣れたAPIテストツールでテストできます。APIリファレンス: https://napcat.apifox.cn/
Tokenの使用方法は2通りあります:
- リクエストヘッダーに
Authorization: [Token]を追加します。
- URLに
?access_token=[Token]を追加します。
Webhookを使った通知
ここで最も重要なインターフェースは、もちろんプライベートメッセージの送信とグループメッセージの送信です。インターフェースデバッグ->HTTPで対応するAPIを見つけることができ、メッセージ構築機能も備わっていて非常に簡単です。
以下にプライベートメッセージ送信の例を示します:

一部のアプリケーションでは、Webhookの実装にshoutrrrを使用することがあります。以下の設定を参考にしてください:
アプリケーションによっては、OneBot11プロトコルにネイティブ対応している場合もあります。その場合はhttp://[IP]:3000、Token、および対象のQQ番号を入力するだけで済みます。
nginxリバースプロキシ
ドメインをお持ちの場合は、以下のNapCatQQ用nginx設定例を参考にしてください:
NoneBot
ドキュメントはすでに非常に充実しているため、ここでは詳しく説明しません。