以编程方式将自定义内容插入到Intent Confirmation消息中?

问题描述 投票:1回答:1

我正在使用AWS ASK SDK for Node.js V2来构建Alexa技能,我想知道是否可以以编程方式生成或更新'意图确认'的'Alexa Prompt'。

挑战在于我们正在寻找价格,目标是在要求之前将价格注入“意图确认”消息。

我正在考虑试图“谴责”用户,并在我付出代价后强行重新开始,但这感觉很脏:

module.exports = {
    canHandle(handlerInput) {
        return (
            handlerInput.requestEnvelope.request.type === 'IntentRequest' &&
            handlerInput.requestEnvelope.request.intent.name ===
                'HelloWorldIntent'
        );
    },
    async handle(handlerInput) {
        let speechText;
        let repromptText;
        
        //perform web request to get price
        //then dynamically update the intent confirmation response prompt to include price, 
        //before asking intent confirmation prompt?
        
        return handlerInput.responseBuilder
            .speak(speechText)
            .getResponse();
    }
}

文档缺乏至少可以说。

javascript amazon-web-services alexa alexa-skills-kit alexa-skill
1个回答
3
投票

您可以使用Dialog.ConfirmIntent指令向Alexa发送命令以确认用户为意图提供的所有信息。您还可以提供一个提示,要求用户在响应中的OutputSpeech对象中进行确认。

在ask-nodejs-sdk v2中,ConfirmIntent指令可以通过addConfirmIntentDirective()发送。

例如:

response = handlerInput.responseBuilder
  .speak('The price is 10 dollars, shall I confirm?')
  .reprompt('shall I confirm?')
  .addConfirmIntentDirective()
  .getResponse();

查看this答案了解更多信息。 更多关于Dialog指令here。 看看documentationResponseBuilder

© www.soinside.com 2019 - 2024. All rights reserved.