我在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来测试此查询。资源管理器允许您通过他们的应用程序或任何您自己的应用程序执行查询。它允许使用应用程序访问令牌或用户访问令牌。
所以这是(令人沮丧的)底线:
我非常确定有关事件是公开的。此外,我个人并不喜欢粉丝页面或加入活动。所以我不知道为什么我的用户访问令牌似乎有足够的权限来访问事件,但应用程序访问令牌没有。
你知道吗? :)注意:相同的代码与其他粉丝页面完美匹配。因此,语法错误等微不足道的错误不是问题所在。
答案 0 :(得分:1)
这是预期的行为,因为您要查询特定于用户的数据(使用event_member表上的子查询)。
请参阅此处的文档。 https://developers.facebook.com/docs/reference/fql/event_member/#permissions
他们正在陈述
非公开活动的 user_events 权限或查看所有活动 用户正在参加
如果您使用Graph API Explorer,则您作为用户授予应用访问数据的权限(用户访问令牌)。
另外,我想知道你的FQL是否真的符合你的要求:子查询中的uid会不会是Page ID?