AWSコンソールのテストボットで、各スロットへの発言と応答を入力することができ、AWS Lexがそれをピックアップします。しかしFacebook Messengerでは、レスポンスカードから対応するテキストと値を設定しているので、レスポンスカードからボタンをクリックしてもLexには届かないようです。AWS LexはfacebookのresponseCardボタンからユーザーの応答を受け取らない
私は動的応答カードを作成するためにラムダ関数を使用し、それはこのようなものになります。
{
"dialogAction": {
"type": "ElicitSlot",
"intentName": "ShopIntent",
"slots": {
"product": null,
"category": null
},
"slotToElicit": "category",
"message": {
"contentType": "PlainText",
"content": "Choose a category."
},
"responseCard": {
"contentType": "application/vnd.amazonaws.card.generic",
"version": 1,
"genericAttachments": [
{
"title": "New",
"subTitle": "All the new things!",
"buttons": [{
"text": "New",
"value": "1234567890"
}]
}, {
"title": "Shurts",
"subTitle": "A collection of shirts!",
"buttons": [{
"text": "Shurts",
"value": "1234567891"
}]
}, {
"title": "Shuus",
"subTitle": "A collection of shoes!",
"buttons": [{
"text": "Shuus",
"value": "1234567892"
}]
}
]
}
}
}
をこれは、Facebookの中で正しくレンダリングされます。しかし、ボタンをクリックすると何も起こりません。入力のインジケータが数秒間表示されます(リクエストにかかる時間よりもはるかに長い - これは何らかのエラーが表示されているのだろうか?)。 CloudWatchログにはエントリも作成されません。私はドキュメントをチェックしたし、自分の知る限り、responseCard
のフォーマットは正しいと信じています。
この問題のデバッグ方法はわかりません。他の誰かがこれを経験しましたか?