Навык Space Fact имеет множество фактов. Поэтому все, что вам нужно сделать, это выбрать один из массива, когда пользователь говорит «Далее» или «Еще один».
Использовать AMAZON.NextIntent
Чтобы захватить высказывание пользователя "Next" , используйте предопределенный AMAZON.NextIntent
в вашей модели взаимодействия. Поэтому, когда пользователи говорят «Далее» , это намерение будет отображено. Также добавьте "еще один" в качестве дополнительного высказывания для этого намерения.
Теперь в своем бэкэнд-коде добавьте обработчик AMAZON.NextIntent
и для его ответа получите еще один факт из массива фактов. (Добавьте некоторую логику, чтобы навык не возвращал случайно тот же факт снова. Вы можете использовать sessionAttributes
для отслеживания прочитанных индексов фактов)
Примечание: Для того, чтобы Alexa ожидала ввода пользователя после того, как он сообщит о первом факте, вам нужно сохранить сеанс в живых. Насколько я помню, скилл заканчивает сессию после того, как говорит первый факт.
Сеанс поддерживается активным на основе параметра shouldEndSession
в ответе. Для любого запроса, если он не предоставлен, shouldEndSession
по умолчанию true
. В вашем случае для ответа на LaunchRequest
этот параметр shouldEndSession
должен иметь значение false
. Только когда сеанс остается открытым, и пользователи могут сказать «следующий» .
Прочитайте этот ответ , чтобы узнать больше о том, как сохранить сеанс с помощью ask-nodejs-sdk.