2011-01-20 2 views
7

与えられたグラフステータス更新オブジェクトのコメント数に関係なく、25のコメントに上限がつきます。私はそれがオブジェクト上の実際のコメントの「サンプル」を返すだけの感覚を持っています。 FQL APIを使用しないで強制的にそれらをすべて取得するにはどうすればよいですか?Facebookのグラフステータスオブジェクトには25のキャップが付いているコメントがあります

+0

私は4時に全く帽子をかぶっていません。あなたのFQLクエリは何ですか? – ilteris

+0

申し訳ありませんが、私はちょっとあなたの下に質問を変更しました –

答えて

1

役立つことを願っています。 APIドキュメントを見てください。あなたは一度に25を取得し、それらをループする必要があります。バッチ内の最後のコメントのタイムスタンプ(created_time)を次のGraph APIコールのパラメータとして使用するか、offsetパラメータを使用できます。私は何をしてきたのですか?私はcreated_timeを使っていくつかのねじれに遭遇していました。これは私のC#テストアプリケーションの例です。私が引っ張っているデータを保持するために作成したデータ構造だけのPostCommentオブジェクトへの参照を無視してください。マジック(と私が参照してるプロセス)は、グラフAPI呼び出しに渡されるパラメータである:

parameters.Add("offset", numPostComments); 
parameters.Add("limit", 25); 

私はあなたが何も25以下に「制限」を設定することができますかなり確信しています。

do 
{ 
    foreach (var comment in comments.data) 
     { 
      numPostComments++; 
      PostComment pc = new PostComment(); 
      pc.Post_ID = p.Id; 
      pc.Facebook_ID = comment.id; 
      pc.From = comment.from.name; 
      if (comment.likes != null) 
       pc.Likes = (int)comment.likes; 
      pc.CommentDate = DateTime.Parse(comment.created_time); 
      pc.CommentText = comment.message; 
      p.Comments.Add(pc); 
     } 
     // Create new Parameters object for call to API 
     Dictionary<string, object> parameters = new Dictionary<string, object>(); 
     parameters.Add("offset", numPostComments); 
     parameters.Add("limit", 25); 

     // Call the API to get the next block of 25 
     comments = client.Get(string.Format("{0}/comments", p.Facebook_ID), parameters); 
} while (comments.data.Count > 0); 
1

私は、このリンクは、これはグラフAPIが動作するだけの方法ですあなた

How to move to the next page in Facebook JSON response using iOS SDK?

+0

ステータス更新の次のページまたは1つのステータス更新に関するコメントの次のページに移動しますか?それが後であれば、1回のヒットで100以上のステータスの更新を取得しているので動作しません。また、個々のヒントについて個別に多くのコメントを呼び出すことは極端に遅くなります。 –

+0

こんにちはマイクの質問、私は知らないと申し訳なく思って、最良の方法は、それを試して、それが何を確認することです – Yogesh

関連する問題