使用Android SDK

时间:2016-06-19 15:51:36

标签: android facebook facebook-graph-api

我正在使用Facebook SDK v2.6开发Android应用。我的目的是获取用户的图片,但仅限于与公共隐私设置共享的图片。我的测试用户目前有2张公共图片,1张只与朋友分享。我试图只获得那两张照片,但我得到全部3张。

这是登录按钮代码:

LoginButton fbButton = (LoginButton) findViewById(R.id.fb_login_button);
fbButton.setReadPermissions("public_profile", "user_photos");

这是查询的代码:

Bundle fields = new Bundle();
fields.putString("fields", "images");
GraphRequest request = new GraphRequest(FBToken,
    "/me/photos/uploaded",
    fields, HttpMethod.GET);
GraphResponse response = request.executeAndWait();

我试图关注documentation about the privacy node,但不是很清楚。它提到字段allowvalue,因此我尝试了这些方法,但它没有用:

  • fields.putString("fields", "images,allow,value");(没有错误但没有其他输出)
  • fields.putString("fields", "images,privacy");(没有错误但没有其他输出)
  • fields.putString("fields", "images,privacy.allow,privacy.value");(这不提供JSON输出)

我如何只询问公开照片?

使用FQL更新

我使用Graph Explorer进行了一些测试,我用FQL得到了我想要的结果:

select object_id, link, images
from photo
where object_id in (
    select object_id
    from privacy
    where (
        object_id in (
            select object_id from photo_tag where subject = me()
        )
        or object_id in (
            select object_id from photo where owner = me()
        )
    )
    and value = "EVERYONE"
)

但是,我不能在我的应用程序中使用它,因为我得到的令牌是版本2.6,显然我需要一个版本2.0。我能以某种方式将此查询与最新的SDK一起使用吗?

0 个答案:

没有答案