Предположим, вы хотите создать математическую игру-викторину, в которой Alexa будет задавать вам случайные вопросы по математике, и вы должны дать правильный ответ.Игра должна продолжаться до тех пор, пока пользователь не попросит специально выйти.
Создайте AnswerIntent
, который срабатывает, когда пользователь говорит ответ.Наши ответы являются числами, поэтому создайте это намерение с помощью слота AMAZON.NUMBER
, который позволит вам захватить произнесенные цифры.(Выберите свой слот в соответствии с ответами на ваши вопросы.)
Пример высказывания для AnswerIntent
:
{number}
the answer is {number}
is it {number}
{number} -> AMAZON.NUMBER slot
Поэтому каждый раз, когда пользователь говорит ответ на ваш вопрос, вы будете получатьPOST
запрос в вашем бэкэнде с запущенным намерением (в данном случае AnswerIntent
), слотом и его значением.Затем:
- Подтвердите ответ.
- Обновите оценку (если вообще у вашего варианта использования есть оценка)
- Создайте следующий вопрос.
- Предоставьте ответ со следующим вопросом.
Вы получите запрос только на своем бэкэнде, когда есть взаимодействие с пользователем .Поэтому убедитесь, что когда пользователь говорит ответ, в вашем ответе будет следующий вопрос .Таким образом, пользователь может продолжать отвечать на вопросы, не задавая вопрос в явном виде.
Пример взаимодействия:
User : Alexa, open math quiz
Alexa: Welcome to math quiz. Here is your first question.
What is the sum of five and four.
[you will receive the launch request and your response has the first question]
User : Nine
[you will receive AnswerIntent request, with number slot having value 9.
Validate the answer and generate the next question]
Alexa: Correct!. Here is your next question.
What is the product of ten and five.
User : Twenty.
Alexa: Wrong, the right answer is fifty.
here is your next question.
What is sum of two and six.
User : Stop
[AMAZON.StopIntent is triggered and you can now end the game.]
Alexa: Bye.
Используйте sessionAttributes
для хранения некоторой информации о вопросе или его ответе, чтобыВы можете легко проверить это на сервере, когда получите ответ от пользователя.