我正在使用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,但不是很清楚。它提到字段allow
和value
,因此我尝试了这些方法,但它没有用:
fields.putString("fields", "images,allow,value");
(没有错误但没有其他输出)fields.putString("fields", "images,privacy");
(没有错误但没有其他输出)fields.putString("fields", "images,privacy.allow,privacy.value");
(这不提供JSON输出)我如何只询问公开照片?
我使用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一起使用吗?