我是Alexa Skill / Lambda的新手。我正在尝试打印请求的正文。我已经尝试过将提取与isomorphic-unfetch结合使用,现在我正在尝试使用npm request模块。由于某种原因,我无法在CloudWatch Logs中打印请求正文,因此我所记录的其他所有内容都显示正常。我也没有收到错误,因为我也正在记录该错误,并且它没有显示出来。我究竟做错了什么?我正在使用帐户链接,并且我知道我拥有用户accessToken,并且正在使用该令牌通过击中另一个端点来验证谁是用户,所以我知道如果在本地和使用本地令牌运行时,我都具有令牌和可以使用的方法只是节点,但是一旦我尝试在aws / lambda CloudWatch上登录正文,我就无法获取要登录的请求的正文,因此无法确定其是否有效。现在,当我说它在本地工作时,我是说我删除$ {event.session.user.accessToken}和访问令牌中的硬代码,然后运行节点index.js,然后我可以看到请求的正文。
欢迎所有帮助。谢谢!
let skill;
exports.handler = async function (event, context) {
getUserInfo(event);
console.log(`REQUEST++++${JSON.stringify(event)}`);
if (!skill) {
skill = Alexa.SkillBuilders.custom()
.addRequestHandlers(
LaunchRequestHandler,
CreateQuoteIntent,
SessionEndedRequestHandler,
)
.addErrorHandlers(ErrorHandler)
.create();
}
// console.log("SESSION**** " + event.session.user.accessToken);
const response = await skill.invoke(event, context);
console.log(`RESPONSE++++${JSON.stringify(response)}`);
return response;
};
function getUserInfo(event) {
console.log("TOKEN: " +event.session.user.accessToken);
const options = {
url: 'not showing url but api url is fine ',
method: 'GET',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
'Client-ID': 'not showing me key on stack',
'Authorization': `OAuth ${event.session.user.accessToken}`
}
};
console.log('BEFORE REQUEST');
request(options, function(err, res, body) {
console.log("ERROR: " + err);
// let json = JSON.parse(body);
console.log("BODY: " + body);
});
console.log('AFTER REQUEST');
}