我在PHP中使用FQL自动获取由列表上的任何粉丝页面创建的所有未来(公共)事件。对于大多数页面,该过程可以完美地工作,但是有些页面根本不返回任何事件。
这里是获取某个风扇页面所有事件的FQL。在我写这篇文章的时候,它有一个未来的事件。
SELECT
eid, name, pic_cover, start_time, end_time, location, description, attending_count
FROM
event
WHERE
eid IN ( SELECT eid FROM event_member WHERE uid = xxxxx )
AND
(start_time >= now() OR end_time >= now())
ORDER BY
start_time ASC
你可以使用Facebook的Graph API Explorer测试这个查询。资源管理器允许您通过它们的应用程序或您自己的任何应用程序执行查询。它允许使用应用程序访问令牌或用户访问令牌。
所以这是(令人沮丧的)底线:
- 当资源管理器使用用户访问令牌通过默认的"图形API资源管理器"应用程序执行此查询时,将找到该事件。
- 当资源管理器使用应用程序访问令牌通过我自己的任何应用程序执行此查询时,事件是未找到。
- 当浏览器使用用户访问令牌通过我自己的任何应用程序执行此查询时,事件被找到。
你知道吗?:)
注意:相同的代码与其他粉丝页面完全相同。所以像语法错误这样的小错误不是问题。
这是预期的行为,因为您正在查询特定于用户的数据(使用event_member表上的子查询)。
查看这里的文档。
https://developers.facebook.com/docs/reference/fql/event_member/权限他们在说
user_events非公共事件或查看所有事件的权限用户正在参加
如果你使用图形API资源管理器,你作为一个用户授予应用程序访问你的数据的权限(用户访问令牌)。
另外,我想知道你的FQL是否真的是你想要的:你的子查询中的uid是页面ID吗?