问题:我的批处理请求返回已传递的组事件,当前批处理请求将随着用户创建未来事件而严重扩展。
我有以下批量请求:
{
"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¬if_t=developer_community_forum_thread_update&ref=通知
我还在FBs开发论坛上问了同样的问题,但没有得到回答(到目前为止(:https://developers.facebook.com/community/threads/325616225418947/?notif_id=1599002283105969¬if_t=developer_community_forum_thread_update&ref=通知
更新1(2020年9月2日(:
@CBroe指出,批处理请求URL的工作方式应与独立请求相同。这让我相信我的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"
}
],
符合过滤不适用于CCD_ 2和包含CCD_。
这里的问题是提供参数的格式。
如果您直接通过events
端点,那么以这种方式提供since
参数将起作用:/group-id/events?since=…
但您没有使用该格式,而是通过me/groups?fields=events
进行操作,在这种情况下,将since
指定为与fields
相同"级别"的附加GET参数是行不通的
原因是您可能会以这种方式从多个端点请求数据-?fields=events,somethingelse&since=…
-我们是否希望通过此处的since
值来筛选events
或somethingelse
的结果,这将是模糊的。
因此,这里需要使用字段扩展语法:
?fields=events.since(1599036240){id,name,start_time}
通过这种方式,since
参数在此处显式绑定到events
端点(您可以在此处为第二个端点指定不同的somethingelse.since(…)
。(
(参数需要按此顺序排列,events{id,name,start_time}.since(…)
会给出语法错误,字段列表首先是{…}
,然后查询解析器无法理解点语法。(