2011-04-26 59 views
0

我正在使用Facebook来管理我的网站登录。我也使用PHP SDK来调用Graph API来检索朋友列表,评论,帖子等。如何阻止我的网站在Facebook中显示?

我遇到的问题是我想要网站是独立的,以便用户遵循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>'); 
} 

回答

1

你有没有尝试设置 '下一步',像这样:$ PARAMS =阵列( '画布'=> 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> 
+0

谢谢,但这些都没有工作..! – Sharon 2011-04-26 15:26:33

相关问题