前提・実現したいこと
LINEのbotの自動応答(Messaging APIリファレンスで、カルーセルテンプレートと応答メッセージを搭載したいです
・「店舗一覧」に対してカルーセル3個分を表示
・「問い合わせ」に対する自動返信
発生している問題・エラーメッセージ
カルーセルの下に応答メッセージを書いているのですが、応答メッセージの方しか反映されません。
順番を逆にするとカルーセルしか反映されません。
(下に書いたもの1つしか認識されません)
記述にはGoogle Apps Scriptを使用しています。
該当のソースコード
var CHANNEL_ACCESS_TOKEN = "チャンネルトークン"; function doPost(e) { var contents = e.postData.contents; var obj = JSON.parse(contents); var events = obj["events"]; for (var i = 0; i < events.length; i++) { if (events[i].type == "message") { reply_message(events[i]); } else if (events[i].type == "postback") { post_back(events[i]); } } } function post_back(e) { var data = e.postback.data; if (data == "get url") { var replay_text = "https://developers.line.me/en/docs/messaging-api/reference/#image-carousel"; } var postData = { "replyToken": e.replyToken, "messages": [{ "type": "text", "text": replay_text }] }; fetch_data(postData); } function fetch_data(postData) { var options = { "method": "post", "headers": { "Content-Type": "application/json", "Authorization": "Bearer " + CHANNEL_ACCESS_TOKEN }, "payload": JSON.stringify(postData) }; UrlFetchApp.fetch("https://api.line.me/v2/bot/message/reply", options); } function reply_message(e) { var input_text = e.message.text; if (input_text == "店舗一覧") { var postData = { "replyToken": e.replyToken, "messages": [ { "type": "template", "altText": "店舗一覧", "template": { "type": "carousel", "columns": [ { "thumbnailImageUrl": "https://xxx.xxxx.jpg", "imageBackgroundColor": "#FFFFFF", "title": "東京", "text": "新宿区、渋谷区、中野区、世田谷区", "defaultAction": { "type": "uri", "label": "View detail", "uri": "https://xxx.co.jp/" }, "actions": [ { "type": "uri", "label": "23区店舗一覧", "uri": "https://xxx.co.jp/" } ] }, { "thumbnailImageUrl": "https://xxx.xxx.jpg", "imageBackgroundColor": "#000000", "title": "東京23区以外", "text": "調布市、立川市、八王子市", "defaultAction": { "type": "uri", "label": "View detail", "uri": "https://xxx.co.jp/" }, "actions": [ { "type": "uri", "label": "23区以外店舗一覧", "uri": "https://xxx.co.jp/" } ] }, { "thumbnailImageUrl": "https://xxx.xxx.jpg", "imageBackgroundColor": "#000000", "title": "神奈川", "text": "横浜市", "defaultAction": { "type": "uri", "label": "View detail", "uri": "https://xxx.co.jp/" }, "actions": [ { "type": "uri", "label": "神奈川", "uri": "https://xxx.co.jp/" } ] } ], "imageAspectRatio": "rectangle", "imageSize": "cover" } } ] }; }//店舗一覧 fetch_data(postData); } function reply_message(e) { var input_text = e.message.text; if (input_text == "お問い合わせ") { var postData = { "replyToken": e.replyToken, "messages": [ { "type":"text", "text":"お問い合わせはLINEでメッセージをください" } ] }; }//お問い合わせ fetch_data(postData); }
試したこと
初めてこのようなタグを使う初心者ゆえに、いろいろなところからコピーペーストしており、
元のサイトが分からずに申し訳ありません。
下記のところなどを参考にしています。
公式リファレンス
https://developers.line.biz/ja/reference/messaging-api/#carousel
Google Apps Script試行錯誤Blog
https://www.pre-practice.net/2017/10/line-bot_82.html
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。