Facebook 连接图状态对象的评论上限为 25
Posted
技术标签:
【中文标题】Facebook 连接图状态对象的评论上限为 25【英文标题】:Facebook connect graph status objects have comments capped at 25 【发布时间】:2011-01-20 08:03:36 【问题描述】:有谁知道为什么无论给定图形状态更新对象有多少个 cmets,它都会将 cmets 限制在 25 个?我有一种感觉,它只返回对象上实际 cmets 的“样本”。如何在不使用 FQL API 的情况下强制它全部获取?
【问题讨论】:
它根本不会限制我的 4。您的 FQL 查询是什么? 对不起伙计,我在你下面稍微改变了问题 【参考方案1】:这正是 Graph API 的工作方式。查看 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);
【讨论】:
以上是关于Facebook 连接图状态对象的评论上限为 25的主要内容,如果未能解决你的问题,请参考以下文章
Facebook Graph API 不提供任何早于 2011 年的数据?