はじめに
LINE は日本、タイ、台湾などの地域で最も主流のインスタントメッセージングアプリです。OpenClaw を LINE に接続することで、インテリジェントなチャットボットを作成し、友達のメッセージに自動返信したり、グループで AI サービスを提供したりできます。本記事では、LINE Developers コンソールの設定から、接続完了までの全工程をステップバイステップでご説明します。
前提条件
- OpenClaw がインストール済みで正常に稼働していること
- LINE アカウントを所有していること
- OpenClaw サービスがパブリック HTTPS アドレスでアクセス可能であること(LINE Webhook は HTTPS を必須としています)
ステップ1:LINE Messaging API チャンネルの作成
1.1 LINE Developers アカウントの登録
- LINE Developers にアクセス
- LINE アカウントでログイン
- 初回ログインの場合、開発者規約に同意して Provider を作成する必要があります
1.2 Provider の作成
Provider はチャンネル(Channel)を管理するためのトップレベルの組織単位です。
- LINE Developers Console で Create a new provider をクリック
- Provider 名を入力(例:「My OpenClaw Bot」)
- Create をクリック
1.3 Messaging API Channel の作成
- Provider ページで Create a Messaging API channel をクリック
- 以下の情報を入力します。
| フィールド | 説明 | 例 |
|---|---|---|
| Channel type | Messaging API を選択 | Messaging API |
| Channel name | ボットの表示名 | AI アシスタント |
| Channel description | ボットの説明 | OpenClaw ベースのインテリジェントアシスタント |
| Category | カテゴリを選択 | ツール/ユーティリティ |
| Subcategory | サブカテゴリを選択 | チャットボット |
| Email address | 連絡先メールアドレス | [email protected] |
- 利用規約に同意して Create をクリック
1.4 必要な認証情報の取得
作成完了後、2つの重要な情報を記録する必要があります。
Channel Secret:Basic settings タブで確認できます。
Channel Access Token:
- Messaging API タブに移動
- 下部の Channel access token エリアまでスクロール
- Issue ボタンをクリックして長期 Token を生成
- コピーして安全に保存
Channel Secret: abc123def456ghi789jkl012
Channel Access Token: eyJhbGciOiJIUzI1NiJ9.xxxxx.xxxxx(非常に長い文字列)
ステップ2:Webhook の設定
2.1 Webhook URL の設定
Messaging API タブで:
- Webhook settings エリアを見つける
- Edit ボタンをクリック
- Webhook URL を入力:
https://your-domain.com/webhook/line
- Update をクリック
- Use webhook スイッチをオンにする
2.2 Webhook の検証
Verify ボタンをクリックして Webhook 接続をテストします。OpenClaw が既に設定済みで稼働中であれば、Success と表示されるはずです。
2.3 自動返信の無効化
Messaging API タブで:
- LINE Official Account features エリアを見つける
- Auto-reply messages の横にある Edit リンクをクリック
- LINE Official Account Manager に移動
- 自動応答メッセージをオフにする(オフにしないと OpenClaw の返信と競合します)
- あいさつメッセージもオフにする(任意、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 で作成します。
- チャット → リッチメニュー に移動
- 作成 をクリック
- メニューレイアウトをデザインします。一般的なオプション:
┌─────────┬─────────┬─────────┐
│ │ │ │
│ 質問 │ 翻訳 │ 要約 │
│ │ │ │
├─────────┼─────────┼─────────┤
│ │ │ │
│ リセット │ モデル │ ヘルプ │
│ │ │ │
└─────────┴─────────┴─────────┘
- 各エリアのアクションタイプをテキストに設定し、対応するトリガーコマンドを入力
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 をグループに追加
- LINE でグループを開く
- グループ設定 → 招待 をタップ
- 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 連携の主要な手順:
- LINE Developers で Messaging API チャンネルを作成
- Channel Secret と Channel Access Token を取得
- HTTPS Webhook URL を設定
- OpenClaw 設定ファイルに認証情報を入力
- LINE の自動返信機能を無効化
- サービスを再起動してテスト
費用節約のために Reply API を優先的に使用し、Rich Menu でユーザー体験を向上させることをお勧めします。