替代在iframe中加载Facebook

时间:2013-02-04 15:10:30

标签: javascript facebook iframe code-injection

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

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

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

1 个答案:

答案 0 :(得分:1)

您可以使用 PHP 获取cURL的页面作为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,您可以在页面输出处进行修改。