【问题标题】:Facebook API - doesn't return all fields for photosFacebook API - 不返回照片的所有字段
【发布时间】:2015-07-16 14:14:01
【问题描述】:

我正在使用 Facebook API 浏览相册,选择相册,然后将照片输出到我的页面。

我使用 Facebook 成功登录。接受应用权限。它将所有专辑输出到一个页面以供选择。我选择一个相册并将相册 ID 传递到另一个输出照片的页面。但是响应中没有所有照片字段,只有idcreated_time

例如:

//load fb api   
(function(d){
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) {return;}
    js = d.createElement('script'); js.id = id; js.async = true;
    js.src = "//connect.facebook.net/en_US/all.js";
    ref.parentNode.insertBefore(js, ref);
}(document));

//Initialise
window.fbAsyncInit = function() {
    FB.init({
    appId      : 'XXXXXXXX',
    status     : true,
    xfbml      : true,
    cookie     : true,
    version    : 'v2.4'
   });
}

//Get albums - This works fine.
FB.api( "/me/albums", function (response) {
        if (response && !response.error) {
            data = response.data;
            //Output albums...
        }
});

我选择一个相册并将其传递到我输出照片的页面,如下所示:

FB.api(
    "/ALBUM_ID/photos",
    function (response) {
        if (response && !response.error) {
            console.log(response);
        }
    }
);

这就是它崩溃的地方。日志中的输出如下所示:

Object {data: Array[1], paging: Object}
    data: Array[1]
        0: Object
           created_time: "2014-05-07T10:39:31+0000"
           id: "xxxxxxxxxxxxxxx"

就是这样。没有其他字段。日志中没有错误。我不明白为什么我只得到一些数据。

【问题讨论】:

  • 有人可以解释一下,为什么这个问题被否决了?我刚遇到同样的问题,这对我真的很有帮助。这里出了什么问题?

标签: javascript facebook api facebook-graph-api social-networking


【解决方案1】:

Graph API v2.4 减少了默认响应中的字段数量。

https://developers.facebook.com/blog/post/2015/07/08/graph-api-v2.4/

减少默认字段以提高性能:为了帮助提高移动网络连接的性能,我们减少了 API 默认返回的字段数量。您现在应该使用 ?fields=field1,field2 语法来声明您希望 API 返回的所有字段。

简而言之,明确说明您需要哪些字段作为请求的一部分。

【讨论】:

  • 成功了。我不知道这些变化。感谢您指出。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-14
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多