質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

解決済

1回答

1658閲覧

LINEでのbot作成で、GASで下に記述した項目しか反映されない

engawachan

総合スコア0

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2020/07/03 01:56

前提・実現したいこと

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

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

応答メッセージ部分のifを上のカルーセルと同じ{}の中にいれるだけでした。
お騒がせしました!

投稿2020/07/03 06:21

engawachan

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問