MENU

【GAS×LINE公式】無料で自動応答Botを作る入門ガイド|2026年版

【GAS×LINE公式】無料で自動応答Botを作る入門ガイド|2026年版

実は、Google Apps Script(GAS)とLINE Messaging APIを組み合わせることで、月額0円で自動応答Botを構築できます。しかも、この記事のコードをコピペするだけで、プログラミング初心者でも今日から始められます。


目次

GAS×LINE公式でできること

GASとLINE公式アカウントを連携させると、以下のような自動化が実現できます。

できること1: 24時間自動応答

お客様からのメッセージに、営業時間外でも自動で返信。「営業時間は10:00〜18:00です」といった定型文はもちろん、ChatGPTと連携すれば自然な会話も可能です。

できること2: 予約受付の自動化

予約というキーワードに反応して、空き状況をスプレッドシートから取得し、自動で候補日を提示。お客様がタップするだけで予約完了まで進められます。

できること3: FAQ自動回答

「料金はいくら?」駐車場はある?といったよくある質問に自動で回答。スプレッドシートにFAQを登録しておけば、いつでも最新情報を返せます。

できること4: セグメント配信の自動化

顧客情報をスプレッドシートで管理し、条件に合ったお客様だけに自動でメッセージを配信。誕生日クーポンや再来店促進も自動化できます。

[図解予定: GAS×LINE連携でできることの全体像イメージ]


Lステップ vs 自作Bot:コスト比較

自動応答Botを構築する方法として、有名なのはLステップなどの外部サービスです。しかし、コスト面で大きな差があります。

項目 Lステップ GAS自作Bot
初期費用 0円 0円
月額費用 2,980円〜 0円
カスタマイズ性
導入難易度
メンテナンス 不要 自分で対応

GAS自作Botがおすすめな人:

  • 月額コストを抑えたい
  • 独自のロジックを実装したい
  • スプレッドシートと連携させたい
  • プログラミングを学びたい

Lステップがおすすめな人:

  • すぐに使い始めたい
  • 技術的なことは苦手
  • サポートが欲しい


LINE公式アカウントの準備

STEP 1: LINE公式アカウントを作成

すでにLINE公式アカウントをお持ちの方は、STEP 2に進んでください。

  • LINE Official Account Manager にアクセス
  • 「LINE公式アカウントを作成」をクリック
  • LINEビジネスIDでログイン(なければ新規作成)
  • アカウント名、業種などを入力して作成完了

ポイント: 無料プラン(コミュニケーションプラン)で十分です。月200通までのメッセージ送信が無料で利用できます。

STEP 2: LINE Developersに登録

LINE Messaging APIを使うには、LINE Developersコンソールへの登録が必要です。

  • LINE Developers にアクセス
  • 「コンソールにログイン」をクリック
  • LINEアカウントでログイン
  • 開発者情報(名前、メールアドレス)を入力

[図解予定: LINE Developersコンソールのログイン画面]


Messaging APIの設定

STEP 1: プロバイダーを作成

  • LINE Developersコンソールで「新規プロバイダー作成」をクリック
  • プロバイダー名を入力(例:「My Bot Provider」)
  • 作成をクリック

STEP 2: チャネルを作成

  • 作成したプロバイダーを選択
  • 「Messaging API」をクリック
  • 以下の情報を入力:

– チャネル名: Botの名前(例:「予約受付Bot」)

– チャネル説明: Botの説明文

– 大業種・小業種: 該当するものを選択

– メールアドレス: 連絡先

  • 利用規約に同意して作成をクリック

STEP 3: チャネルアクセストークンを取得

この値は非常に重要です。メモ帳などに保存しておいてください。

  • 作成したチャネルの「Messaging API設定」タブを開く
  • ページ下部の「チャネルアクセストークン」セクションへ
  • 「発行」ボタンをクリック
  • 表示されたトークン(長い文字列)をコピーして保存

[図解予定: チャネルアクセストークンの発行画面]

STEP 4: Webhook設定の確認

  • 「Messaging API設定」タブで以下を確認:

– Webhookの利用: オン

– 応答メッセージ: オフ(GASで処理するため)

– あいさつメッセージ: お好みで設定

Webhook URLは、このあとGASで作成してから設定します。


GASでWebhookを受け取る

STEP 1: Google Apps Scriptを開く

  • Google Drive にアクセス
  • 「新規」→「その他」→「Google Apps Script」をクリック
  • プロジェクト名を変更(例:「LINE Bot」)

STEP 2: 基本コードを貼り付け

以下のコードをすべてコピーして、エディタに貼り付けてください。


// ===================================================
// LINE Bot 基本設定
// ===================================================

// 【重要】ここにチャネルアクセストークンを貼り付け
const CHANNEL_ACCESS_TOKEN = 'ここにトークンを貼り付け';

// LINE Messaging API エンドポイント
const LINE_ENDPOINT = 'https://api.line.me/v2/bot/message/reply';

// ===================================================
// Webhookを受け取る関数(POST)
// ===================================================
function doPost(e) {
  try {
    // LINEから送られてきたデータを取得
    const json = JSON.parse(e.postData.contents);
    const events = json.events;

    // 各イベントを処理
    events.forEach(function(event) {
      // メッセージイベントの場合のみ処理
      if (event.type === 'message' && event.message.type === 'text') {
        const replyToken = event.replyToken;
        const userMessage = event.message.text;

        // 返信メッセージを生成
        const replyMessage = generateReply(userMessage);

        // LINEに返信
        replyToLine(replyToken, replyMessage);
      }
    });

    return ContentService.createTextOutput(
      JSON.stringify({ status: 'ok' })
    ).setMimeType(ContentService.MimeType.JSON);

  } catch (error) {
    console.error('Error:', error);
    return ContentService.createTextOutput(
      JSON.stringify({ status: 'error', message: error.toString() })
    ).setMimeType(ContentService.MimeType.JSON);
  }
}

// ===================================================
// 返信メッセージを生成する関数
// ===================================================
function generateReply(userMessage) {
  // キーワードに応じた返信を設定
  const keywords = {
    '予約': '予約をご希望ですね!\n\n空き状況を確認いたします。\nご希望の日時を教えてください。\n\n例:2月15日 14時',
    '料金': '料金についてのお問い合わせありがとうございます。\n\n基本料金:5,000円\n延長料金:1,000円/30分\n\n詳しくはホームページをご覧ください。',
    '営業時間': '営業時間のご案内です。\n\n平日:10:00〜20:00\n土日祝:10:00〜18:00\n\n定休日:毎週水曜日',
    '場所': '所在地のご案内です。\n\n〒100-0001\n東京都千代田区〇〇1-2-3\n△△ビル5F\n\n最寄駅:〇〇駅 徒歩3分',
    'ありがとう': 'こちらこそ、ありがとうございます!\nまたのご連絡をお待ちしております😊'
  };

  // キーワードマッチング
  for (const [keyword, reply] of Object.entries(keywords)) {
    if (userMessage.includes(keyword)) {
      return reply;
    }
  }

  // デフォルトの返信
  return 'お問い合わせありがとうございます。\n\n以下のキーワードでお答えできます:\n・予約\n・料金\n・営業時間\n・場所\n\nその他のご質問は、営業時間内にスタッフがお答えいたします。';
}

// ===================================================
// LINEに返信を送信する関数
// ===================================================
function replyToLine(replyToken, message) {
  const payload = {
    replyToken: replyToken,
    messages: [
      {
        type: 'text',
        text: message
      }
    ]
  };

  const options = {
    method: 'post',
    contentType: 'application/json',
    headers: {
      'Authorization': 'Bearer ' + CHANNEL_ACCESS_TOKEN
    },
    payload: JSON.stringify(payload)
  };

  UrlFetchApp.fetch(LINE_ENDPOINT, options);
}

STEP 3: トークンを設定

コード1行目付近の以下の部分を編集します。


const CHANNEL_ACCESS_TOKEN = 'ここにトークンを貼り付け';

先ほどコピーしたチャネルアクセストークンを貼り付けてください。

STEP 4: デプロイ(公開)

  • 画面右上の「デプロイ」→新しいデプロイをクリック
  • 種類の選択で歯車アイコン→ウェブアプリを選択
  • 以下を設定:

– 説明: 任意(例:LINE Bot v1)

– 次のユーザーとして実行: 自分

– アクセスできるユーザー: 全員

  • デプロイをクリック
  • 「アクセスを承認」→ Googleアカウントで認証
  • 表示されたウェブアプリのURLをコピー

重要: このURLがWebhook URLになります。必ずコピーして保存してください。

[図解予定: デプロイ設定画面とURL取得画面]


Webhook URLの設定

LINE DevelopersでURLを登録

  • LINE Developersコンソールに戻る
  • 作成したチャネルの「Messaging API設定」タブを開く
  • 「Webhook URL」に、GASで取得したURLを貼り付け
  • 更新をクリック
  • 「Webhookの利用」がオンになっていることを確認
  • 「検証」ボタンをクリックして成功と表示されればOK

動作確認

テスト方法

  • LINE公式アカウントを友だち追加(QRコードから)
  • トーク画面で予約と送信
  • 自動で返信が来れば成功!

うまくいかない場合のチェックリスト

  • [ ] チャネルアクセストークンは正しく貼り付けられているか
  • [ ] GASのデプロイ時全員を選択したか
  • [ ] Webhook URLは正しくコピーされているか
  • [ ] 応答メッセージはオフになっているか
  • [ ] Webhook検証で成功と表示されたか

応用例

応用1: 予約受付システム

スプレッドシートと連携すれば、空き状況の確認から予約登録まで自動化できます。


// 予約をスプレッドシートに登録する例
function addReservation(date, time, name) {
  const sheet = SpreadsheetApp.openById('スプレッドシートID').getSheetByName('予約');
  sheet.appendRow([new Date(), date, time, name, '未確定']);
}

応用2: FAQ自動回答

スプレッドシートにFAQを登録し、キーワードマッチングで回答を返します。


// FAQをスプレッドシートから取得する例
function getFAQAnswer(question) {
  const sheet = SpreadsheetApp.openById('スプレッドシートID').getSheetByName('FAQ');
  const data = sheet.getDataRange().getValues();

  for (let i = 1; i < data.length; i++) {
    if (question.includes(data[i][0])) {  // キーワード列
      return data[i][1];  // 回答列
    }
  }
  return null;
}

応用3: ChatGPT連携

GAS×ChatGPT連携と組み合わせれば、自然な会話ができるBotに進化します。


まとめ・次のステップ

この記事で学んだこと

  • LINE Developersでチャネルを作成する方法
  • GASでWebhookを受け取り、返信する方法
  • キーワードに応じた自動応答の実装

次のステップ

  • キーワードをカスタマイズ: あなたのビジネスに合わせた返信を設定
  • スプレッドシート連携: 予約管理やFAQを動的に
  • リッチメニュー設置: ボタン操作でユーザー体験向上
  • ChatGPT連携: より自然な会話を実現

GAS×LINE Botは、一度構築すれば月額0円で24時間働いてくれる優秀な営業マンです。ぜひ、あなたのビジネスに合わせてカスタマイズしてみてください。


よくある質問(FAQ)

Q: 無料で使い続けられますか?

A: はい、GASとLINE公式アカウント(コミュニケーションプラン)はどちらも無料です。ただし、LINEの月間メッセージ送信数が200通を超える場合は有料プランへの移行が必要です。

Q: 複数のLINE公式アカウントで使えますか?

A: はい、チャネルアクセストークンを変更すれば、異なるアカウントにも対応できます。

Q: エラーが出た場合はどうすれば?

A: GASの「実行数」メニューからログを確認できます。エラー内容を元にトラブルシューティングしてください。


最終更新: 2026-02-01

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次