【问题标题】:'getLogoutUrl' Does not work'getLogoutUrl' 不起作用
【发布时间】:2011-11-22 16:05:52
【问题描述】:

单击注销按钮后,它会将我重定向到: https://www.facebook.com/home.php。为什么回到我的应用域后,我仍然可以看到注销按钮...?

这是我的代码:

<?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>';
}
?>

提前致谢。

【问题讨论】:

  • 当我返回我的应用域时,我仍然可以看到注销按钮...

标签: facebook facebook-php-sdk facebook-login


【解决方案1】:

我遇到了同样的问题:

当点击我的注销链接时,Facebook 忽略了“next”参数,没有注销并重定向到 facebook.com/home.php

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

这是我的代码:

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

【讨论】:

  • 此方法对我有用,但结合@Eagle_one 建议使用完整的绝对 URL 作为“下一个”参数,即; http(s)://fullsitepath.com/absolutepath/ 必须以正斜杠结尾。
【解决方案2】:

有类似的问题。您要重定向的 URL 也需要位于开发人员应用程序中定义的站点域内。我以 google.com 为例进行了测试,但它没有退出。

【讨论】:

    【解决方案3】:

    因为我猜 URL 应该是绝对的,如下所示希望这能解决您的问题... ;-)

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

    【讨论】:

      【解决方案4】:

      我在我的一个 Facebook 应用程序中遇到了同样的问题。我正确放置了重定向 URL,一切似乎都很好。但后来我意识到我的域在 Facebook 应用设置中丢失了。

      为您的 Facebook 应用设置您的域,例如“example.com”

      最后且重要的是,您在 Facebook 的注销 URL 中的重定向 URL 应位于您在 Facebook 应用程序设置中指定的域内。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2012-12-09
          • 2012-02-26
          • 2012-07-05
          • 1970-01-01
          • 2011-12-02
          • 2015-08-13
          • 2011-06-13
          • 2016-03-13
          • 1970-01-01
          相关资源
          最近更新 更多