ホーム チュートリアル カテゴリ Skills サイトについて
ZH EN JA KO
チャンネル連携

OpenClawでLINEを接続するチュートリアル

· 15 分で読了

はじめに

LINE は日本、タイ、台湾などの地域で最も主流のインスタントメッセージングアプリです。OpenClaw を LINE に接続することで、インテリジェントなチャットボットを作成し、友達のメッセージに自動返信したり、グループで AI サービスを提供したりできます。本記事では、LINE Developers コンソールの設定から、接続完了までの全工程をステップバイステップでご説明します。

前提条件

  • OpenClaw がインストール済みで正常に稼働していること
  • LINE アカウントを所有していること
  • OpenClaw サービスがパブリック HTTPS アドレスでアクセス可能であること(LINE Webhook は HTTPS を必須としています)

ステップ1:LINE Messaging API チャンネルの作成

1.1 LINE Developers アカウントの登録

  1. LINE Developers にアクセス
  2. LINE アカウントでログイン
  3. 初回ログインの場合、開発者規約に同意して Provider を作成する必要があります

1.2 Provider の作成

Provider はチャンネル(Channel)を管理するためのトップレベルの組織単位です。

  1. LINE Developers Console で Create a new provider をクリック
  2. Provider 名を入力(例:「My OpenClaw Bot」)
  3. Create をクリック

1.3 Messaging API Channel の作成

  1. Provider ページで Create a Messaging API channel をクリック
  2. 以下の情報を入力します。
フィールド 説明
Channel type Messaging API を選択 Messaging API
Channel name ボットの表示名 AI アシスタント
Channel description ボットの説明 OpenClaw ベースのインテリジェントアシスタント
Category カテゴリを選択 ツール/ユーティリティ
Subcategory サブカテゴリを選択 チャットボット
Email address 連絡先メールアドレス [email protected]
  1. 利用規約に同意して Create をクリック

1.4 必要な認証情報の取得

作成完了後、2つの重要な情報を記録する必要があります。

Channel SecretBasic settings タブで確認できます。

Channel Access Token

  1. Messaging API タブに移動
  2. 下部の Channel access token エリアまでスクロール
  3. Issue ボタンをクリックして長期 Token を生成
  4. コピーして安全に保存
Channel Secret: abc123def456ghi789jkl012
Channel Access Token: eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx(非常に長い文字列)

ステップ2:Webhook の設定

2.1 Webhook URL の設定

Messaging API タブで:

  1. Webhook settings エリアを見つける
  2. Edit ボタンをクリック
  3. Webhook URL を入力:
https://your-domain.com/webhook/line
  1. Update をクリック
  2. Use webhook スイッチをオンにする

2.2 Webhook の検証

Verify ボタンをクリックして Webhook 接続をテストします。OpenClaw が既に設定済みで稼働中であれば、Success と表示されるはずです。

2.3 自動返信の無効化

Messaging API タブで:

  1. LINE Official Account features エリアを見つける
  2. Auto-reply messages の横にある Edit リンクをクリック
  3. LINE Official Account Manager に移動
  4. 自動応答メッセージをオフにする(オフにしないと OpenClaw の返信と競合します)
  5. あいさつメッセージもオフにする(任意、LINE のデフォルトのあいさつを残すこともできます)

ステップ3:OpenClaw の設定

3.1 設定ファイルで設定

~/.config/openclaw/openclaw.json5 を編集します。

{
  channels: {
    line: {
      enabled: true,
      // Channel Secret(Basic settings から取得)
      channelSecret: "abc123def456ghi789jkl012",
      // Channel Access Token(Messaging API で生成)
      channelAccessToken: "eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx",

      // Webhook パス(LINE コンソールの設定と一致させる必要あり)
      webhookPath: "/webhook/line",

      // メッセージ処理設定
      message: {
        // 返信方式: "reply" は Reply API を使用(無料)、"push" は Push API を使用(有料の場合あり)
        replyMode: "reply",
        // グループメッセージをサポートするか
        groupEnabled: true,
        // グループでのトリガー方式
        groupTrigger: "mention",  // "mention" | "keyword" | "all"
        // グループトリガーキーワード(groupTrigger が "keyword" の場合に有効)
        groupKeywords: ["@AI", "/ask"]
      },

      // 返信フォーマット
      reply: {
        // 長いメッセージの自動分割
        maxLength: 5000,
        // Flex Message 形式を使用するか(より美しい表示)
        useFlexMessage: false,
        // メッセージ送信前の待機中アニメーション
        loadingAnimation: true
      }
    }
  }
}

3.2 環境変数で設定

export LINE_CHANNEL_SECRET="abc123def456ghi789jkl012"
export LINE_CHANNEL_ACCESS_TOKEN="eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx"

3.3 再起動と検証

openclaw restart

# 接続ログを確認
openclaw logs -f --component channel:line

成功時のログ:

[INFO] [channel:line] LINE Messaging API 频道已启动
[INFO] [channel:line] Webhook 路径: /webhook/line
[INFO] [channel:line] Bot 名称: AI 助手
[INFO] [channel:line] 等待接收消息...

Reply API と Push API

LINE にはメッセージを送信する2つの API があり、その違いを理解することが重要です。

Reply API

  • トリガー方式:ユーザーからメッセージを受け取った後にのみ使用可能
  • 時間制限:Reply Token の有効期限は約30秒
  • 費用:完全無料
  • 制限:各イベントにつき1回のみ返信可能

Push API

  • トリガー方式:ユーザーに能動的にメッセージを送信可能
  • 時間制限:制限なし
  • 費用:無料プランで月200通、超過分は有料
  • 制限:サブスクリプションプランに依存
{
  channels: {
    line: {
      message: {
        // 費用節約のため reply モードの使用を推奨
        replyMode: "reply",
        // 遅延返信が必要な場合(時間のかかるタスクの処理など)、フォールバックとして push を有効化
        fallbackToPush: true
      }
    }
  }
}

メッセージ枠

プラン Push API メッセージ数/月 費用
Free 200通 無料
Light 5,000通 約800 TWD/月
Standard 25,000通 約4,000 TWD/月
Pro カスタム LINE にお問い合わせ

Reply API のメッセージは枠にカウントされないため、Reply モードの優先使用をお勧めします。

Rich Menu の設定

Rich Menu は LINE Bot 下部のカスタムメニューで、クイック操作の入口を提供します。

Rich Menu の作成

LINE Official Account Manager で作成します。

  1. チャットリッチメニュー に移動
  2. 作成 をクリック
  3. メニューレイアウトをデザインします。一般的なオプション:
┌─────────┬─────────┬─────────┐
│         │         │         │
│  質問   │  翻訳   │  要約   │
│         │         │         │
├─────────┼─────────┼─────────┤
│         │         │         │
│ リセット │  モデル  │  ヘルプ  │
│         │         │         │
└─────────┴─────────┴─────────┘
  1. 各エリアのアクションタイプをテキストに設定し、対応するトリガーコマンドを入力

API 経由での Rich Menu 作成

OpenClaw の設定で Rich Menu を定義することもできます。

{
  channels: {
    line: {
      richMenu: {
        enabled: true,
        areas: [
          { label: "質問", action: "/ask" },
          { label: "翻訳", action: "/translate" },
          { label: "要約", action: "/summarize" },
          { label: "会話リセット", action: "/reset" },
          { label: "モデル切替", action: "/model" },
          { label: "ヘルプ", action: "/help" }
        ]
      }
    }
  }
}

グループでの使用

Bot をグループに追加

  1. LINE でグループを開く
  2. グループ設定 → 招待 をタップ
  3. Bot を検索して追加

グループ動作の設定

{
  channels: {
    line: {
      group: {
        // グループ参加時のウェルカムメッセージ
        welcomeMessage: "皆さんこんにちは、AIアシスタントです!@を付けるか /ask で始めることで質問できます。",
        // グループから退出した際にデータをクリーンアップ
        cleanOnLeave: true,
        // 各グループ独立のコンテキスト
        separateContext: true
      }
    }
  }
}

HTTPS の要件

LINE Webhook は HTTPS を必須としています。HTTPS をまだ設定していない場合、以下の方法を使用できます。

方法1:Nginx リバースプロキシ + Let's Encrypt

# certbot をインストール
sudo apt install certbot python3-certbot-nginx

# 証明書を取得
sudo certbot --nginx -d your-domain.com

方法2:ngrok トンネル(開発テスト用)

# ngrok をインストール
npm install -g ngrok

# トンネルを作成
ngrok http 18789

ngrok で生成された HTTPS アドレスを LINE Webhook URL に入力します。

方法3:Cloudflare Tunnel

cloudflared tunnel --url http://localhost:18789

トラブルシューティング

Webhook 検証の失敗

# OpenClaw が稼働中か確認
openclaw logs --level error

# Webhook パスが正しいか確認
curl -X POST https://your-domain.com/webhook/line -d '{}' -H "Content-Type: application/json"

# SSL 証明書が有効か確認
openssl s_client -connect your-domain.com:443

Bot がメッセージに返信しない

# Channel Access Token が有効か確認
openclaw logs --component channel:line --level debug

# よくある原因:
# 1. Token の有効期限切れ - 新しい Token を再発行
# 2. 自動返信が無効化されていない - LINE の自動返信が Reply Token を消費してしまう
# 3. Reply Token のタイムアウト - AI モデルの応答が遅すぎる(>30秒)

Reply Token のタイムアウト

AI モデルの応答時間が30秒を超えると、Reply Token が期限切れになります。解決策:

{
  channels: {
    line: {
      message: {
        replyMode: "reply",
        fallbackToPush: true,  // Reply が失敗した場合に Push API にフォールバック
        // または「処理中」の返信を先に送信
        thinkingMessage: "考え中です。しばらくお待ちください..."
      }
    }
  }
}

まとめ

LINE 連携の主要な手順:

  1. LINE Developers で Messaging API チャンネルを作成
  2. Channel Secret と Channel Access Token を取得
  3. HTTPS Webhook URL を設定
  4. OpenClaw 設定ファイルに認証情報を入力
  5. LINE の自動返信機能を無効化
  6. サービスを再起動してテスト

費用節約のために Reply API を優先的に使用し、Rich Menu でユーザー体験を向上させることをお勧めします。

OpenClawは無料のオープンソースAIアシスタント。WhatsApp、Telegram、Discordなど多数のプラットフォームに対応