我有一个云函数,它向LinkedIn API发出http POST请求,以便检索访问令牌。问题是我无法读取响应的body
,它总是undefined
。
这是代码
exports.linkedinToken = functions.https.onRequest((req, res) => {
let url = "https://linkedin.com/oauth/v2/accessToken?...REQUIRED_PARAMS...";
request.post(url, {json: true}, (err, response, body) => {
if (!!err) { // this is never happening
console.log(err);
throw err;
} else {
console.log(response.body); // this is always undefined
console.log(body); // this is always undefined
}
});
如果我对Postman或curl尝试同样的请求,它会非常有效,我真的不明白为什么。
在这个请求之前,我向linkedin API发出了另一个GET请求,它正常工作。也许POST请求有问题。
我认为您缺少标头。
var request = require('request');
request.post({
headers: {
'content-type' : 'application/x-www-form-urlencoded',
'cache-control' : 'no-cache'
},
url: url
}, function(error, response, body){
console.log(body);
});