13

グラフAPIを使って写真のコメントを取得しているのですが、作成時間で結果をソートしてから最新のデータに戻したいです。SQL ステートメント 'order by create_time desc' と同様に、そのようなパラメーターがあるかどうかはわかりません。

現在は最新データへのアクセス制限や相殺に使っていますが、総コメント数も分かっていて、

pagesize = 25;
offset = comments.count - pagesize;
limit = 25;

url = "https://graph.facebook.com/" + object_id + "/comments?access_token=" + access_token + "&limit=" + limit + "&offset=" + limit;

次のページ:</p>

offset -= 25

しかし、comments.ount の数値は正確でない場合があります

と返すリクエストURLの結果が一致しない場合がある

非常に良い解決策があるかどうか

または、間違った方法 ('limit' および 'offset' パラメータ) を使用しました!!!


ご回答ありがとうございます。

「Graphics API」キャッシュの存在は?

メッセージと 46 個のコメントを投稿します。URL を要求し、パラメーターを設定します。

オフセット=0&リミット=1

次に、最後のコメント(最新のコメント)に戻り、実際にはコメントの途中に戻ります。数回テストして、オフセットと制限を設定しました。返された結果によると、真ん中が最新のコメントです

制限値を「comment.count」より大きい値に設定すると、返されるデータはすべて、公式 Web サイトと facebook で一致します

キャッシュのせい?

ありがとうございました〜

4

2 に答える 2

5

@dbau-FQLを使用した方がよいでしょう。私の経験では、非常に単純な呼び出しを行わない限り、GraphAPI呼び出しを介して取得するものをほとんど制御できません。

FQLを使いたくないのはなぜですか?FQLはGraphAPIのエンドポイントです。FQLを介してのみ返すことができるデータがまだいくつかあります。

これにより、探している結果が得られます。クエリはURLエンコードする必要があります。わかりやすくするために、プレーンテキストのままにしました。

 https://graph.facebook.com/fql?access_token=[TOKEN]&q=
    SELECT id, fromid, text, time, likes, user_likes FROM comment
      WHERE object_id = [OBJECT_ID] ORDER BY time DESC LIMIT 0,[N]

Facebookはクエリの実行に所有者に[N]表示されないアイテムを除外するため、毎回コメントが返されない場合があります。LIMITを上げて、返された余分な結果を除外するか、ユーザーを使用している場合は、句に追加して、現在のユーザーに表示される投稿が返されることを保証できます。access_tokenaccess_tokenAND can_like = TRUEWHERE[N]

于 2012-08-04T03:43:44.790 に答える
3

Graph API は最新のオブジェクトを最初に返します。

Facebook は、取得したデータをフィルタリングするための 2 つのキーワードを提供しています。

  1. Limit : 最新レコードの「制限」数を返します
  2. Offset : オフセット位置からの「制限」数のレコードを返します

オブジェクトに投稿された最新の "x" コメントを取得するには

https://graph.facebook.com/[OBJECTID]?limit=[X]&offset=0

次の「X」コメントを取得するには (ページ単位)

https://graph.facebook.com/[OBJECTID]?limit=[X]&offset=[X*PAGENo]

答えがあなたにとって十分に明確であることを願っています。

于 2011-10-12T16:13:21.437 に答える