2011-11-22 23 views
1

当我点击我的注销按钮后,它将我重定向到: https://www.facebook.com/home.php。为什么当我回到我的应用程序域时,我仍然可以看到注销按钮...?'getLogoutUrl'不起作用

这里是我的代码:

<?php 
//User login/logout buttons 
if($user) { 
    echo '<a href="'.$facebook->getLogoutUrl(array('next' => 'myurl.com/facebook/')).'"><img src="src/logout-fb.png" alt="Facebook Logout Button" /></a>'; 
}else{ 
    $params = array(
     scope => 'user_photos, publish_stream', 
     redirect_uri => 'http://myurl.com/facebook/' 
    ); 
    $loginUrl = $facebook->getLoginUrl($params); 
    echo '<a href="'.$loginUrl.'"><img src="src/login-fb.gif" alt="Facebook Logout Button" /></a>'; 
} 
?> 

在此先感谢。

+0

和你的问题是? – Lix

+0

当我回到我的应用程序域,我仍然可以看到注销按钮... – funerr

回答

4

我有同样的问题:

当我退出链接点击,Facebook的忽略“下一个”参数,也没有注销并重定向到facebook.com/home.php

我给我的“下一个”网址添加了最后一个斜杠,它解决了我的问题。

有我的代码:

$client = facebook_client(); 
if($client){ 
    session_destroy(); 
    $url = $client->getLogoutUrl(array('next' => $base_url.'/')); //added a slash 
    ... //Redirect to $url 
} 
+0

我试过这个,但它不适合我。 :/ – James

+0

此方法适用于我,但与@ Eagle_one的建议结合使用完整的绝对URL作为'next'参数,即: 'http(s):// fullsitepath.com/absolutepath /'< - 注意结尾的斜杠。这与Facebook Canvas规范相同,URL _must_以正斜杠结尾。 – lincolnberryiii

2

有类似的问题。您重定向的网址也必须位于开发者应用中定义的网站域内。我以google.com为例进行了测试,结果没有注销。

1

我猜URL的应该是绝对的如下希望这个解决您的问题... ;-)

$logoutParams = array(
'next' => 'http://localhost/Facebook/test/test1/after_logout.php' 
); 
1

我在我的Facebook应用程序的一个面临同样的问题。我正确地把重定向网址,一切都很好。但后来我意识到我的域名在Facebook应用程序设置中缺失。

对于你的Facebook应用程序设置您的域的e-G“example.com”

末和重要的是你重定向URL在Facebook的注销URL应该是你在Facebook的应用程序设置中指定域之内。

0

我刚刚在“下一个”参数中添加了我的应用程序的画布URL,它可以工作。