LINEチャットボットをGASで作成する手順完全ガイド

LINEのチャットボットってどうやって作るのかな?GASを使えば、簡単に作れるって聞いたんだけど…
猫男
猫男
catman
catman
よし、catmanがLINEチャットボットをGASで作る方法について詳しく教えてやろう!まずは基本から始めよう!

LINEチャットボットとは?

LINEチャットボットは、LINEアプリを通じて自動的にユーザーと対話するプログラムです。メッセージを送り合うことができ、様々なサービスを提供できます。

LINEチャットボットの用途

LINEチャットボットは、マーケティング、カスタマーサポート、通知配信など、ビジネスの多くの場面で使用されます。

例えば、定型メッセージの自動返信や、顧客からの問い合わせに迅速に対応するために利用されることが多いです。

GASでチャットボットを作成するメリット

Google Apps Script(GAS)は、手軽にウェブサービスと連携できるため、LINEチャットボットを作成する際に非常に便利です。

GASを使用すれば、スプレッドシートやカレンダー、Gmailとの連携も容易に行えます。

 

GASとLINEがどうつながるんだろう?まったくイメージがわかないけど、次に進めてもいい?
猫男
猫男
catman
catman
大丈夫さ。GASでLINEチャットボットを作る手順をわかりやすく教えてやる、安心しなさい!

LINEデベロッパーコンソールでの設定

LINEチャットボットを作成するためには、まずLINE Developersコンソールでチャンネルを作成して設定する必要があります。

1. チャンネルの作成

LINE Developersコンソールにログインし、新しいMessaging APIチャネルを作成します。

次に、チャネル名や説明などの基本情報を入力しましょう。

2. Webhook URLの設定

Webhook接続設定の中で、後ほど取得するGASのデプロイURLを設定します。これがLINEとGASの接続を可能にします。

 

Webhookって聞いたことはあるけど、どう設定するのかな?
猫男
猫男
catman
catman
心配はいらない。後でGAS側を設定する時にもう一度詳しく教えるさ。

GASでLINEチャットボットを設定する

次に、GASを使用してLINEチャットボットの処理を設定します。

1. Google Apps Scriptプロジェクトを作成

Googleドライブに移動し、新しいGASプロジェクトを作成します。

スクリプトエディタに入ったら、LINEチャットボット用のスクリプトを記述します。

2. 基本的なスクリプトのセットアップ

とりあえず、LINEからのメッセージを受信するために、Webhookの受信スクリプトを書いてみましょう。


function doPost(e) {
  var json = JSON.parse(e.postData.contents);
  var replyToken = json.events[0].replyToken;
  var userMessage = json.events[0].message.text;

  var url = 'https://api.line.me/v2/bot/message/reply';
  var payload = {
    replyToken: replyToken,
    messages: [{
      type: 'text',
      text: 'あなたのメッセージは「' + userMessage + '」だにゃ!'
    }]
  };

  var options = {
    'method': 'post',
    'headers': {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + YOUR_ACCESS_TOKEN
    },
    'payload': JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, options);
}

上記のスクリプトでは、ユーザーから送られたメッセージをそのまま返す簡単なチャットボットの動作を作成しています。

メッセージを受信し、迅速にLINEサーバーに返信を送信する処理を行います。

3. GASのデプロイとWebhook設定

次に、GASのプロジェクトをウェブアプリケーションとしてデプロイします。デプロイされたURLをLINEのWebhook URL設定に使用します。

 

これでLINEチャットボットが動くのかな?ちょっとワクワクする!
猫男
猫男
catman
catman
大体の流れはこれで掴めたはずさ。設定が終わったらテストしてみるといい!

練習問題

  1. LINEチャットボットで、ユーザーからの「こんにちは」に対して「こんにちは、世界!」と返答するスクリプトを書いてください。
  2. GASを使ってチャットボットが送受信する情報をスプレッドシートに記録する機能を追加してください。

解答・解説

 
 


function doPost(e) {
  var json = JSON.parse(e.postData.contents);
  var replyToken = json.events[0].replyToken;
  var userMessage = json.events[0].message.text;

  var replyText = userMessage === 'こんにちは' ? 'こんにちは、世界!' : 'メッセージを受け取りました:' + userMessage;

  var url = 'https://api.line.me/v2/bot/message/reply';
  var payload = {
    replyToken: replyToken,
    messages: [{
      type: 'text',
      text: replyText
    }]
  };

  var options = {
    'method': 'post',
    'headers': {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer ' + YOUR_ACCESS_TOKEN
    },
    'payload': JSON.stringify(payload)
  };

  UrlFetchApp.fetch(url, options);

  // スプレッドシートにメッセージと返信を記録
  var sheet = SpreadsheetApp.openById('YOUR_SPREADSHEET_ID').getActiveSheet();
  sheet.appendRow([new Date(), userMessage, replyText]);
}

このスクリプトでは、「こんにちは」というメッセージに対して指定の返答を行い、またユーザーのメッセージと返信内容をスプレッドシートに記録する機能を追加しています。

スプレッドシートのIDを指定し、受け取ったメッセージと返信を逐次的に記録します。これにより、やりとりを簡単に追跡できます。

EARTHPG 自動化研究所

「その作業、仕組みにできます。」

Google Apps Script、Python、スプレッドシート自動化、WordPress開発、 API連携、AI活用まで対応。 小さな自動化から業務全体の設計まで、研究所が支援します。