我不具备锻炼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语句来验证用户的输入,但是我不确定如何访问正确的值。我还尝试在刚刚执行回读密码的CheckPhrase
的responseBuilder
中调用GetPassword
。我也尝试过使用reprompt
,但我相信如果技能在一定时间后仍未收到用户输入,那会更好。
我很抱歉,如果这些只是亚马逊技能开发的基本方面,但我已经阅读了文档,也许我没有使用正确的措词来搜索我所寻找的内容,但一直没有用。我已经看到了一些关于SO的帖子,但是我找不到与输入验证或使用辅助功能有关的任何问题。
我的代码当前托管在Alexa控制台中,而不是Lambda托管(我不确定这是否相关)。而且我目前不使用任何插槽。
我不具备锻炼Alexa技能的能力,并且我正尝试建立一种读取您的wifi密码的技能。将来,我想使它动态化,以便有人可以添加自己的wifi密码,然后...