我正在尝试使用 npm 包"alexa-app"构建一个 alexa 应用程序。我写了以下意图。
alexaApp.intent("MyIntent", {
"slots": {},
"utterances": ["Tell me a quote"]
},
function(request, response) {
req('http://exampleUrl.com', function (error, res, body) {
if (!error && res.statusCode == 200) {
var obj = JSON.parse(body);
var message = obj.value;
response.say(message);
}
});
});
当我测试我的技能时,输出语音丢失,服务响应如下所示。从 url 获取数据是有效的。
{
"version": "1.0",
"response": {
"shouldEndSession": true
},
"sessionAttributes": {}
}
如果我尝试在外部函数中使用 response.say((,我会得到这样的正确服务响应,但当然没有消息。任何人都可以帮助我,用我的消息返回正确的服务响应吗?
{
"version": "1.0",
"response": {
"outputSpeech": {
"type": "SSML",
"ssml": "<speak></speak>"
},
"shouldEndSession": true
},
"sessionAttributes": {}
}
你应该添加
response.send();
后
response.say(message);
通过使用 Promise 解决了这个问题。