我一直在使用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)
});
}
但我也希望获得一个用户相册(当他们点击一个链接时)并且出于某种原因这个电话只能间歇性地工作:
$(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
});
});
});
当发生这种情况时,我可以打开一个新选项卡并验证即使是直接查询也会返回相同的空结果(请注意,虽然这可能是一个授权问题,但没有明显的迹象表明它是;它只是一个空的JSON对象):
<!-- An HTTPS GET at https://graph.facebook.com/me/albums?access_token=456 -->
{
"data": [
]
}
答案 0 :(得分: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/
如果您仍有问题,请告诉我。