0

我对来自 facebook 的访问令牌感到很困惑。这是我获取用户访问令牌并使用它从图形 API 获取数据的方式

window.fbAsyncInit = function() {
    FB.init({
        appId       : 'app ID',
        status      : true, 
        cookie      : true,
        xfbml       : true,
        oauth       : true,     
    });     
    FB.getLoginStatus(getStatus);    
    FB.Event.subscribe('auth.authResponseChange', getStatus);

    function getStatus(response) {
        if ( response.status === 'connected' ) {
            var accessToken = response.authResponse.accessToken;
            console.log("accessToken = " + accessToken);

            $.ajax({
                dataType    : "jsonp",
                type        : "GET",
                url     :   "https://graph.facebook.com/me/albums?access_token=" + accessToken,
                success : function(data) {
                    $.each(data, function(index, value) {
                        console.log(index + ": " + value);  
                    })
                }
            });                     
        }   
    }   
};

但是,我总是得到一个空数据。在我访问此处的图形 API 文档后:https ://developers.facebook.com/docs/reference/api/并单击其中一个图形链接,我注意到那里生成的访问令牌总是与我从中检索到的不同我的代码。例如,graph api 文档中的当前访问令牌是

“AAAAAAITEghMBAMwuyHZCO3VOAvCm9hHpaZC9PGV9238ixsZB7zSfuplZBTZCLRj6cEViZADJlVcjOfInwvcbhqu3XBF1w4ZAxvPbexcGQZAYzb4bHAKsMbLF”

控制台日志中的一个是

"AAAG0ZCFantJ8BAAFcMdDOyDyT4OBtjrvULEaS2o94gZAU7U1xITaogFXCZBghQP8G9bjEh3XSCATQOZCUSZCuNWFvEfypIAmcz9bkbk5qRBlHUZAOE4guW"

我认为我可能以错误的方式做到了这一点。谁能帮我解释一下如何以正确的方式从图形 API 中检索数据?

任何形式的帮助将不胜感激。提前致谢 :)

4

3 回答 3

2

首先使用您的 authToken 运行此 URL:

https://graph.facebook.com/me/permissions?access_token=USER_ACCESS_TOKEN

您几乎肯定只会在响应中看到基本权限,这就是为什么您没有从对用户相册的调用中获取数据的原因。

然后,您需要通过Authentication Process运行您的用户,确保您请求所需的权限(在您的情况下可能是“user_photos”)。

这两个链接中提供了更多信息。祝你好运!

于 2012-07-10T09:45:47.310 回答
0

访问令牌永远不会相同。所以这种行为是正确的。

回到你的问题,我认为它主要是范围相关的问题。

于 2012-07-10T09:14:48.010 回答
0

我已经使用 facebook c# sdk 开发了一个应用程序,在那个应用程序中我是这样做的:

  1. 当要提交帖子时,将用户重定向到 facebook(使用一些参数,如 appid、app-secret、auth-token 和 redirect-url);
  2. Facebook 将要求用户使用他的凭据登录。
  3. 当用户登录时,facebook 将重定向回重定向 URL。(使用授权令牌和新的授权码)。
  4. 然后我们应该使用这个 auth-code、app-id 和 app-secret 并获取 user-access-token。(这是通过对 URL https://graph.facebook.com/oauth/access_token?client_id=client_id&redirect_uri=redirect_uri&client_secret=client_secret&code=auth-code进行休息 api 调用来完成的, 这将返回用户令牌和到期时间令牌
  5. 然后我们可以使用这个用户访问令牌发布到 fb。

最初我误解了 auth-code 并将其用作用户访问令牌,我总是得到未授权令牌的结果。请检查这是否对您有帮助。

于 2012-07-10T09:38:19.327 回答