有谁知道为什么给定的图形状态更新对象有多少评论,它将评论在25点上加上评论?我觉得它只会返回对象上实际评论的“示例”。我该如何强迫它在不使用FQL API的情况下将它们全部拿到?

有帮助吗?

解决方案

这就是图API的工作方式。看看API文档。您一次获得25个,必须循环通过它们。您可以将批处理中最后一个注释的时间戳(create_time)用作下一个图形API调用中的参数,也可以使用 offset 范围。这就是我一直在做的。我遇到了一些螺丝 created_time. 。这是我的C#测试应用程序中的一个示例。忽略对 PostComment 对象只是我创建的数据结构,以保存要删除的数据。魔术(以及我引用的过程)是在传递给图形呼叫的参数中:

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);

其他提示

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top