01.n8nとLINEを使ったAIエージェントの作成

2Reading Time

fly.ioにn8nをインストールして

n8n on Fly.io: L-CON mini テスト構築手順書(実践記録付き)

LINE チャットボット (n8n + ChatGPT) 構築手順書

【前提】

  • ホスティングサービス: Fly.io
  • n8n: Self-Hosted
  • ChatGPT: OpenAI API (gpt-4)
  • 連携元: LINE Messaging API

【STEP 1: n8n を Fly.io にデプロイ】

  1. Fly.io に登録:
    https://fly.io/
  2. CLI インストール(PowerShell):
    iwr https://fly.io/install.ps1 -useb | iex
  3. アプリ作成:
    fly launch --name n8n-yourapp --region nrt
  4. fly.toml に volume mount を追加:
  5. ボリューム作成:
    fly volumes create n8n_data --region nrt
  6. Webhook URL 設定(推奨):
    fly secrets set WEBHOOK_URL=https://n8n-yourapp.fly.dev/

【STEP 2: LINE Developers 設定】

  1. LINE公式アカウント+Messaging APIチャネル作成
  2. Webhook URL に n8n の URL を設定:
    例:https://n8n-yourapp.fly.dev/webhook/line-webhook
  3. チャネルアクセストークン取得:「Messaging API」設定下部よりコピー

【STEP 3: n8n のワークフロー構築】

  1. Webhook ノード
    – Method: POST
    – Path: line-webhook
  2. HTTP Request(ChatGPT 送信)
  3. Set ノード
    • replyToken:
      {{ $('Webhook').item.json.body.events[0].replyToken }}
    • chatReply:
      {{ $('HTTP Request').item.json.choices[0].message.content }}
  4. HTTP Request(LINE返信)

【つまずいたポイント】

  • Webhook URL をテスト→本番に切り替え忘れ
  • {{ }} を JSON の文字列内で使う場合は "..." で囲む必要がある
  • Using JSON / Expression モードの切り替えミス
  • replyToken の参照ミスで undefined 発生
  • ChatGPT 応答が 500 文字超で LINE API がエラー

ご希望に応じて CRM 連携・ログ保存・条件分岐返信なども拡張可能です。

本手順書は、Fly.io 上で n8n をホストし、LINE Messaging API をトリガーに ChatGPT の応答を返すシステムの構築フローです。

1. 環境構築(Fly.io + n8n)

  1. Fly CLI インストール

    公式: flyctl install
  2. ログイン
    flyctl auth login
  3. アプリ初期化
    ※リージョンは nrt(東京)がおすすめ
  4. Dockerfile 作成
    FROM n8nio/n8n だけでOK

2. 永続ボリュームの設定

再デプロイ

3. Secrets(環境変数)設定

4. ログインできない場合(初期化エラー)

n8n にログインできない/Setup 画面が出る場合は、以下の Basic 認証を一時的に有効化してください:

→ Basic 認証後にオーナーアカウントを再作成

5. LINE Developers 側の設定

  1. チャネルを Messaging API で作成
  2. Webhook URL に:
    https://n8n-yourapp.fly.dev/webhook/line-webhook
  3. チャネルアクセストークンを取得(長期)

6. n8n ワークフロー構築

  1. Webhook ノード(POST /line-webhook)
  2. ChatGPT用 HTTP Request ノード
  3. Set ノード:replyToken と ChatGPTの応答
  4. HTTP Request ノード(LINEへ返信)

7. つまずきポイントと対策

  • Webhook URL が 404 → ACTIVATE をクリックして有効化
  • ChatGPT JSON エラー → JSON構造ミス(「=」ではなく “” を使用)
  • n8n が初期化された → volume mount 漏れ or 未作成
  • ログイン不可 → Basic Auth を temporary で有効化