Contents
1️⃣ 前提条件と開発環境の準備
| 必要項目 | 推奨バージョン / 条件 | 確認コマンド |
|---|---|---|
| Node.js | v20 系列以上(LTS) | node -v |
| Docker & Docker Compose | Docker Engine 24.x 以上、Compose Plugin v2.20+ 推奨 | docker versiondocker compose version |
| Git | 最新安定版 | git --version |
| ngrok(ローカルテスト用) | アカウント作成済み・最新版 | ngrok version |
| LINE Developers のチャネル情報 | Messaging API が有効化されたチャネルの Channel Secret と Access Token | コンソールで確認 |
ポイント:Node.js でも Docker でもどちらか一方だけがあれば動作します。ローカル開発時は HTTPS エンドポイントを外部に公開できるツール(例: ngrok)を必ず用意してください。
環境変数の統一表記
本稿では ${VARIABLE_NAME} 形式でプレースホルダーを示します。実際の環境変数は .env ファイルやシェルの export コマンドで設定してください。
|
1 2 3 4 |
# .env の例 LINE_CHANNEL_SECRET=xxxxxxxxxxxx LINE_ACCESS_TOKEN=yyyyyyyyyyyy |
2️⃣ LINE 用プラグインの取得
2.1 Marketplace(推奨)
- OpenClaw 管理画面 → Plugin Marketplace にアクセス
- 「LINE Bot Plugin」を検索し、最新版 の「Install」ボタンをクリック
Marketplace は署名付きパッケージとして配布されるため、改ざんリスクが低減します。
2.2 GitHub から直接取得
|
1 2 3 4 5 6 7 8 9 10 |
# リポジトリのクローン git clone https://github.com/openclaw/plugin-line.git cd plugin-line # 最新リリースタグをチェックアウト(例: v1.4.0) git checkout $(git describe --tags `git rev-list --tags --max-count=1`) # SHA256 ハッシュで整合性確認(必須) sha256sum openclaw-plugin-line-*.tgz |
注意:GitHub のリリースページに掲載されている SHA256 ハッシュと取得したファイルが一致することを必ず確認してください。
2.3 公式ドキュメントへのリンク(執筆時点で有効)
- OpenClaw Plugin ガイド(日本語): https://open-claw.bot/docs/ja/tools/plugin/
- LINE Bot 設定ガイド(Zenn): https://zenn.dev/openclaw/books/openclaw-linebot/viewer/1-2_setup_line
上記 URL は執筆時点のものです。最新情報は公式リポジトリやドキュメントサイトでご確認ください。
3️⃣ プラグインのインストールと有効化
3.1 npm(Node.js 環境)
|
1 2 3 4 5 6 7 8 9 |
# プロジェクトルートへ移動 cd /path/to/your/openclaw-project # 最新版をインストール npm install @openclaw/plugin-line@latest # インストール結果の確認 cat package.json | grep "@openclaw/plugin-line" |
有効化コマンド:
|
1 2 |
npx openclaw plugin enable line |
3.2 Docker Compose(コンテナ環境)
compose.yaml にプラグイン用サービスを追加します。環境変数は ${} で記述し、.env ファイルから自動注入させます。
|
1 2 3 4 5 6 7 8 9 10 11 |
services: openclaw: image: openclaw/openclaw:latest environment: - LINE_CHANNEL_SECRET=${LINE_CHANNEL_SECRET} - LINE_ACCESS_TOKEN=${LINE_ACCESS_TOKEN} ports: - "3000:3000" volumes: - ./openclaw.json:/app/openclaw.json |
コンテナ起動後にプラグインを有効化:
|
1 2 |
docker compose exec openclaw openclaw plugin enable line |
Tip:
docker compose up -d --buildでイメージビルドとデタッチ実行を同時に行えます。
4️⃣ openclaw.json の設定例 & ネットワーク構成
4.1 基本的なプラグイン定義
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
{ "plugin": [ { "name": "line", "enabled": true, "config": { "channelSecret": "${LINE_CHANNEL_SECRET}", "accessToken": "${LINE_ACCESS_TOKEN}" } } ] } |
channelSecretとaccessTokenは 環境変数、または.envに書いた文字列がそのまま展開されます。- 設定変更後は必ず OpenClaw を再起動(
openclaw restart/docker compose restart openclaw)してください。
4.2 ローカルテスト:ngrok の利用
|
1 2 3 |
# ポート 3000 を HTTPS トンネル化 ngrok http 3000 --region=ap |
出力例(実際の URL は毎回変わります):
|
1 2 |
Forwarding https://abcd1234.ngrok.io -> http://localhost:3000 |
この https://abcd1234.ngrok.io/webhook を LINE Developers コンソール の Webhook URL として登録します。
4.3 本番環境:リバースプロキシ(NGINX)例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
server { listen 443 ssl; server_name bot.example.com; # Let's Encrypt の証明書を自動取得する場合は certbot を利用 ssl_certificate /etc/letsencrypt/live/bot.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/bot.example.com/privkey.pem; location / { proxy_pass http://localhost:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } |
ベストプラクティス:本番環境では必ず
HTTPSが有効なリバースプロキシを経由し、証明書は自動更新できる Let’s Encrypt を利用してください。
5️⃣ LINE 側設定と動作確認
5.1 Webhook URL の登録手順
- LINE Developers コンソール → 対象チャネルの「Messaging API」タブ
- 「Webhook 設定」欄に
https://{your-domain}/webhook(または ngrok の URL)を入力 - 「検証」ボタンで接続テスト。成功すると 緑色のチェックマーク が表示されます
重要:Webサーバーが 200 OK を返すことが必須です。エラーが出た場合は次のトラブルシューティング項目を参照してください。
5.2 テストメッセージで確認
|
1 2 3 |
# コンテナ内ログ(リアルタイム表示) docker compose logs -f openclaw |
LINE アプリから Bot に 任意の文字列 を送信すると、以下のようなログが出力されるはずです。
|
1 2 3 |
[INFO] Received webhook event: message [INFO] LINE plugin processed userId=Uxxxxxxxx, text="こんにちは" |
5.3 トラブルシューティングチェックリスト
| エラーコード / 症状 | 主な原因 | 確認ポイント | 対処例 |
|---|---|---|---|
EADDRINUSE(ポート競合) |
同一ポートが他プロセスで使用中 | lsof -i :3000 で占有プロセスを特定 |
別ポートに変更し、openclaw.json の port を更新 |
401 Unauthorized(認証失敗) |
環境変数のスペルミス・空白文字 | .env と実行環境で ${LINE_ACCESS_TOKEN} が正しく展開されているか |
変数を再設定し、docker compose down && docker compose up -d |
403 Forbidden(Webhook 未到達) |
ngrok URL の有効期限切れ・リバースプロキシの証明書エラー | 新しい ngrok トンネル取得/証明書が有効か確認 | ngrok restart または NGINX 証明書を更新 |
JSON パースエラー(例: Unexpected token }) |
openclaw.json の構文ミス |
https://jsonlint.com/ で検証 | カンマや括弧の抜けを修正し、再起動 |
500 Internal Server Error(プラグイン内部エラー) |
プラグインバージョンと OpenClaw 本体の非互換 | 使用中の OpenClaw バージョンと plugin の release notes を照合 | 互換性のあるバージョンにダウングレード、または最新版へアップデート |
補足:curl で手動テスト
|
1 2 3 4 |
curl -X POST "https://your-domain.com/webhook" \ -H "Content-Type: application/json" \ -d '{"events":[{"type":"message","replyToken":"dummy","source":{"userId":"U123"},"message":{"type":"text","id":"12345","text":"ping"}}]}' |
200 が返ってきれば、OpenClaw 側のエンドポイントは正常に応答しています。
6️⃣ 継続的デプロイ(CI/CD)への組み込み例
| ステップ | 内容 |
|---|---|
| 1. ビルド | docker build -t your-registry/openclaw:latest . |
| 2. テスト | コンテナ起動 → npm run test(プラグイン単体テスト) |
| 3. デプロイ | GitHub Actions で docker push 後、Kubernetes の Deployment をローリング更新 |
| 4. シークレット管理 | GitHub Secrets に LINE_CHANNEL_SECRET と LINE_ACCESS_TOKEN を保存し、envFrom: で注入 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# .github/workflows/deploy.yml(抜粋) jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build & Push Docker image run: | docker build -t ghcr.io/${{ github.repository }}:latest . echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin docker push ghcr.io/${{ github.repository }}:latest - name: Deploy to Kubernetes uses: azure/k8s-deploy@v4 with: manifests: | k8s/deployment.yaml images: | ghcr.io/${{ github.repository }}:latest imagepullsecrets: | regcred |
7️⃣ まとめ
- 環境構築:Node.js または Docker、ngrok(ローカル)+LINE のシークレットが揃っていれば準備完了。
- プラグイン取得:Marketplace が最も手軽。GitHub から直接クローンしてハッシュ検証する方法も併記。
- インストール:npm と Docker Compose のどちらでも数行のコマンドで完了し、
openclaw plugin enable lineで有効化。 - 設定:
openclaw.jsonに環境変数参照を書き、HTTPS エンドポイント(ngrok or リバースプロキシ)を確保。 - 動作確認:LINE コンソールに Webhook URL を登録し、テストメッセージでログが出ることをチェック。
- トラブル対処:ポート競合・認証情報ミス・JSON 構文エラーの三点を中心に検証すれば多くの障害は解消できる。
このフローを踏めば、OpenClaw と LINE の連携がスムーズに行えます。環境やバージョンが変わった際は公式リポジトリ・ドキュメントで最新情報をご確認ください。 Happy coding!