Alexa (Lambda) не возвращает StopIntent после произнесения «выхода» - PullRequest
0 голосов
/ 25 сентября 2018

Короче говоря ...

  1. Я начал простое умение из плана Фактов "космические факты"

  2. Создан const ->

    const WELCOME_MESSAGE = "Welcome! You want a space fact?";

  3. И отделил LaunchRequest от IntentRequest (таким образом, пользователь может сказать «факты открытого пространства» или сказать «факты открытого пространства и сказать факт»)

    'LaunchRequest': function () {
    this.emit(':ask', WELCOME_MESSAGE); }
    'IntentRequest': function () {
    this.emit('GetNewFactIntent'); }
    

* Теперь, если я начинаю умение только с "космических навыков" ... я получаю приветственное сообщение и "shouldEndSession": false как положено,

НО, если я скажу «выйти» в этот момент, я получу:

«Возникла проблема с ответом запрошенного навыка»

Мой JSON INPUT показывает ожидаемый «SessionEndedRequest»

    "request": {
    "type": "SessionEndedRequest",
    "requestId": "amzn1.echo-api.request.c6ea8178-3cdb-4119-ae73-e8ea86ebba6d",
    "timestamp": "2018-09-25T01:14:05Z",
    "locale": "en-US",
    "reason": "USER_INITIATED"
}

Но я получаю "нулевой" вывод JSON ..

- Я провел некоторое исследование и обнаружил, что https://github.com/alexa/skill-sample-nodejs-fact/issues/3

- Я также попробовал«Необработанный» вот так ... но все равно не повезло

    'Unhandled': function () {
    this.emit('AMAZON.StopIntent');  },

Из-за этого мой навык был отвергнут сегодня, поэтому я хотел бы исправить его и загрузить снова.

1 Ответ

0 голосов
/ 28 сентября 2018

Привет еще раз и спасибо за ваше время!

После перечитывания отзыва о сертификации, полученного по электронной почте, проблема заключалась в том, что
"не возвращает StopIntent после слов" стоп "" вместо того, чтобы сказать "exit "

Также из того, что я теперь понимаю, слова" stop "," cancel "," exit "и" quit "имеют свои собственные предопределенные функции, из которых:

- когда пользовательговорит «стоп», он должен обратиться к «StopIntent»

- когда пользователь говорит «отменить», он должен обратиться к «CancelIntent»

- после произнесения «exit» или «quit»,он должен USER_INITIATED принудительно закрываться с помощью «SessionEndedRequest» и не получать ответа.

Следовательно, эти слова не должны включаться в примеры высказываний внутри StopIntent, CancelIntent, HelpIntent или NavigateHomeIntent.Кроме того, если какое-либо из предыдущих утверждений не работает, вы не сможете пройти сертификацию.

После некоторого анализа моя проблема была не внутри лямбды, а из моих умений.Причиной проблемы было добавление слов «выход» и «остановка» внутри StopIntent AND CancelIntent.

Из того, что я тестировал, нет разницы, если вы включаете или не включаете слово «стоп» в StopIntent, но это вызывает нежелательную реакцию, и нет никакого ответа, если вы включаете слово в StopIntent AND CancelIntent.

Теперь я повторно отправил свой навык и, надеюсь, он скоро будет загружен.Я пишу это здесь на случай, если любой новичок, как я, застрянет в той же ситуации.Еще раз спасибо и счастливого кодирования!

...