【发布时间】:2020-12-21 05:41:12
【问题描述】:
问题: 我的批处理请求返回传递的组事件,并且当前的批处理请求将随着用户创建未来事件而严重扩展。
我有以下批处理请求:
{
"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/)
我还在 FBs 开发者论坛上问了同样的问题,但没有答案(到目前为止): https://developers.facebook.com/community/threads/325616225418947/?notif_id=1599002283105969¬if_t=developer_community_forum_thread_update&ref=notif
更新 1 (02.09.2020.):
@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"
}
],
符合过滤不适用于&since=1599036240 和包含{} 的URL。
【问题讨论】:
-
“使用 relative_url 时,以下查询 URL 不起作用” - 现在是用户的事件,您是说这里的那些,还是我们在谈论组事件?
-
批处理请求不应改变单个请求的工作方式。如果可以过滤端点,那么它应该以相同的方式批量工作。但是
me/groups?fields=events{id,name,start_time}&since=1598509165本身已经为我返回了 2017 年和 2018 年的事件。 (我不知道这是否可能是由于缺少更多当前事件;如果没有数据,我不知道 API 是否决定通过since?) -
@CBroe 感谢您的快速响应和反馈。我复制了错误的网址。用小组活动 URL 更新了答案。
-
但是
me/groups?fields=events{id,name,start_time}&since=1599036240直接执行,而不是在批处理中,会给您预期的正确结果? -
@CBroe 具有正确时间(现在)的请求返回一个空数组。我已经用用户事件对此进行了测试。用户事件 URL 如下所示:me/events?fields=end_time,start_time,id,name&since=1599036240
标签: swift facebook-graph-api facebook-batch-request