3

我花了一整天的时间寻找答案..但似乎没有什么可以解决它。我想每个版本都有不同的问题......

嗯,这很简单,我有这个代码:

    <?php
    include_once("facebook.php"); //include facebook SDK

    ######### edit details ##########
    $appId = '****'; //Facebook App ID
    $appSecret = '****'; // Facebook App Secret
    ##################################

    //Call Facebook API
    $facebook = new Facebook(array(
      'appId'  => $appId,
      'secret' => $appSecret,
      'cookie' => true
    ));

    $fbuser = $facebook->getUser();


    if ($fbuser) {
    // Do Something

    }
    else{               
    //Show login button for guest users
    $loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions));
    echo '<a href="'.$loginUrl.'"><img src="images/facebook-login.png" border="0"></a>';
    }
    ?>

我每次都在获取用户中得到 0。当我转到“在 facebook 上登录”并且我没有登录时,我得到了 facebook 登录屏幕。当我转到“在 facebook 上登录”并登录时,facebook 将我重定向到我的页面,我再次在获取用户时得到 0。

我想在我的本地主机上运行它,也许这就是问题所在?

希望有人可以帮助.. thx

4

2 回答 2

5

使用相同的简单登录脚本时我遇到了类似的问题。我几乎尝试了任何东西,但没有任何帮助。(奇怪的是,前一天一切正常)。

于是开始调试“base_facebook.php”,发现函数getAccessTokenFromCode异常(无声)失败。

原来 _oauthRequest 的响应给出了错误消息回复,而不是预期的令牌回复:

$access_token_response =
        $this->_oauthRequest(
          $this->getUrl('graph', '/oauth/access_token'),
            $params = array ('client_id' => $this->getAppId(),
                             'client_secret' => $this->getAppSecret(),
                             'redirect_uri' => $redirect_uri,
                             'code' => $code));

所以通过添加 echo $access_token_response; 直接在这个函数之后发现了我的问题。

响应错误是我的应用程序被配置为本机/桌面应用程序。在我将其更改为Internet后,getUser(); 给出了正确的用户 ID。

我希望这有帮助。

于 2013-04-04T13:12:24.963 回答
-1

试试这个,这是我的一个同学写的一段代码,因为我也在为 FB 登录而苦苦挣扎。为我工作。

<?php
    session_start();
    require_once 'facebook/facebook.php';

    $facebook = new Facebook(array(
      'appId'  => '3525325', <- fake appID ofcourse, enter your own
      'secret' => 'fauuf983f9f', <- fake secret, enter your own
    ));

    $user = $facebook->getUser();

    if ($user) {
      try {
        $_fb['user'] = $facebook->api('/me');
      } catch (FacebookApiException $e) {
        error_log($e);
        $_fb['user'] = null;
      }
    }

    if ($user) 
    {
        $_fb['logouturl'] = $facebook->getLogoutUrl();
        $_fb['authed'] = true;

        echo '<h1>Logged in</h1>';
        echo 'Fbid: '.$user;

        echo "<br /><br /><pre>";
        print_r($_fb['user']);
        echo "</pre>";
    } 
    else 
    {
      $_fb['loginurl'] = $facebook->getLoginUrl(array('scope' => 'email'));
      $_fb['authed'] = false;
      echo '<a href="'.$_fb['loginurl'].'">Login with Facebook</a>';
    }
?>
<html>
    <head>
        <title>Login</title>
    </head>
    <body>
    </body>
</html>

希望对你有用。祝你好运 :) Facebook 登录让我很恼火 :p

于 2013-03-29T09:12:57.197 回答