在JS中使用oauth2时如何在PHP中获取Facebook访问令牌?

时间:2011-12-15 21:38:57

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

我在网站上使用facebook的FB连接和登录按钮。

我使用它登录然后登录时,我重新加载页面,我试图在PHP中获取具有access_token的cookie,但未能这样做。以下是我的js代码:

window.fbAsyncInit = function() {
      FB.init({
        appId      : 'xxxxxxxx',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true
      });

      FB.Event.subscribe('auth.login', function(response) {
        window.location.reload();
      });
    };
    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));

Fb登录按钮代码:

<div class="fb-login-button" scope="email,user_checkins" >Login with Facebook</div>  

现在,当用户使用facebook登录时,我尝试使用access_token获取其数据,但没有从cookie获取access_token。 我使用以下代码:

$cookie = $this->get_facebook_cookie(APP_ID, APP_SECRET);



        echo $cookie['access_token'];
        if(isset($cookie['access_token'])){  

            $user = json_decode(@file_get_contents('https://graph.facebook.com/me?access_token=' .$cookie['access_token']));
            echo $user->id;
            if(isset($user->id)){
             //       my stuff

            }                    
        }

我怀疑它甚至没有得到cookie。它在客户端登录。那么如何在PHP中获取数据呢?还需要在PHP端再次重复整个登录过程吗?我该如何处理?

0 个答案:

没有答案