Facebook Graph API v1.0 JSON返回对象的数据大小限制?

时间:2014-05-14 03:30:24

标签: facebook facebook-graph-api facebook-fql

Facebook的Graph API是否对从查询返回的JSON对象的大小有某种限制?

当我请求很多用户的朋友信息时,我有时会收到错误代码1 - 未知错误。当我为拥有大量Facebook好友(200及以上)

的用户运行以下查询时会发生这种情况
me/friends/?fields=id,name,gender,birthday,cover,significant_other,languages,education,work,
checkins.limit(1).fields(place,id,created_time),
likes.limit(5).fields(id,name,created_time),
statuses.limit(5).fields(message,updated_time),
movies.limit(5).fields(name,created_time,id),
music.limit(5).fields(name,created_time,id),
books.limit(5).fields(name,created_time,id),
games.limit(5).fields(name,created_time,id),
interests.limit(5).fields(name)

我在Graph Explorer上试过这个并且它返回了这个错误

{
  "error": "Request failed"
}

如果我与更少的朋友(125左右)运行相同的请求,我会收到我期望的所有数据。

似乎错误正在发生,因为返回的JSON中的字节数大于某个阈值,但我还没有看到文档中的任何内容来证实这一点。

会导致此错误的原因是什么?以前有人遇到过这个问题吗?有关如何减轻这种情况的任何想法吗?

我考虑过的解决方案

  • 限制返回的朋友数量,如果错误仍然发生,请降低下一批次的限制,如果仍然发生错误,再次降低限制等等 - 这个解决方案并不理想,但很可能适用于大多数情况
  • 将查询拆分为多个请求 - 这种方法会显着增加API调用(存在限制风险),因为它不再是一个分页请求的一部分
  • 使用FQL代替图谱API - 我还没有对此做过足够的研究,但我相信我必须一次查询每个实体(喜欢,签到等),这会增加API调用显着和风险限制

最后,所有这些解决方案在某种程度上仍然存在相同的未知错误,因为我无法预测将返回的对象的大小(状态消息可能是几个字或几个段落)。在关闭和实现解决方法之前,理解这个错误的原因是理想的。

提前致谢!

0 个答案:

没有答案