如何解决这个使用 API 的 Alexa 意图有什么错误?
我正在做一个简单的项目,旨在比较两个不同国家之间的冠状病毒病例。用户的输入将类似于“美国确诊病例是否比法国高?”并且 Intent 将根据从 API 获得的数据是否与用户所做的假设相符,输出是或否。问题是我是编码新手,我看不到导致错误的问题,该错误会阻止整个意图发挥作用。意图代码如下:
canHandle(handlerInput) {
return Alexa.getRequestType(handlerInput.requestEnvelope) === 'IntentRequest'
&& Alexa.getIntentName(handlerInput.requestEnvelope) === 'GetTaskThreeIntent';
},async handle(handlerInput) {
var country_one = handlerInput.requestEnvelope.request.intent.slot.c_one.value
var country_two = handlerInput.requestEnvelope.request.intent.slot.c_two.value
var compare = handlerInput.requestEnvelope.request.intent.slot.compare.value
var criteria = handlerInput.requestEnvelope.request.intent.slot.criteria.value
var URLc1 = "https://api.covid19api.com/total/country/" + country_one
var URLc2 = "https://api.covid19api.com/total/country/" + country_two
var x,y,a,datac1,datac2,i,j
var response1 = await getHttps(URLc1)
var data1 = JSON.parse(response1)
var response2 = await getHttps(URLc2)
var data2 = JSON.parse(response2)
var n1 = data1.length
var n2 = data2.length
var speakOutput
for (i = 0; i < n1; i++) {
if (i === n1){
if (criteria === "death cases"){
datac1 = data1[n1].Deaths
}
else if (criteria === "death rates"){
datac1 = (data1[n1].Deaths/data1[n1].Confirmed) * 100
}
else{
datac1 = data1[n1].Confirmed
}
}
}
for (j = 0; j < n1; j++) {
if (j === n2){
if (criteria === "death cases"){
datac2 = data2[n2].Deaths
}
else if (criteria === "death rates"){
datac2 = (data2[n2].Deaths/data2[n2].Confirmed) * 100
}
else{
datac2 = data2[n2].Confirmed
}
}
}
if (compare === "higher"){
x = 1
}
else{
x = 0
}
if (datac1 > datac2){
y = 1
a = "higher"
}
else {
y = 0
a = "lower"
}
if (x === y){
speakOutput = "Your assumption was correct. The " + criteria + " in " + country_one + " is " + data1 + " which is " + a + " than in " + country_two + " which has " + data2 + criteria
}
else {
speakOutput = "Your assumption was not correct. The " + criteria + " in " + country_one + " is " + data1 + " which is " + a + " than in " + country_two + " which has " + data2 + criteria
}
return handlerInput.responseBuilder
.speak(speakOutput)
//.reprompt('add a reprompt if you want to keep the session open for the user to respond')
.getResponse();
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。