【发布时间】:2020-03-09 18:26:26
【问题描述】:
我是 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-ab28-175ba7d7941f”, "时间戳": "2019-11-13T21:13:11Z", “语言环境”:“en-GB”, “原因”:“错误”, “错误”: { "type": "INVALID_RESPONSE", "message": "向技能发送请求时发生异常。" } }
我知道这个问题是因为 lambda 超时作为 HTTP 响应的延迟,所以我可以给出一些自定义消息,比如你的命令被接受,它将在一段时间内执行。
请帮忙,在此先感谢
【问题讨论】:
标签: alexa session-timeout alexa-skill