我是新建立alexa技能,我正在尝试建立一个技能,读取您的wifi密码。在未来,我想使这种动态,以便有人可以添加他们自己的wifi密码,并让他们读回来。现在我的密码是硬编码的。我想提示alexa向用户询问一个特定的密码(目前我也有这个硬编码)。如果密码正确,则读出存储的wifi密码。问题是我不知道如何处理第二个函数。下面是用户和Alexa之间的对话流程。
用户:"Alexa,我的wifi密码是什么?“
亚历克莎:“你的密码是什么?”
用户:“好极了。”
如果正确密码 Alexa:“谢谢。你的wifi密码是P A,S,S,W,O,R。”
如果密码错误 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/ not语句来验证用户的输入,但我不太确定如何访问正确的值。我还尝试在刚刚执行密码读取的responseBuilder of GetPassword中调用GetPassword。我也尝试过使用reprompt,但我相信如果在经过一定时间之后,这种技能还没有收到用户的输入,那就更好了。
如果这些是amazon技能开发的基本方面,我很抱歉,但是我已经阅读了文档,也许我没有使用正确的短语来搜索我正在寻找的东西,但它一直没有效果。我看过几篇文章,但我没有找到任何与输入验证或使用辅助函数有关的问题。
我的代码目前托管在Alexa控制台中,而不是Lambda (我不确定这是否相关)。我现在不使用任何插槽。
发布于 2020-02-03 23:30:57
听起来你需要时间确认。从官方文档中查看此页面:https://developer.amazon.com/en-US/docs/alexa/custom-skills/define-the-dialog-to-collect-and-confirm-required-information.html
Sidenote:当代码按预期工作时,您可能需要使用一些SSML来拼写密码:https://forums.developer.amazon.com/questions/190384/how-configure-alexa-to-confirm-numeric-slots-input.html
https://stackoverflow.com/questions/60028989
复制相似问题