在iframe中加载Facebook的替代方案

Alternative to loading Facebook in iframe

本文关键字:方案 Facebook iframe 加载      更新时间:2023-09-26

我被要求建立一个网站,比如2010年Skittles社交媒体活动,你们中的一些人可能会补救(http://blog.thoughtpick.com/2010/02/learn-social-media-by-example-skittles-steals-the-social-media-rainbow.html)。

我的第一个想法是在iFrame中加载Facebook。当然,不起作用(X-Frame选项)。下一个想法:注入javascript来创建覆盖层:不,在Facebook上是不可能的,但在YouTube上有效。我能想到的最后一件事是重建Facebook的布局并通过他们的API捕获内容。这不是一个容易的解决方案。

长话短说:有没有一种流畅的方法可以在Facebook上创建叠加层或将网站加载到我的网站后台?

您可以使用 cURL 和 PHP 作为 iframe 的替代品获取页面。

$header = NULL;
$cookie = NULL;    
$ch = curl_init();
    curl_setopt($ch, CURLOPT_HEADER, $header);
    curl_setopt($ch, CURLOPT_NOBODY, $header);
    curl_setopt($ch, CURLOPT_URL, "http://www.facebook.com");
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__). '/cookies.txt');
    curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt'); //save cookies here
    curl_setopt($ch, CURLOPT_REFERER, "http://www.facebook.com"); // you don't need that line; it's just the referer
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);;
    $output = curl_exec($ch);
curl_close($ch);
echo $output;

此外,使用 cURL,您将能够在页面的输出中进行修改。