Alexa 技能给出"请求技能的响应有问题",我们可以将此消息更改为自定义消息吗?



我是Alexa技能的新手,我正在开发Alexa技巧,在我的情况下,有时我不想等待http响应返回,如果我的lambda由于http响应延迟而超时,我可以提供一条自定义消息来代替"请求的技能的响应有问题"。我的代码是:

'ProtectArmIntent': function() {
if(checkAccessToken(this.event.session.user.accessToken)){
var data = {
mode: HUB_MODE.ARM,
regId: "null"
}
callAPI("post", API_COMMANDS.HUB_MODE, data, this.event.session.user.accessToken)
.then((body) => {
if(body.response.status === "SUCCESS"){
this.emit(':tell', messages.ARM.SUCCESSFUL);
} else {
this.emit(':tell', messages.ARM.FAILED);
}
})
.catch((err) => {
this.emit('SessionEndedRequest');
//errorHandler.call(this, err, messages.ARM.FAILED);
});
} else {
this.emit('LinkAccount');
}
}, 

和alexa模拟器请求:

"请求":{"type":"SessionEndedRequest","requestId":"amzn1.echo-api.request.67e1612e-f8a4-43f5-b28-175ba7d7941f","时间戳":"2019-11-13T21:13:11Z","区域设置":"en-GB","原因":"错误","错误":{"type":"INVALID_RESPONSE","message":"将请求发送给技能时发生异常。"}}

我知道问题是因为lambda超时是HTTP响应中的延迟,所以我可以给出一些自定义消息,比如Your命令被接受,它将在一段时间内执行。

请帮忙,提前谢谢

制作自己的计时器功能可能会有所帮助。将计时器设置为低于lambda超时值,并在计时器结束时发送响应,这当然不会导致lambda超时错误。这个答案可能会有所帮助。

最新更新