0

だから私はアルバムからFacebookの写真をAndroidアプリに表示しようとしています。

私が抱えている問題は、これを呼び出す場合です:

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

25 枚の写真の配列の JSONResponse を取得します。しかし、25 枚以上の写真が必要です... アルバムにすべての写真が必要です。だから私はこれを呼んでみました:

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

25 枚ではなく 50 枚の写真を取得しようとしましたが、うまくいきませんでした。代わりに、私は何も得ませんでした。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

エンドレススクロールリストのページネーションを統合する回答をここに投稿しました:

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

もう一度投稿するには大きすぎるため、代わりに元の回答にリンクしています。答えは文字通り、アルバムへの Facebook クエリを作成し、すべての写真を取得し (最初は limit=10 で制限)、ユーザーが最後までスクロールして追加したときにアルバムから追加の写真を取得する方法に関する完全なソリューションです。それらを、既に取得された写真の既存のリストに追加します。

GridViewa の代わりに 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 クラスを使用します。Utility.mFacebook.request3.0 SDK を使用している場合は、ビットを Facebook クラスのインスタンスに置き換える必要があると思います

于 2012-12-05T08:44:08.630 に答える
0

25 枚を超える写真を取得するには、ページネーションを使用する必要があります。1 回のクエリで取得できるアイテムは 25 アイテムのみです。次の 25 をロードするには、次のようなコードを使用する必要があります。

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

これにより、次の 25 個のアイテムが返されます。この場合、25 番目の位置から 50 番目の位置までの写真です。

この方法で試してください..これで問題が解決することを願っています。

于 2012-12-05T08:32:54.073 に答える