Q&A

replyMessageへカード形式を設定したい

確認(実現可否)したいこと

AWS(AmazonLex)のボットより返却されたカードメッセージをLineへ 返信(replyMessage)することは可能でしょうか?

テキストの場合は、下記のソースコードで実現することができましたが、 カードメッセージ(ボタン選択形式)を返信したいと考えております。

可能であれば、返信時のtype等に何を設定すればよいかご教示願います。

テキストメッセージを返答の場合 ========================================= const client = new Line.Client({channelAccessToken: channelAccessToken}); 省略 ↓AmazonLexからの返答がテキストの場合 text = [{ type: 'text', text: result.message }]; 省略 await client.replyMessage(messages.events[i].replyToken, text); ========================================

参考までにAmazonLexからのカードメッセージ返答内容を載せておきます。 *************************** responseCard: { version: '1', contentType: 'application/vnd.amazonaws.card.generic', genericAttachments: [ [Object] ] } ***************************

LineDev初学者のため、内容等がうまく伝えれているかどうかわかりませんが、 よろしくお願いいたします。

以上

  • 0
  • 3
  • 1249
  • twitter facebook

解決へ近づいているようで良かったです。

4つ以上のボタンを設定したい場合は、Flex Messageの利用を検討してみてください。 https://developers.line.biz/ja/docs/messaging-api/message-types/#flex-messages

  • 0

Shoya Shiraki様

ご回答ありがとうございます。 何とかカードを作成できそうです。

重ねて質問申し訳ありませんが、カードのボタンの最大数は4つ以上はできない 仕様なのでしょうか?

  • 0

AmazonLexから受け取ったデータを LINE Messaging APIのメッセージオブジェクト形式のjsonに変換し replyMessageの引数として渡すことで可能になります。

jsonの詳細はリファレンスを確認してください。 https://developers.line.biz/ja/reference/messaging-api/#carousel

  • 0
Are you sure? question.vm