javascriptnode.jsalexa-skills-kitamazon-echojovo-framework

Alexa how to implement intent confirmation?


I am having trouble with implementing a confirmation for an intent. The documentation is really vague. I am currently using jovo framework in writing my code with nodeJs which saved me a ton of time. This is an example of how I want to confirm the user's request:
User: Alexa, play NRJ radio
Alexa: Do you want me to play NRJ radio?
User: Yes
Alexa: I will play NRJ radio
Alexa plays NRJ radio
I have enabled intent confirmation in the Alexa console and I thought that was enough. But, it isn't. And I need to know what to do exactly to make this work. Thank you.
I have read the documentation multiple times and I couldn't understand how I should use dialog.delegate to achieve my goal and whether I should modify the JSON file in the console in one way or another.
This is really confusing so all help is welcome. Thank you :)


Solution

  • We usually recommend using states for things like this. For example, you could add a state PlayConfirmationState to your question with followUpState and then in this state listen for the AMAZON.YesIntent.

    This is how it could look like in your 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)
    
    });
    

    For more information, take a look at the following resources: