Facebook Graph API 调用未检索所有字段

Posted

技术标签:

【中文标题】Facebook Graph API 调用未检索所有字段【英文标题】:Facebook Graph API calls not retrieving all fields 【发布时间】:2016-02-08 13:38:33 【问题描述】:

我正在请求我的me/albums

  new GraphRequest(
        AccessToken.getCurrentAccessToken(),
        "/me/albums",
        null,
        HttpMethod.GET,
        new GraphRequest.Callback() 
            public void onCompleted(GraphResponse response) 
                parseAlbumResponse(response);
            
        ).executeAsync();

问题是响应对象只包含3个字段:


  "data": [
    
      "created_time": "...",
      "name": "...",
      "id": "..."
    ,
...

而不是记录的所有字段here。同样适用于/album-id/photos


  "data": [
    
      "created_time": "...",
      "id": "..."
    ,
...

而不是this。 上次我检查时它正在工作,但突然间发生了这种奇怪的行为。 我用Facebook Graph API 测试过,结果是一样的,所以我想这不是我的应用程序的问题。

我正在使用'com.facebook.android:facebook-android-sdk:4.7.0'。 Facebook 是否更改了请求参数中的某些内容?

编辑: 正如用户 luschn 建议的那样:

声明性字段

尝试提高移动网络、节点和边缘的性能 v2.4 要求您明确请求您需要的字段 您的 GET 请求。例如,GET /v2.4/me/feed 不再包括 默认情况下喜欢和 cmets,但 GET /v2.4/me/feed?fields=cmets,likes 将返回数据。更多 有关如何请求特定字段的详细信息,请参阅文档。

所以我不得不将我的请求更改为: Web 控制台:me/albums?fields=name, cover_photo, count/album-id/photos?fields=id, images

Java:

Bundle parameters = new Bundle();
parameters.putString("fields", "id, images");

Bundle parameters = new Bundle();
parameters.putString("fields", "name, cover_photo, count");

【问题讨论】:

【参考方案1】:

https://developers.facebook.com/docs/apps/changelog#v2_4

在变更日志中搜索“声明性字段”,您必须指定要返回的字段。

【讨论】:

谢谢,让我做些修改,我会回复你的。

以上是关于Facebook Graph API 调用未检索所有字段的主要内容,如果未能解决你的问题,请参考以下文章

Facebook Graph API - 检索基本信息和附加变量

从 Facebook Graph-API 获取用户图像

无法从服务器端检索搜索结果:使用Python的Facebook Graph API

通过图形 API 检索 facebook 用户墙帖子

facebook graph api /group-id/events 未列出所有事件

Facebook Graph API - 来自批处理请求的同步响应