我正在使用 Nodehttps库将数据发送到 Facebook API。我最终出现错误:
getaddrinfo ENOTFOUND https://graph.facebook.com/ https://graph.facebook.com/:443
我觉得很奇怪,因为使用 Postman 提出的相同请求毫无问题地通过了。
我试过nslookup:
$ nslookup https://graph.facebook.com/
Server: 1.1.1.1
Address: 1.1.1.1#53
** server can't find https://graph.facebook.com/: NXDOMAIN
不知道是什么原因造成的。
这是我的带有匿名令牌的代码:
var inputData = new Array;
inputData.firstname = "First name";
inputData.lastname = "Last name"
inputData.phone = "Phone";
inputData.email = "Email";
inputData.workable_stage = "Applied";
inputData.access_token = 'xxx';
var https = require('https');
var crypto = require('crypto'); // Facebook API requires hashing of user data
var querystring = require('querystring');
const firstname_hash = crypto.createHash('sha256');
const lastname_hash = crypto.createHash('sha256');
const phone_hash = crypto.createHash('sha256');
const email_hash = crypto.createHash('sha256');
// hash user data
firstname_hash.update(inputData.firstname);
var firstname_hashed = firstname_hash.digest('hex');
lastname_hash.update(inputData.lastname);
var lastname_hashed = lastname_hash.digest('hex');
phone_hash.update(inputData.phone);
var phone_hashed = phone_hash.digest('hex');
email_hash.update(inputData.email);
var email_hashed = email_hash.digest('hex');
// prepare data object
var fb_data = [
{ match_keys:
{
"fn": firstname_hashed,
"ln": lastname_hashed,
"phone": phone_hashed,
"email": email_hashed
},
event_name: "Lead",
event_time: Date.now() / 1000 | 0, // UNIX timestamp in seconds, see: https://stackoverflow.com/a/221297/6178132
custom_data: {
workable_stage: inputData.workable_stage,
}
}
]
body = {
access_token: inputData.access_token,
upload_tag: "store_data",
data: fb_data
}
console.log(querystring.stringify(body));
var postData = querystring.stringify(body);
相关分类