繁体   English   中英

如何阻止我的网站在Facebook中显示?

[英]How can I stop my site from being shown within Facebook?

我正在使用Facebook管理我的网站登录。 我还使用PHP SDK调用Graph API来检索朋友列表,评论,帖子等。

我遇到的问题是我希望该网站独立,以便用户跟随来自Facebook的链接,然后访问该网站。

这种方法行得通,但有时当用户点击链接时,他们会在Facebook画布区域中看到我网站的索引页。 我还没有完全设法重现这一点,所以也没有确定发生这种情况的情况。 但是,发生这种情况时,如果我在浏览器中单击“返回”,则会回到我自己的站点。

看起来该链接将用户从Facebook带到我的网站,然后调用Facebook来检查用户是否已登录,但是由于某种原因它没有返回我的网站。 但正如我所说,我不确定。

无论如何,任何人都有任何想法可能是什么问题?

我的登录代码是:

// Create new Facebook object
$facebook = new Facebook(array(
  'appId'  => APP_ID,
  'secret' => APP_SECRET,
  'cookie' => true, // enable optional cookie support
));

// Create login url, in case user is not logged in or session has expired
$loginUrl = $facebook->getLoginUrl($params = array('canvas' => 0, 'fbconnect' => 0, 'req_perms' => 'publish_stream', 'cancel_url' => 'http://www.pubfish.com'));

// Get current facebook session
$session = $facebook->getSession();
$me = null;

// Session based API call.
if ($session) { // If session exists, make sure it's still valid
 try { // Get session to see whether it's valid
  // User is logged in and has authorised application already
  $uid = $facebook->getUser();
  $me = $facebook->api('/me');
 } catch (FacebookApiException $e) {
  echo "<script type='text/javascript'>top.location.href = '".$loginUrl."';</script>";
  error_log($e);
 }
}else { // No session - so ask user to log in
 $url=$facebook->getLoginUrl(array('canvas' => 1,'fbconnect' => 0));
 echo ('<script type="text/javascript">top.location.href=\''.$url.'\';</script>');
}

您是否尝试过设置'next',像这样:$ params = array('canvas'=> 0,'fbconnect'=> 0,'req_perms'=>'publish_stream','cancel_url'=>'http:// www .pubfish.com','next'=>'http://www.pubfish.com')? 如果所有其他方法均失败,则可以使用此方法突破画布iframe:

<script>
$(document).ready (function () {
if (window != top) top.location.href = location.href;
});
</script>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM