我正在为亚马逊Alexa实施一项技能。我想确定用户的地理位置,但http.get请求无法正常工作。我在邮递员中尝试了这个请求,但我得到了理想的结果,但无法弄清楚可能出现的问题。请求网址应与具有授权标头https://api.amazonalexa.com/v1/devices/{deviceId}/settings/address
的此Authorization: Bearer {token}
类似。
这是我的代码
try{
var body = "";
console.log('Authorization ', consentToken);
var response = '';
var options = {
host: 'api.eu.amazonalexa.com',
path: '/v1/devices/'+deviceId+'/settings/address',
port: '443',
headers: {'Authorization': "Bearer "+consentToken},
method: 'GET'
};
https.get(options, function(res) {
console.log('status', res.statusCode);
if (res.statusCode >= 200 && res.statusCode < 400) {
res.on('data', function(data_) { response += data_.toString(); });
res.on('end', function() {
var data = JSON.parse(response);
console.log('data', data);
if (data.length > 0)
userLocation = data;
});
}
}).on('error', function(e) {
console.log("errrrror",e);
}).on('uncaughtException', function (err) {
console.log('uncaughtException',err);
});
}
catch(error) {
console.log('getAndProcessUserLocation',error);
}
我不知道为什么不执行https.get。没有错误,但我无法从中获取任何日志。
我遵循了thr官方网站的文档
https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/device-address-api
答案 0 :(得分:1)
在没有看到其余代码的情况下,我的猜测是您没有向Alexa请求指示您是异步处理它,因此会话在请求完成之前结束。