← ブログ一覧に戻る

LINE Webhook + GAS 初心者向け完全ガイド

2025-11-14

はじめに

このガイドでは、プログラミング初心者でもLINE BotとGoogle Apps Script(GAS)を使ってスプレッドシートにメッセージを記録する方法を、ゼロから丁寧に解説します。

通常、GASとLINE Webhookを直接接続すると302エラーやタイムアウトが発生しますが、Webhook Proxy Serviceを使うことで簡単に解決できます。

必要なもの

  • Googleアカウント(無料)
  • LINEアカウント(無料)
  • インターネット接続
  • Webブラウザ(Chrome推奨)

費用:完全無料
すべてのサービスを無料で利用できます(月1000リクエストまで)。

全体の流れ(8ステップ)

  1. LINE Messaging APIチャネルを作成
  2. Webhook Proxy ServiceでAPI Keyを取得
  3. Googleスプレッドシートを準備
  4. GASでコードを書く
  5. GASをWebアプリとして公開
  6. Webhook ProxyのURLを作成
  7. LINEにWebhook URLを設定
  8. 動作確認

所要時間:30分〜1時間(初めての方でも大丈夫です)

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

1-1. LINE Developers Consoleにアクセス

  1. LINE Developers Consoleを開く
  2. LINEアカウントでログイン
  3. 初めての場合は「開発者として登録」をクリック

1-2. プロバイダーを作成

  1. 「プロバイダー」タブで「新規プロバイダー作成」をクリック
  2. プロバイダー名を入力(例:「マイボット」)
  3. 「作成」をクリック

1-3. Messaging APIチャネルを作成

  1. 作成したプロバイダーを選択
  2. 「新規チャネル作成」→「Messaging API」を選択
  3. 必要事項を入力:
    • チャネル名:「テストボット」など
    • チャネル説明:「テスト用」など
    • 大業種・小業種:適当に選択
    • メールアドレス:自分のメールアドレス
  4. 利用規約に同意して「作成」

1-4. 基本設定を確認

  1. 「チャネル基本設定」タブを開く
  2. 「チャネルアクセストークン(長期)」の「発行」ボタンをクリック
  3. 発行されたトークンをメモ帳にコピー(後で使います)

⚠️ 注意:チャネルアクセストークンは他人に見せないでください。

ステップ2: Webhook Proxy ServiceでAPI Keyを取得

  1. Webhook Proxy Serviceのダッシュボードを開く
  2. 「Sign in with Google」をクリック
  3. Googleアカウントでログイン
  4. 自動的にAPI Keyが表示されます
  5. 「Copy」ボタンでコピーして、メモ帳に保存

ステップ3: Googleスプレッドシートを準備

  1. Google スプレッドシートを開く
  2. 「空白」で新しいスプレッドシートを作成
  3. 左下のシート名「シート1」を右クリック→「名前を変更」→「ログ」に変更
  4. 1行目に見出しを入力:
    • A1セル:「日時」
    • B1セル:「ユーザーID」
    • C1セル:「メッセージ」

ステップ4: GASでコードを書く

4-1. Apps Scriptエディタを開く

  1. スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択
  2. 新しいタブでエディタが開きます

4-2. コードを貼り付ける

  1. 既存のコード(function myFunction() {})を全て削除
  2. 以下のコードをコピー&貼り付け:
function doPost(e) {
  try {
    const json = JSON.parse(e.postData.contents);
    const events = json.events || [];
    
    const sheet = SpreadsheetApp
      .getActiveSpreadsheet()
      .getSheetByName("ログ");
    
    events.forEach(event => {
      if (event.type === "message") {
        const userId = event.source.userId;
        const text = event.message.text;
        const timestamp = new Date();
        
        sheet.appendRow([timestamp, userId, text]);
      }
    });
    
    return ContentService
      .createTextOutput(JSON.stringify({ success: true }))
      .setMimeType(ContentService.MimeType.JSON);
  } catch (error) {
    return ContentService
      .createTextOutput(JSON.stringify({ 
        success: false, 
        error: error.toString() 
      }))
      .setMimeType(ContentService.MimeType.JSON);
  }
}

4-3. 保存する

  1. 上部の「保存」ボタン(フロッピーディスクアイコン)をクリック
  2. プロジェクト名を聞かれたら「LINE Webhook」などと入力

ステップ5: GASをWebアプリとして公開

5-1. デプロイする

  1. 右上の「デプロイ」→「新しいデプロイ」をクリック
  2. 「種類の選択」(歯車アイコン)をクリック
  3. 「ウェブアプリ」を選択
  4. 以下のように設定:
    • 説明:「LINE Webhook受信」など任意
    • 次のユーザーとして実行:「自分」
    • アクセスできるユーザー:「全員」
  5. 「デプロイ」をクリック

5-2. 権限を承認する

  1. 「アクセスを承認」をクリック
  2. Googleアカウントを選択
  3. 「このアプリは確認されていません」と表示されたら:
    • 「詳細」をクリック
    • 「(プロジェクト名)に移動」をクリック
  4. 「許可」をクリック

5-3. ウェブアプリURLをコピー

  1. 「ウェブアプリ」の欄に表示されるURLをコピー
  2. メモ帳に貼り付けて保存

💡 ヒント:URLはhttps://script.google.com/macros/s/ABC.../execのような形式です。

⚠️ 重要:コードを変更した場合は、「デプロイを管理」→「編集」→「バージョン: 新バージョン」で再デプロイが必要です。

ステップ6: Webhook ProxyのURLを作成

6-1. URLを組み立てる

以下の形式で、メモ帳などで組み立てます:

https://us-central1-webhook-proxy-508a3.cloudfunctions.net/webhookProxy?key=YOUR_API_KEY&url=YOUR_GAS_URL

6-2. 置き換える

  • YOUR_API_KEY → ステップ2で取得したAPI Key
  • YOUR_GAS_URL → ステップ5で取得したGASのウェブアプリURL

6-3. 例

https://us-central1-webhook-proxy-508a3.cloudfunctions.net/webhookProxy?key=abc123def456&url=https://script.google.com/macros/s/ABC.../exec

完成したURLをメモ帳に保存しておきます。

ステップ7: LINEにWebhook URLを設定

7-1. Messaging API設定を開く

  1. LINE Developers Consoleを開く
  2. 作成したチャネルを選択
  3. 「Messaging API設定」タブをクリック

7-2. Webhook URLを設定

  1. 「Webhook設定」セクションを探す
  2. 「Webhook URL」欄にステップ6で作成したURLを貼り付け
  3. 「更新」ボタンをクリック
  4. 「Webhookの利用」をオンにする

7-3. 検証する

  1. 「検証」ボタンをクリック
  2. 「成功」と表示されればOK!

❌ エラーが出た場合:

  • URLのコピーミスがないか確認
  • GASが正しくデプロイされているか確認
  • API Keyが正しいか確認

ステップ8: 動作確認

8-1. LINE公式アカウントを友だち追加

  1. LINE Developers Consoleの「Messaging API設定」タブに戻る
  2. 「Bot情報」セクションのQRコードをスマホで読み取る
  3. 「追加」をタップして友だち追加

8-2. メッセージを送信

  1. 追加したBotのトークルームを開く
  2. 「テスト」などのメッセージを送信

8-3. スプレッドシートを確認

  1. Googleスプレッドシートを開く
  2. 「ログ」シートに以下が記録されていればOK:
    • 日時
    • ユーザーID
    • 送信したメッセージ

✅ 成功!これでLINE BotとGASの連携が完成しました!

よくあるトラブルと解決方法

Q1. スプレッドシートに記録されない

確認ポイント:

  • シート名が「ログ」になっているか
  • GASのデプロイが「全員」になっているか
  • Webhook Proxyのダッシュボードでログを確認(エラーがないか)

Q2. LINE検証ボタンでエラーが出る

確認ポイント:

  • Webhook ProxyのURLが正しいか
  • API KeyとGAS URLが正しく置き換わっているか
  • GASが「全員」にアクセス許可されているか

Q3. コードを変更したのに反映されない

解決方法:

  1. Apps Scriptで「デプロイを管理」をクリック
  2. 鉛筆アイコン(編集)をクリック
  3. 「バージョン」を「新バージョン」に変更
  4. 「デプロイ」をクリック

次のステップ

応答メッセージを追加する

現在はメッセージを受信するだけですが、Botから返信するにはLINE Messaging APIreply機能を使います。

スプレッドシートを活用する

  • 受信したメッセージを集計・分析
  • 条件によって異なる処理を行う
  • 他のシートとデータ連携

ログを確認する

Webhook Proxy Serviceのダッシュボードで、Webhookのログ(最新50件)を確認できます。

まとめ

  • 初心者でも8ステップでLINE BotとGASを連携できる
  • Webhook Proxy Serviceで302エラーとタイムアウトを解決
  • 完全無料で月1000リクエストまで利用可能
  • スプレッドシートでメッセージを記録・管理できる

🎉 お疲れさまでした!
これでLINE Botの基礎ができました。ぜひいろいろなアイデアを試してみてください!

関連リンク