##はじめに
プログラミングの入門にLINE BOTをたくさん作れば勉強になるかなと思って、シンプルな応答のプログラムは、基本的に記載内容はほぼ一緒だから定形を作っておけば、一部内容をいじるだけで作れるかなと、スニペットを作ってみました。
##使い方
GoogleAppsScriptに下記コードをコピペするだけで、テンプレートが返されるコードです。あくまでテンプレートなので、返信内容は任意で変更してください。
LINE_ACCESS_TOKEN
部分は、任意のトークン設定となりますので、取得したトークンに書き換えてください。
var LINE_ACCESS_TOKEN = PROPERTIES.getProperty('LINE_ACCESS_TOKEN');
##コード
line_bot_gas.js
var LINE_ACCESS_TOKEN = PROPERTIES.getProperty('LINE_ACCESS_TOKEN');
var LINE_END_POINT = "https://api.line.me/v2/bot/message/reply";
var reply_token;
//ラインからGASへのリクエスト時の処理
function doPost(e){
var json = JSON.parse(e.postData.contents); //送られた内容をJSONから変換
reply_token = json.events[0].replyToken; //送られたメッセのトークンを取得
response_message(); //下記関数を実行 応答メッセージ
}
//応答詳細
function response_message(){
//応答の定形 LINEリファレンスのまま
var messages = [{
"type": "template",
"altText": "This is a buttons template",
"template": {
"type": "buttons",
"thumbnailImageUrl": "https://example.com/bot/images/image.jpg",
"imageAspectRatio": "rectangle",
"imageSize": "cover",
"imageBackgroundColor": "#FFFFFF",
"title": "Menu",
"text": "Please select",
"defaultAction": {
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
},
"actions": [
{
"type": "postback",
"label": "Buy",
"data": "action=buy&itemid=123"
},
{
"type": "postback",
"label": "Add to cart",
"data": "action=add&itemid=123"
},
{
"type": "uri",
"label": "View detail",
"uri": "http://example.com/page/123"
}
]
}
}]; //ここまで
//応答処理
UrlFetchApp.fetch(LINE_END_POINT,{
"headers":{
"Content-Type" : "application/json; charset=UTF-8", //JSONの場合
//Authorizationを設定する場合
"Authorization" : "Bearer " + LINE_ACCESS_TOKEN,
},
"method" : "post",
"payload" : JSON.stringify({ //オブジェクトをJSONに変換
"replyToken": reply_token, //LINEでBotに送られたメッセのtoken,変数指定しておく
"messages": messages //上記messagesは長いので変数化しておく
})
});
}
##アレンジ方法
上の画像を見てわかるように、
画像、タイトル、テキスト、Buyボタン、Add To Cartボタン、View Detailボタンの準に配置されています。コードを読めば対象部分がどこかわかると思うので、そのボタンのリンク先や記載内容、掲載画像を変更したら、最低限の使い方がわかるかなと思います。
ぜひお試しくださいませ〜
その他、もっとシンプルな書き方などあるよ!っていう場合は教えてくださいませ!