问题描述
我正在构建一个可连接到许多不同客户的Facebook广告帐户的应用程序。我想将每个客户彼此隔离100%。
该应用将使用 Facebook Business SDK 来读取帐户中的数据。我可以将我的应用程序实例放置在具有不同IP地址的不同服务器上。
我也可以更改SDK代码。更具体地说,是对API进行的CURL请求。因此,我可以更改每个客户端的IP地址。通过代理。
浏览Facebook SDK Code on Gitub之后。 我认为 我发现了实际进行调用的函数。
private function httpClientExecute($http_client) {
$base_url = 'https://graph.facebook.com/v' . ApiConfig::APIVersion;
$url = $base_url . '/' . $this->container['pixel_id'] . '/events';
$headers = array(
'User-Agent' => 'fbbizsdk-PHP-v' . ApiConfig::SDKVersion,'Accept-Encoding' => '*',);
$curl_options = array(
CURLOPT_CONNECTTIMEOUT => 10,CURLOPT_TIMEOUT => 60,CURLOPT_RETURNTRANSFER => true,CURLOPT_HEADER => true,CURLOPT_CAINFO => Util::getCaBundlePath(),);
$params = $this->normalize();
if (HttpServiceClientConfig::getInstance()->getAccesstoken() == null) {
$params['access_token'] = Api::instance()->getSession()->getAccesstoken();
} else {
$params['access_token'] = HttpServiceClientConfig::getInstance()->getAccesstoken();
}
$appsecret = null;
if (HttpServiceClientConfig::getInstance()->getAppsecret() == null) {
$appsecret = Api::instance()->getSession()->getAppSecret();
} else {
$appsecret = HttpServiceClientConfig::getInstance()->getAppsecret();
}
if ($appsecret != null) {
$params['appsecret_proof'] = Util::getAppsecretProof($params['access_token'],$appsecret);
}
return $http_client->executeRequest(
$url,HttpMethod::POST,$curl_options,$headers,$params
);
}
CURL选项有一个选项。我已经读过here,使用代理配置CURL非常容易。
我们可以简单地使用:curl_setopt($ch,CURLOPT_PROXY,$proxy);
我可以在FB PHP SDK代码中编辑$curl_options
。我可以添加CURLOPT_PROXY
选项。
$curl_options = array(
CURLOPT_PROXY=> PROXY-IP-ADDRESS,CURLOPT_CONNECTTIMEOUT => 10,);
- 我想念什么吗?一些PHP专家可以通过验证我的研究来帮助我吗?正在分析FB SDK代码?
- 接收端FB能够看到我正在使用代理吗? (我可以阻止它)
- 是否可以在运行时仔细检查脚本中的所有CURL调用以及用于这些调用的IP?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)