0

所以我试图在和 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));

4

2 回答 2

2

我在这里发布了一个答案,其中集成了 Endless Scrolling List 的分页:

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

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

它使用 aGridView而不是 a,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 类的实例替换该位

于 2012-12-05T08:44:08.630 回答
0

您应该需要使用分页来获取超过 25 张照片。您只能获得 25 个项目作为单个查询的结果。要加载接下来的 25 个,您应该使用如下代码:

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

这将返回接下来的 25 个项目,在本例中是从第 25 位到第 50 位的照片。

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

于 2012-12-05T08:32:54.073 回答