Facebook Graph API 批量请求过滤?

Facebook Graph API Batch Request Filtering?

问题: 我的批处理请求 returns 传递了组事件,而当前的批处理请求将随着用户创建未来事件而严重扩展。

我有以下批量请求:

{
   "batch": [
   {
       "method": "GET",
       "relative_url": "me"
   },
   {
       "method": "GET",
       "relative_url": "me/groups?fields=events{id,name,start_time}"
   },
   {
        "method": "GET",
        "relative_url": "me/accounts"
   }
   ],
  "include_headers": "false"
}

此请求将获取(除其他外)所有用户组事件。我只需要即将发生的事件。

问题: 如何在批处理请求中应用过滤器?

以下查询 URL 在用作 relative_url 时不起作用:

me/groups?fields=events{id,name,start_time}&since=1599036240

过滤器参数为:

since=MY_CURRENT_TIME

我阅读的文档没有太大帮助。我什至不知道是否可以向批处理请求添加过滤器(字段)。 ( https://developers.facebook.com/docs/graph-api/making-multiple-requests/ )

https://developers.facebook.com/community/threads/325616225418947/?notif_id=1599002283105969&notif_t=developer_community_forum_thread_update&ref=notif

我也在 FBs 开发论坛上问过同样的问题,但没有答案(到目前为止): https://developers.facebook.com/community/threads/325616225418947/?notif_id=1599002283105969&notif_t=developer_community_forum_thread_update&ref=notif

更新 1(2020 年 9 月 2 日):

@CBroe 指出批处理请求 URLs 应该与独立请求一样工作。这让我相信我的 relative_url 没有正确过滤。测试:

me/groups?fields=events{id,name,start_time}&since=1599036240

输出:

events": {
        "data": [
          {
            "id": "324058568947509",
            "name": "Testing FB Graph API",
            "start_time": "2020-08-25T15:00:00+0200"
          }
        ],

符合过滤不适用于 &since=1599036240 和包含 {}.

的 URL

这里的问题是提供参数的格式。

如果您直接通过 events 端点,则可以通过这种方式提供 since 参数:/group-id/events?since=…

但您没有使用该格式,您将通过 me/groups?fields=events - 在这种情况下,将 since 指定为与​​ [=16= 相同“级别”的附加 GET 参数] 不行。
原因是您可以通过这种方式从多个端点请求数据 -
?fields=events,somethingelse&since=… - 我们是否要通过此处的 since 值过滤 eventssomethingelse 的结果,这会产生歧义。

所以,这里需要使用字段扩展语法:

?fields=events.since(1599036240){id,name,start_time}

这样,since 参数在此处明确绑定到 events 端点(您可以在此处为第二个端点指定不同的 somethingelse.since(…)。)

(而且参数需要按这个顺序,events{id,name,start_time}.since(…)会给出语法错误,字段列表首先是{…},然后查询解析器不理解点语法.)