首页 文章

如何检索facebook oauth 2.0 access_token

提问于
浏览
3

我想获取登录的facebook用户的access_token .

我得到这样的东西.. url后跟代码我检索代码..

它在指南中说它为access_token交换它...

https://graph.facebook.com/oauth/access_token? CLIENT_ID = XXXXXXXXXXXXXX&REDIRECT_URI = http://www.my-site.com/& client_secret = XXXXXXXXXXXXXXXXXXXXX&代码= 2.hJFWoMlLf3tLOSos_qNCBg __ 3600.1279836000-10000100XXXXXXX | . kGwPB4y5K_-ijD9_1CfjSpT-可以吗..

我如何使用FB.api或jquery或javascript来替换access_token .

当我在地址栏中插入此网址时..我能够看到access_token ..

我很感激有人可以告诉我如何使用javascript或jquery检索access_token .

谢谢 .

2 回答

  • 1

    根据Facebook以及我对api的个人经验, FB.getSession() 函数已被弃用,如果被调用则应抛出异常 .

    来自facebook:

    FB.getAuthResponse方法是FB.getSession方法的替代方法,该方法在迁移到OAuth 2.0后已弃用 .

    相反,你应该使用getLoginStatus回调 -

    FB.getLoginStatus(function(response) {
       var token = response.authResponse.accessToken;
    });
    
    //Example structure of response object
    var eg =
    {
        status: 'connected',
        authResponse: {
            accessToken: '...',
            expiresIn:'...',
            signedRequest:'...',
            userID:'...'
        }
    };
    

    来源:http://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

  • 2

    如果您使用的是JavaScript SDK,那么在登录用户后,在JavaScript代码中获取访问令牌就像下面这样简单:

    FB.getSession().access_token
    

    但是,如果用户注销, getSession 可能会返回 null ,因此正确的方法是在访问令牌之前首先检查null .

    var session = FB.getSession();
    if(session != null) { // user is still logged in
        console.log(session.access_token);
    }
    

相关问题