https://graph.facebook.com/me/albums有时不会返回任何内容

And*_*rew 7 javascript jquery facebook

我一直在使用Javascript SDK试验Facebook API.每当我登录Facebook时,我都可以非常可靠地致电:

function init() {
    // Called after loading the Facebook SDK
    FB.api("/me", function(response) {
        console.log(response.first_name); // "John" (always works)
    });
}
Run Code Online (Sandbox Code Playgroud)

但我也希望获得一个用户相册(当他们点击一个链接时),由于某种原因,这个电话只能间歇性地工作:

$(document).ready(function) {

    $("#get-albums-link").click(function() {
        var accessToken = "456"; // Just an example
        FB.api("/me/albums?access_token=" + accessToken, function(response) {
            console.log(response); // An empty object about 40% of the time
        });
    });

});
Run Code Online (Sandbox Code Playgroud)

当发生这种情况我可以打开一个新的标签和验证甚至直接查询返回此相同的空结果(请注意,虽然这可能是一个授权问题,没有明显的迹象表明它是,它只是一个空的JSON对象):

<!-- An HTTPS GET at https://graph.facebook.com/me/albums?access_token=456 -->
{
   "data": [

   ]
}
Run Code Online (Sandbox Code Playgroud)

Cla*_*diu 1

正如 Felipe 上面指出的,访问令牌可能是问题所在,因为没有设置权限将返回 {"data":[]}。自己尝试一下:https://developers.facebook.com/tools/explorer/? method=GET&path=me%2Falbums

另外,即使它是有效的 auth_token,SDK 也不需要它,所以不要使用它。您最终可能会得到类似 graph.facebook.com/me/albums?access_token=123423&access_token=981234 (SDK 添加的第二个访问令牌)的结果。我个人不知道 FB.api 函数是如何构建的,但只需遵循文档即可:https://developers.facebook.com/docs/reference/javascript/FB.api/

如果您仍有问题,请告诉我。