我提出的API請求使用該給Facebook:HTTPS的NodeJS不能正常工作
var hash = crypto.createHmac('sha256', config.FACEBOOK_SECRET).update(access_token).digest('hex');
console.log('hash = ' + hash);
var options = { //start of options
hostname: 'graph.facebook.com',
port: 443,
//path: '/oauth/?appsecret_proof='+hash+'&access_token='+at,
path: '/v2.6/me?fields=id,email,name&access_token=' + req.body.access_token + '&appsecret_proof=' + hash,
method: 'GET'
}; //end of options
var fbResponse = [];
var req = https.request(options, (response) => {
console.log('statusCode: ', response.statusCode);
console.log('headers: ', response.headers);
response.on('data', (d) => {
console.log(d)
fbResponse.push(d);
});
response.on('end',() => {
console.log('No more data in response. ');
res.send(JSON.stringify({
r: fbResponse
}));
return;
})
});
req.on('error', (e) => {
console.error(e);
res.status(500).send(JSON.stringify({
r: 'error'
}));
return;
});
req.end();
這回像這樣的迴應:
{"id":"123456","email":"bob\u0040gmail.com","name":"bobby bobski"}
注意如何電子郵件沒有'@'符號代替它有\ u0040。我不想要這個,我想用@代替。我不確定,因爲我沒有測試過,但我認爲這可能會與所有特殊字符發生。我如何做到這一點,所以我得到了真正的人物?
你能用捲曲測試嗎? –
'\ u0040'和'@'符號是json的同義詞 –
btw,修復帖子標題。正如我們可以看到https正常工作,否則你根本得不到任何迴應 –