Проблема с получением значения слота Alexa в функции AWS Lamba - PullRequest
0 голосов
/ 31 мая 2018

Я создал намерение в консоли Alexa и соответствующую функцию в AWS Lambda (Javascript), и он работает по большей части, как и ожидалось.Однако я не могу собрать значения слота.

exports.handler = function (event, context, callback) {
  const alexa = Alexa.handler(event, context, callback);
  alexa.APP_ID = APP_ID;

  let config = new Map();
  let character = this.event.request.intent.slots.character.value;
  if (!character)
    character = 'default';

  let handlers = getHandlers(config);
  alexa.registerHandlers(handlers);
  alexa.execute();
};

Ошибка, которую я получаю в тесте Alexa, в основном бесполезна, и я нахожу отладку Alexa довольно болезненной.Я пробовал тестировать непосредственно из Lambda и передавать полезную нагрузку JSON, но я не уверен, что это все равно будет работать.

Может кто-нибудь прокомментировать, будет ли this.event.request.intent.slots.character.value; правильным?Я не вижу этого на официальных страницах AWS, но в примерах других людей.

Наконец, полезный груз из теста Alexa включает в себя:

"request": {
                        "type": "IntentRequest",
                        "requestId": "amzn1.echo-api.request.43808260-5aaa-4837-9f28-4eaccb7c9b3c",
                        "timestamp": "2018-05-31T00:49:08Z",
                        "locale": "en-AU",
                        "intent": {
                            "name": "playSeinfeldQuoteIntent",
                            "confirmationStatus": "NONE",
                            "slots": {
                                "character": {
                                    "name": "character",
                                    "confirmationStatus": "NONE"
                                },
                                "position": {
                                    "name": "position",
                                    "confirmationStatus": "NONE"
                                }
                            }
                        }
                    }

Я бы ожидал, что он будет иметьзначения в слотах включены здесь, но это не так, это может быть проблемой.

Любые предложения будут действительно полезны.

Редактировать: я обнаружил, что захватывает значения ОК, нопервая буква каждой переменной была заглавной.Я думаю, потому что они - имена людей, Алекса использует их заглавные буквы.Я не учел это.

...