Android Facebook专辑照片请求只返回25张照片

时间:2012-12-05 07:58:58

标签: android facebook json facebook-android-sdk

所以我试图在Android应用中显示来自相册的Facebook照片。

我遇到的问题是,如果我这样称呼:

facebookAsyncRunner.request(albumId + "/photos", new UserAlbumPhotosFetchListener(JSONResponse, photoView));

我得到一张25张照片的JSONResponse。但是,我需要的不仅仅是25张照片......我需要所有这些照片。所以我试着这样说:

facebookAsyncRunner.request(albumId + "/photos?limit=50", new UserAlbumPhotosFetchListener(JSONResponse, photoView));

试图获得50张照片而不是25张照片。这不起作用。相反,我一无所获。 我也试过用limit = 0调用同样的东西,但是这给了我相同的结果。 具体来说:JSONResponse.getJSONArray(“data”)= []

有没有人知道发生了什么/如何从专辑中请求超过25张照片?

谢谢!

编辑:我找到了解决方案!

Bundle params = new Bundle(); params.putString("limit", "10"); facebookAsyncRunner.request(albumId + "/photos", params, new UserAlbumPhotosFetchListener(JSONResponse, photoView));

2 个答案:

答案 0 :(得分:2)

我已经发布了一个答案,其中集成了无尽滚动列表的分页:

https://stackoverflow.com/a/13265776/450534

它太大了,不能重新发布,所以我链接到原来的答案。答案实际上是一个完整的解决方案,如何对相册进行Facebook查询,获取所有照片(限制最初限制= 10),然后在用户向下滚动到最后添加相册中的其他照片并添加将它们添加到已经提取的现有照片列表中。

它使用GridView代替ListView,但逻辑仍然完全相同。

或者,如果您只想 获取照片的方式,这里有一个更简单的解决方案,可以帮助您入门。

try {
    String test = Utility.mFacebook.request("/10151498156121729/photos&access_token=YOUR_ACCESS_TOKEN?limit=1");
    Log.e("TEST", test);
} catch (Exception e) {
    // TODO: handle exception
}

上面的代码块中使用的相册ID(10151498156121729)是Facebook公共相册。

我使用3.0之前的Facebook SDK的HackBook示例中的Utility类。如果您使用的是3.0 SDK,我认为您需要将Utility.mFacebook.request位替换为Facebook类的实例

答案 1 :(得分:0)

你应该使用Pagination来获得超过25张照片。对于单个查询,您只能获得25个项目。要加载下一个25,您应该使用如下代码:

facebookAsyncRunner.request(albumId + "/photos?offset=25&limit=25", new UserAlbumPhotosFetchListener(JSONResponse, photoView));

这将返回接下来的25个项目,在这种情况下是从第25个位置到第50个位置的照片。

尝试这种方式.. 希望这可以解决你的问题。