1

我被要求建立一个网站,比如 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 来创建叠加层:不,在 Facebook 上不可能,但在 YouTube 上工作。我能想到的最后一件事是重建 Facebook 的布局并通过他们的 API 捕获内容。这不是一个简单的解决方案。

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

4

1 回答 1

1

您可以使用PHP作为 iframe 的替代方案来获取带有cURL的页面。

$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,您将能够在页面输出处进行修改。

于 2013-02-04T15:13:05.490 回答