如何解决通过更改CURL选项,通过代理使用FB Business SDK
我正在构建一个可连接到许多不同客户的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 举报,一经查实,本站将立刻删除。