Swift Facebook Graph API批量请求过滤?

Swift Facebook Graph API批量请求过滤?,swift,facebook-graph-api,facebook-batch-request,Swift,Facebook Graph Api,Facebook Batch Request,问题是: 我的批处理请求返回传递的组事件,当前批处理请求将随着用户创建未来事件而严重扩展 我有以下批处理请求: { "batch": [ { "method": "GET", "relative_url": "me" }, { "method": "GET", "rel

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

我有以下批处理请求:

{
   "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用作相对URL时不起作用:

me/groups?fields=events{id,name,start_time}&since=1599036240
过滤器参数为:

since=MY_CURRENT_TIME
我读的文档没有多大帮助。我甚至不知道是否可以在批处理请求中添加过滤器(字段)。 ()

我还在FBs开发论坛上问了同样的问题,但没有回答(到目前为止):

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

@CBroe指出,批处理请求URL的工作方式应与独立请求相同。这让我相信我的
相对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
——在这种情况下,指定
,因为
作为与
字段
相同“级别”上的附加GET参数将不起作用。
原因是您可以通过这种方式从多个端点请求数据-
?fields=events,somethingelse&since=…
-我们是否希望通过
since
值过滤
事件的结果,或者
somethingelse
,这里的值是模糊的

因此,这里需要使用字段扩展语法:

?fields=events.since(1599036240){id,name,start_time}
通过这种方式,
since
参数在这里显式地绑定到
事件
端点(您可以在这里为第二个端点指定
somethingelse.since(…)


(参数的顺序必须是,
事件{id,name,start_time}。由于(…)
会给出语法错误,字段列表首先是
{…}
,然后查询解析器不理解点语法。)

“以下查询URL在使用相对URL时不起作用”-这是用户现在的事件,你是指这里的那些,还是我们在谈论组事件?批处理请求不应该改变单个请求的工作方式。如果可以过滤端点,那么在批处理中应该以相同的方式工作。但是
me/groups?fields=events{id,name,start_time}&since=1598509165
本身已经为我返回了2017年和2018年的事件。(我不知道这是否是因为缺少更多的最新事件;我不知道API是否决定通过
,因为
如果没有其他数据?@CBroe感谢您的快速响应和反馈。我复制了错误的URL。使用组事件URL更新了答案。但是
me/groups?fields=events{id,name,start_time}&since=1599036240
直接执行,而不是在批处理中执行,会得到您期望的正确结果?@CBroe具有正确时间(现在)的请求返回空数组。我已经用用户事件对此进行了测试。用户事件URL如下所示:me/events?fields=end\u time、start\u time、id、name&since=1599036240谢谢“超过9000”。有关于Facebook Graph API的深入教程吗?您是否认为我的请求不正确或响应不正确(这是我根据不正确的请求得到的)?下面介绍了字段扩展,并且“不正确”的请求没有给出任何语法错误,这也是不可预期的,在本例中,只是参数的组合没有达到预期的结果,但这并不是真正的语法错误。此外,API通常对添加的其他GET参数“宽容”,您可以执行
me?fields=id,name&foo=bar
,这也不会导致错误。