Facebook Connectグラフステータスオブジェクトには、25でキャップされたコメントがあります
-
13-10-2019 - |
質問
特定のグラフステータスアップデートオブジェクトがどれだけコメントしていても、コメントを25に制限する理由を知っている人はいますか?オブジェクトの実際のコメントの「サンプル」だけを返すと感じています。 FQL APIを使用せずにすべてを取得するように強制するにはどうすればよいですか?
解決
これは、グラフAPIの動作方法です。 APIドキュメントをご覧ください。一度に25を取得し、それらをループする必要があります。次のグラフAPI呼び出しのパラメーターとして、バッチの最後のコメントのタイムスタンプ(created_time)を使用するか、 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);
他のヒント
このリンクがあなたに役立つことを願っています
所属していません StackOverflow