首页 > 解决方案 > 使用 PHP 从 FB 事件中获取数据

问题描述

有没有办法通过 PHP 或 Javascript 从 Facebook 事件中提取数据?
所以我输入链接(例如:https ://www.facebook.com/events/650125518420796/ )并获取:名称、日期、位置、详细信息等。

我之前对 PHP 的尝试总是失败,因为可能标头不被接受,即使是,PHP 仍然必须执行 JS。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
$headers = array();
$headers[] = 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3';
$headers[] = 'Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'Host: www.facebook.com';

$headers[] = 'Cache-Control: max-age=0';
$headers[] = 'Sec-Fetch-User: ?1';
$headers[] = 'Sec-Fetch-Site: none';
$headers[] = 'Sec-Fetch-Mode: navigate';
$headers[] = 'Sec-Fetch-Dest: document';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'Accept-Encoding: gzip, deflate, br';
$headers[] = 'Accept-Language: en-US,en;q=0.5';
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8';
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:93.0) Gecko/20100101 Firefox/93.0';

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
curl_close($ch);
// echo $result;
print_r($result);   
file_put_contents('res.html',$result);

标签: javascriptphpfacebook

解决方案


推荐阅读