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ステップ)
- LINE Messaging APIチャネルを作成
- Webhook Proxy ServiceでAPI Keyを取得
- Googleスプレッドシートを準備
- GASでコードを書く
- GASをWebアプリとして公開
- Webhook ProxyのURLを作成
- LINEにWebhook URLを設定
- 動作確認
所要時間:30分〜1時間(初めての方でも大丈夫です)
ステップ1: LINE Messaging APIチャネルを作成
1-1. LINE Developers Consoleにアクセス
- LINE Developers Consoleを開く
- LINEアカウントでログイン
- 初めての場合は「開発者として登録」をクリック
1-2. プロバイダーを作成
- 「プロバイダー」タブで「新規プロバイダー作成」をクリック
- プロバイダー名を入力(例:「マイボット」)
- 「作成」をクリック
1-3. Messaging APIチャネルを作成
- 作成したプロバイダーを選択
- 「新規チャネル作成」→「Messaging API」を選択
- 必要事項を入力:
- チャネル名:「テストボット」など
- チャネル説明:「テスト用」など
- 大業種・小業種:適当に選択
- メールアドレス:自分のメールアドレス
- 利用規約に同意して「作成」
1-4. 基本設定を確認
- 「チャネル基本設定」タブを開く
- 「チャネルアクセストークン(長期)」の「発行」ボタンをクリック
- 発行されたトークンをメモ帳にコピー(後で使います)
⚠️ 注意:チャネルアクセストークンは他人に見せないでください。
ステップ2: Webhook Proxy ServiceでAPI Keyを取得
- Webhook Proxy Serviceのダッシュボードを開く
- 「Sign in with Google」をクリック
- Googleアカウントでログイン
- 自動的にAPI Keyが表示されます
- 「Copy」ボタンでコピーして、メモ帳に保存
ステップ3: Googleスプレッドシートを準備
- Google スプレッドシートを開く
- 「空白」で新しいスプレッドシートを作成
- 左下のシート名「シート1」を右クリック→「名前を変更」→「ログ」に変更
- 1行目に見出しを入力:
- A1セル:「日時」
- B1セル:「ユーザーID」
- C1セル:「メッセージ」
ステップ4: GASでコードを書く
4-1. Apps Scriptエディタを開く
- スプレッドシートのメニューから「拡張機能」→「Apps Script」を選択
- 新しいタブでエディタが開きます
4-2. コードを貼り付ける
- 既存のコード(
function myFunction() {})を全て削除 - 以下のコードをコピー&貼り付け:
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. 保存する
- 上部の「保存」ボタン(フロッピーディスクアイコン)をクリック
- プロジェクト名を聞かれたら「LINE Webhook」などと入力
ステップ5: GASをWebアプリとして公開
5-1. デプロイする
- 右上の「デプロイ」→「新しいデプロイ」をクリック
- 「種類の選択」(歯車アイコン)をクリック
- 「ウェブアプリ」を選択
- 以下のように設定:
- 説明:「LINE Webhook受信」など任意
- 次のユーザーとして実行:「自分」
- アクセスできるユーザー:「全員」
- 「デプロイ」をクリック
5-2. 権限を承認する
- 「アクセスを承認」をクリック
- Googleアカウントを選択
- 「このアプリは確認されていません」と表示されたら:
- 「詳細」をクリック
- 「(プロジェクト名)に移動」をクリック
- 「許可」をクリック
5-3. ウェブアプリURLをコピー
- 「ウェブアプリ」の欄に表示されるURLをコピー
- メモ帳に貼り付けて保存
💡 ヒント: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 KeyYOUR_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設定を開く
- LINE Developers Consoleを開く
- 作成したチャネルを選択
- 「Messaging API設定」タブをクリック
7-2. Webhook URLを設定
- 「Webhook設定」セクションを探す
- 「Webhook URL」欄にステップ6で作成したURLを貼り付け
- 「更新」ボタンをクリック
- 「Webhookの利用」をオンにする
7-3. 検証する
- 「検証」ボタンをクリック
- 「成功」と表示されればOK!
❌ エラーが出た場合:
- URLのコピーミスがないか確認
- GASが正しくデプロイされているか確認
- API Keyが正しいか確認
ステップ8: 動作確認
8-1. LINE公式アカウントを友だち追加
- LINE Developers Consoleの「Messaging API設定」タブに戻る
- 「Bot情報」セクションのQRコードをスマホで読み取る
- 「追加」をタップして友だち追加
8-2. メッセージを送信
- 追加したBotのトークルームを開く
- 「テスト」などのメッセージを送信
8-3. スプレッドシートを確認
- Googleスプレッドシートを開く
- 「ログ」シートに以下が記録されていればOK:
- 日時
- ユーザーID
- 送信したメッセージ
✅ 成功!これでLINE BotとGASの連携が完成しました!
よくあるトラブルと解決方法
Q1. スプレッドシートに記録されない
確認ポイント:
- シート名が「ログ」になっているか
- GASのデプロイが「全員」になっているか
- Webhook Proxyのダッシュボードでログを確認(エラーがないか)
Q2. LINE検証ボタンでエラーが出る
確認ポイント:
- Webhook ProxyのURLが正しいか
- API KeyとGAS URLが正しく置き換わっているか
- GASが「全員」にアクセス許可されているか
Q3. コードを変更したのに反映されない
解決方法:
- Apps Scriptで「デプロイを管理」をクリック
- 鉛筆アイコン(編集)をクリック
- 「バージョン」を「新バージョン」に変更
- 「デプロイ」をクリック
次のステップ
応答メッセージを追加する
現在はメッセージを受信するだけですが、Botから返信するにはLINE Messaging APIのreply機能を使います。
スプレッドシートを活用する
- 受信したメッセージを集計・分析
- 条件によって異なる処理を行う
- 他のシートとデータ連携
ログを確認する
Webhook Proxy Serviceのダッシュボードで、Webhookのログ(最新50件)を確認できます。
まとめ
- 初心者でも8ステップでLINE BotとGASを連携できる
- Webhook Proxy Serviceで302エラーとタイムアウトを解決
- 完全無料で月1000リクエストまで利用可能
- スプレッドシートでメッセージを記録・管理できる
🎉 お疲れさまでした!
これでLINE Botの基礎ができました。ぜひいろいろなアイデアを試してみてください!