LINEチャットボットをGASで作成する手順完全ガイド
LINEチャットボットとは?
LINEチャットボットは、LINEアプリを通じて自動的にユーザーと対話するプログラムです。メッセージを送り合うことができ、様々なサービスを提供できます。
LINEチャットボットの用途
LINEチャットボットは、マーケティング、カスタマーサポート、通知配信など、ビジネスの多くの場面で使用されます。
例えば、定型メッセージの自動返信や、顧客からの問い合わせに迅速に対応するために利用されることが多いです。
GASでチャットボットを作成するメリット
Google Apps Script(GAS)は、手軽にウェブサービスと連携できるため、LINEチャットボットを作成する際に非常に便利です。
GASを使用すれば、スプレッドシートやカレンダー、Gmailとの連携も容易に行えます。
LINEデベロッパーコンソールでの設定
LINEチャットボットを作成するためには、まずLINE Developersコンソールでチャンネルを作成して設定する必要があります。
1. チャンネルの作成
LINE Developersコンソールにログインし、新しいMessaging APIチャネルを作成します。
次に、チャネル名や説明などの基本情報を入力しましょう。
2. Webhook URLの設定
Webhook接続設定の中で、後ほど取得するGASのデプロイURLを設定します。これがLINEと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チャットボットで、ユーザーからの「こんにちは」に対して「こんにちは、世界!」と返答するスクリプトを書いてください。
- 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を指定し、受け取ったメッセージと返信を逐次的に記録します。これにより、やりとりを簡単に追跡できます。