图谱 API 概览中包含图谱 API 术语和结构等基本信息。本文将详细介绍 API 请求的结果。
在向节点或连线发出 API 请求时,您通常不会在单个响应中收到该请求的全部结果。这是因为某些响应可能包含数千个对象,因此大多数响应都将默认分页。
基于游标的分页是最有效的分页方法,建议您尽可能使用这种方法。游标是一个随机字符串,用于标记数据列表中的特定项目。游标会始终指向项目,但如果该项目遭到删除或移除,游标即会失效。因此,您的应用不应存储游标,或假定游标日后依旧有效。
读取支持游标分页的连线时,您将看到以下 JSON 响应:
{
"data": [
... Endpoint data is here
],
"paging": {
"cursors": {
"after": "MTAxNTExOTQ1MjAwNzI5NDE=",
"before": "NDMyNzQyODI3OTQw"
},
"previous": "https://graph.facebook.com/{your-user-id}/albums?limit=25&before=NDMyNzQyODI3OTQw"
"next": "https://graph.facebook.com/{your-user-id}/albums?limit=25&after=MTAxNTExOTQ1MjAwNzI5NDE="
}
}游标分页的连线支持以下参数:
before:这是指向已返回的数据页面开头的游标。after:这是指向已返回的数据页面末尾的游标。limit:这是可能返回的最大对象数量。由于应用了筛选条件,查询操作返回的结果可能少于 limit 值。如要查看您的查询是否已涵盖整个数据列表,请使用如下所述的方式(不包含 next),而不要依赖小于 limit 值的结果数。例如,如果您将 limit 设置为 10 但返回 9 个结果,则可能有更多数据可用,但是有一个项目由于隐私筛选条件而被删除。为提升性能,也可为某些连线设置最大的 limit 值。所有情况下,API 都将返回正确的分页链接。next:将返回下一页数据的图谱 API 端点。如果未包含,则显示的是最后一页数据。根据分页的可见性和隐私,页面可能为空,但包含 next 分页链接。next 链接不再出现时,应停止分页。previous:将返回上一页数据的图谱 API 端点。如果未包含,则显示的是第一页数据。请勿存储游标。如果添加或删除了项目,游标可能很快就会失效。
时间分页使用指向数据列表中特定时间的 Unix 时间戳在结果数据中导航。
使用采用时间分页的端点时,您将看到以下 JSON 响应:
{
"data": [
... Endpoint data is here
],
"paging": {
"previous": "https://graph.facebook.com/{your-user-id}/feed?limit=25&since=1364849754",
"next": "https://graph.facebook.com/{your-user-id}/feed?limit=25&until=1364587774"
}
}基于时间分页的连线支持以下参数:
until:Unix 时间戳或指向基于时间的数据范围末尾的 strtotime 数据值。since:Unix 时间戳或指向基于时间的数据范围开头的 strtotime 数据值。limit:这是可能返回的最大对象数量。由于应用了筛选条件,查询操作返回的结果可能少于 limit 值。如要查看您的查询是否已涵盖整个数据列表,请使用如下所述的方式(不包含 next),而不要依赖小于 limit 值的结果数。例如,如果您将 limit 设置为 10 但返回 9 个结果,则可能有更多数据可用,但是有一个项目由于隐私筛选条件而被删除。为提升性能,也可为某些连线设置最大的 limit 值。所有情况下,API 都将返回正确的分页链接。next:将返回下一页数据的图谱 API 端点。previous:将返回上一页数据的图谱 API 端点。如要获得一致的结果,需要指定 since 和 until 参数。此外,建议时间差异最大为 6 个月。
如果时间顺序对您不重要,且您只需要返回特定数量的对象,则可以使用偏移分页。只有连线不支持基于游标或时间的分页时,才能使用这种分页方法。
基于偏移分页的连线支持以下参数:
offset:这将按指定的数字偏移每个页面的开头。limit:这是可能返回的最大对象数量。由于应用了筛选条件,查询操作返回的结果可能少于 limit 值。如要查看您的查询是否已涵盖整个数据列表,请使用如下所述的方式(不包含 next),而不要依赖小于 limit 值的结果数。例如,如果您将 limit 设置为 10 但返回 9 个结果,则可能有更多数据可用,但是有一个项目由于隐私筛选条件而被删除。为提升性能,也可为某些连线设置最大的 limit 值。所有情况下,API 都将返回正确的分页链接。next:将返回下一页数据的图谱 API 端点。如果未包含,则显示的是最后一页数据。根据分页的可见性和隐私,页面可能为空,但包含 next 分页链接。next 链接不再出现时,应停止分页。previous:将返回上一页数据的图谱 API 端点。如果未包含,则显示的是第一页数据。请注意,如果正在分页的项目列表添加了新的对象,每个基于偏移的页面的内容都将发生更改。
并非所有 API 调用都支持基于偏移的分页。如要获得一致的结果,建议您使用我们在响应中返回的 previous/next 链接分页。
如果对象返回很多项目(例如数以万计的评论),则您在分页时可能会遭到限制。如果您的应用达到了游标限制,API 将返回以下错误提示:
{
"error": {
"message": "(#100) The After Cursor specified exceeds the max limit supported by this endpoint",
"type": "OAuthException",
"code": 100
}
}