如何使用Alexa Skills中的下一个功能

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

我不具备锻炼Alexa技能的能力,我正尝试建立一种读取您的wifi密码的技能。将来,我想使它动态化,以便有人可以添加自己的wifi密码并将其读回。现在,我的密码已经过硬编码。我想提示alexa要求用户提供特定的密码短语(现在我也对此进行了硬编码)。如果密码正确,请读出存储的wifi密码。问题是我不确定如何进入第二个功能。这是用户和Alexa之间的对话流程。

用户:“ Alexa,我的WiFi密码是什么?”

Alexa:“您的密码是什么?”

用户:“ bravo。”

如果密码正确,则>Alexa:“谢谢。您的wifi密码是P A S S W O R D。”

如果密码不正确

Alexa:“密码短语错误。您的密码短语是什么?”

这是我的GetPassword功能。

const GetPassword = {
    canHandle(handlerInput) {
        return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest';
    },
    handle(handlerInput) {
        const speakOutput = "What is the passphrase?"
        return handlerInput.responseBuilder
            .speak(speakOutput)
            .reprompt(speakOutput)
            .getResponse();
    }
};

这是我的CheckPhrase函数。

const CheckPhrase = {
    canHandle(handlerInput) {
        return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest';
    },
    handle(handlerInput) {
        const speakOutput = "Your password is, YOUR_WIFI_PASSWORD"
        return handlerInput.responseBuilder
            .speak(speakOutput)
            .reprompt(speakOutput)
            .getResponse();
    }
};

我的意图是在运行第一个功能后用户说出/键入短语时执行CheckPhrase。我可以很好地完成第一个功能,然后提示我输入密码。但是,当我输入密码时,它只会重复上一个提示。我曾尝试使用if / else语句来验证用户的输入,但是我不确定如何访问正确的值。我还尝试在刚刚执行回读密码的CheckPhraseresponseBuilder中调用GetPassword。我也尝试过使用reprompt,但我相信如果技能在一定时间后仍未收到用户输入,那会更好。

我很抱歉,如果这些只是亚马逊技能开发的基本方面,但我已经阅读了文档,也许我没有使用正确的措词来搜索我所寻找的内容,但一直没有用。我已经看到了一些关于SO的帖子,但是我找不到与输入验证或使用辅助功能有关的任何问题。

我的代码当前托管在Alexa控制台中,而不是Lambda托管(我不确定这是否相关)。而且我目前不使用任何插槽。

我不具备锻炼Alexa技能的能力,并且我正尝试建立一种读取您的wifi密码的技能。将来,我想使它动态化,以便有人可以添加自己的wifi密码,然后...

node.js alexa alexa-skills-kit alexa-skill
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.