LINEボットとGoogle Apps Scriptで実現!クイックリプライの設定方法ガイド
LINE Botでクイックリプライを設定する準備
LINE Botでクイックリプライを使うには、まず基本的な設定が必要です。LINE Developersでアカウントを作成し、channel secretやchannel access tokenを取得する必要があります。
LINE Developersでのセットアップ
まずはLINE Developersにアクセスし、新しいチャネルを作成します。その後、以下の情報を取得してください。
- Channel Secret
- Channel Access Token
これらの情報を使って、GASでLINE APIを使用できるように設定を行います。
GASでクイックリプライを実装する基本構造
GASを使ってLINE Botにクイックリプライを設定するための基本構造を見てみましょう。
GASスクリプトの記述
GASでLINE Botを動かすためのスクリプトを書いていきます。まずは、Webhookでメッセージを受け取るためのWebアプリケーションを作成しましょう。
function doPost(e) {
var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
var headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + 'YOUR_CHANNEL_ACCESS_TOKEN'
};
var postData = {
'replyToken': replyToken,
'messages': [
{
'type': 'text',
'text': 'こちらがクイックリプライです',
'quickReply': {
'items': [
{
'type': 'action',
'action': {
'type': 'message',
'label': '選択肢1',
'text': '選択肢1'
}
},
{
'type': 'action',
'action': {
'type': 'message',
'label': '選択肢2',
'text': '選択肢2'
}
}
]
}
}
]
};
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(postData)
});
}
このスクリプトでは、まずLINEから受け取ったメッセージを解析し、返信トークン(replyToken)を取得します。
その後、LINEのクイックリプライメッセージを指定し、選択肢を表示する設定を行います。
GASデプロイとLINE Bot連携のポイント
GASでスクリプトを書き終わったら、次は実際にデプロイし、LINE Botと連携させる必要があります。
GASでのデプロイ手順
GASのスクリプトを公開するためには、以下の手順を実行します。
- GASのメニューから「デプロイ」->「新しいデプロイ」を選択します。
- デプロイタイプを「ウェブアプリ」に設定し、アクセスを「全員(匿名)」に設定します。
- デプロイするとURLが発行されます。これをLINE DevelopersのWebhook URLに設定します。
練習問題
GASでLINE Botにクイックリプライを設定する際に、クイックリプライの選択肢を増やしたい場合、どの部分を変更すれば良いでしょうか?具体的なコード例を示してください。
解答・解説
function doPost(e) {
var replyToken = JSON.parse(e.postData.contents).events[0].replyToken;
var userMessage = JSON.parse(e.postData.contents).events[0].message.text;
var headers = {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + 'YOUR_CHANNEL_ACCESS_TOKEN'
};
// クイックリプライの選択肢を追加
var postData = {
'replyToken': replyToken,
'messages': [
{
'type': 'text',
'text': 'こちらがクイックリプライです',
'quickReply': {
'items': [
{
'type': 'action',
'action': {
'type': 'message',
'label': '選択肢1',
'text': '選択肢1'
}
},
{
'type': 'action',
'action': {
'type': 'message',
'label': '選択肢2',
'text': '選択肢2'
}
},
// 新しい選択肢を追加
{
'type': 'action',
'action': {
'type': 'message',
'label': '選択肢3',
'text': '選択肢3'
}
}
]
}
}
]
};
UrlFetchApp.fetch('https://api.line.me/v2/bot/message/reply', {
'method': 'post',
'headers': headers,
'payload': JSON.stringify(postData)
});
}
クイックリプライの選択肢を増やしたい場合、quickReply.items配列に新しい選択肢オブジェクトを追加します。それにより、利用者に表示される選択肢が増えます。