7

特定のグラフステータス更新オブジェクトにコメントがいくつあっても、コメントの上限が25になる理由を誰かが知っていますか?オブジェクトに対する実際のコメントの「サンプル」のみが返されるように感じます。FQL APIを使用せずにすべてを取得するように強制するにはどうすればよいですか?

4

1 に答える 1

1

これは、GraphAPIが機能する方法です。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);
于 2011-09-22T12:27:22.397 に答える