Alexa, как реализовать подтверждение намерений?

У меня возникли проблемы с реализацией подтверждения намерения. Документация действительно расплывчата. В настоящее время я использую инфраструктуру jovo для написания своего кода с помощью nodeJs, что сэкономило мне массу времени. Это пример того, как я хочу подтвердить запрос пользователя:
Пользователь: Алекса, включи радио NRJ
Алекса: Включи радио NRJ?
Пользователь: Да
Алекса: Я будет воспроизводить радио NRJ
Alexa воспроизводит радио NRJ
Я включил подтверждение намерений в консоли Alexa и подумал, что этого достаточно. Но это не так. И мне нужно знать, что именно нужно сделать, чтобы это сработало. Спасибо.
Я несколько раз читал документацию и не мог понять, как мне использовать dialog.delegate для достижения моей цели и нужно ли мне так или иначе изменять файл JSON в консоли.
Это действительно сбивает с толку, поэтому любая помощь приветствуется. Спасибо :)


person AG_HIHI    schedule 29.06.2018    source источник


Ответы (1)


Обычно мы рекомендуем использовать состояния для подобных вещей. Например, вы можете добавить состояние PlayConfirmationState к своему вопросу с помощью followUpState, а затем в этом состоянии слушать AMAZON.YesIntent.

Вот как это может выглядеть в вашем app.js:

app.setHandler({
    'LAUNCH': function() {
        this.followUpState('PlayConfirmationState').
            .ask('Do you want me to play NRJ radio?');
    },

    'PlayConfirmationState': {
        'AMAZON.YesIntent': function() {
            this.alexaSkill().audioPlayer().play('url', 'token')
                .tell('I will play NRJ radio');
        },

        // Other intents in the state

    },

    // Other intents outside the state (stateless)

});

Для получения дополнительной информации ознакомьтесь со следующими ресурсами:

person Jan König    schedule 29.06.2018
comment
Спасибо @AhmedGhrib. Не могли бы вы сделать этот ответ общепринятым, чтобы другие увидели, что он тоже работает? - person Jan König; 03.07.2018