【发布时间】:2020-10-21 02:52:59
【问题描述】:
如果我的意图中有以下代码,那么一切都很好......
handle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
const responseBuilder = handlerInput.responseBuilder;
let sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
let say = 'Hello. ';
let slotStatus = '';
let resolvedSlot;
let slotValues = getSlotValues(request.intent.slots);
slotStatus = "I heard you say " + slotValues.query.heardAs;
say += slotStatus;
return responseBuilder
.speak(say)
.reprompt('try again, ' + say)
.getResponse();
},
当我尝试拨打外线电话时,我得到一个错误,我不知道为什么。
async handle(handlerInput) {
const request = handlerInput.requestEnvelope.request;
const responseBuilder = handlerInput.responseBuilder;
let sessionAttributes = handlerInput.attributesManager.getSessionAttributes();
let say = 'Hello. ';
let slotStatus = '';
let resolvedSlot;
let slotValues = getSlotValues(request.intent.slots);
slotStatus = "I heard " + slotValues.query.heardAs;
const response = await httpGet(slotValues.query.heardAs);
slotStatus = "I heard " + response.heard + " from the server.";
say += slotStatus;
return handlerInput.responseBuilder
.speak(say)
.reprompt("try again. " + say)
.getResponse();
},
httpGet方法如下...
function httpGet(query) {
return new Promise(((resolve, reject) => {
var options = {
host: 'www.hostname.app',
port: 443,
path: '/api/alexa.php?'+query,
method: 'GET',
};
const request = https.request(options, (response) => {
response.setEncoding('utf8');
let returnData = '';
response.on('data', (chunk) => {
returnData += chunk;
});
response.on('end', () => {
resolve(JSON.parse(returnData));
});
response.on('error', (error) => {
reject(error);
});
});
request.end();
}));
}
【问题讨论】:
-
如果您将 httpGet 代码作为独立函数运行在您的 alexa 函数之外,它会返回什么?
标签: node.js alexa alexa-skills-kit alexa-skill