You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP cURL调用Facebook API下载线索CSV文件异常求助

问题描述
  • 现有可下载Facebook线索CSV格式数据的接口地址:https://www.facebook.com/ads/lead_gen/export_csv/?id=XXXXXXXXXX&type=form
  • 需求:通过PHP cURL实现将该接口返回的表格文件下载到自有服务器
  • 初始实现代码如下:
$output_filename = "test.csv";
$host = "https://www.facebook.com/ads/lead_gen/export_csv/?id=XXXXXXXXXXX&type=form";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, false);
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, FALSE );
curl_setopt( $ch, CURLOPT_SSL_VERIFYHOST, 2 );
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, TRUE );
curl_setopt($ch, CURLOPT_REFERER, "https://www.facebook.com");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
print_r($result);
$fp = fopen($output_filename, 'w');
fwrite($fp, $result);
fclose($fp);
  • 通过路径https://服务器IP/facebook/facebook.php运行代码后返回结果异常,无法获取目标文件,异常响应参考:异常响应截图
故障原因

当前代码没有携带接口访问必须的鉴权凭证,Facebook识别到请求为未授权的陌生请求,直接返回了登录拦截/安全校验页面,没有返回真实的CSV文件内容。另外代码中关闭SSL证书校验的写法存在安全风险,也没有做请求结果校验,会直接把异常页面内容写入csv文件。

修复方案
  1. 先获取访问该导出接口的有效凭证:浏览器登录有线索导出权限的Facebook账号,手动触发一次线索导出,在浏览器开发者工具的网络请求面板里找到对应export_csv请求,复制完整的Cookie值
  2. 替换代码中的鉴权参数,补充错误判断逻辑,修正不安全的SSL配置,参考代码如下:
$output_filename = "test.csv";
$host = "https://www.facebook.com/ads/lead_gen/export_csv/?id=XXXXXXXXXXX&type=form";
// 替换为你从浏览器请求中复制的完整有效Cookie
$facebookCookie = "你的Cookie字符串";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $host);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_REFERER, "https://www.facebook.com/ads/manager/lead_center/");
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
    "Cookie: ".$facebookCookie
]);
curl_setopt($ch, CURLOPT_HEADER, 0);

$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$curlError = curl_error($ch);
curl_close($ch);

// 校验请求状态和返回格式,确认是CSV再写入文件
if ($curlError) {
    die("cURL请求出错:".$curlError);
}
if ($httpCode != 200 || strpos($contentType, 'text/csv') === false) {
    die("接口返回异常,HTTP状态码:".$httpCode.",返回内容类型:".$contentType.",返回内容:".$result);
}

$fp = fopen($output_filename, 'w');
fwrite($fp, $result);
fclose($fp);
echo "文件下载成功,保存路径:".__DIR__."/".$output_filename;

注意:网页端Cookie有有效期,失效后需要重新获取。如果需要长期稳定调用,建议直接使用Facebook官方Marketing API接口,通过长期访问令牌鉴权,不要依赖网页导出接口爬取。

内容的提问来源于stack exchange,提问作者MURALA SANDEEP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 17:16:17