使用JS SDK调用FB Graph API无法获取即将举办活动仅能查已结束活动如何解决
问题原因
Facebook Graph API 的 /{page_id}/events 端点默认仅返回已结束的活动数据,需要主动添加时间筛选参数才能获取指定时间范围的活动。
解决方法
在GET请求参数中添加 time_filter 字段,指定为 upcoming 即可获取所有即将举办的活动:
FB.api( '/{page_id}/events', 'GET', {'access_token':'{token}', 'time_filter': 'upcoming'}, function(response) { // 处理返回的活动数据 });
如果需要自定义查询的时间范围,也可以传入时间戳格式的 since 和 until 参数来限定区间:
// 示例:查询当前时间起未来90天内的所有活动 const sinceTimestamp = Math.floor(Date.now() / 1000); const untilTimestamp = sinceTimestamp + 90 * 24 * 3600; FB.api( '/{page_id}/events', 'GET', { 'access_token':'{token}', 'since': sinceTimestamp, 'until': untilTimestamp }, function(response) { });
注意事项
- 公开页面的公开活动无需额外权限即可查询,非公开活动需要页面访问令牌拥有对应权限才能读取
time_filter除了upcoming之外,还支持past(查询已结束活动)、all(查询全部活动)两个取值
内容的提问来源于stack exchange,提问作者david walter
相关产品推荐
相关产品推荐

