据说FQL将不再可用:
FQL仍然可以在2.0版本中使用,但在下一版本的平台中不可用。提供此早期警告,以便开发人员可以尽快开始将FQL迁移到Graph API。 https://developers.facebook.com/docs/apps/upgrading
如果您需要将FQL查询迁移到Graph API,您可能会遇到哪些陷阱?
答案 0 :(得分:1)
在我看来,问题是你需要为同样的结果做更多的api请求。
如果要查找所关注页面已发布的所有事件,可以运行以下fql查询:
SELECT eid, name, start_time, end_time, location, venue, description
FROM event WHERE eid IN ( SELECT eid FROM event WHERE creator IN
(SELECT page_id FROM page_fan WHERE uid = 'YOUR_UID') )
ORDER BY start_time desc AND start_time > now()
这会将所有事件一起返回。要在图形API中复制它,您需要发出更多请求。所以使用以下伪代码:
my_likes = request /me/likes
for each page_id in my_likes
events[page_id] = request /{page_id}/events
我们得到一个页面列表请求,然后一个请求每个页面(可能是数百个),而不是第一个示例中的一个fql查询。
EDIT :: ============================================ =
避免增加http请求的方法是使用图形api的nested request语法(正如OP在其评论中指出的那样)。
这允许您链接请求,以便在返回到您的应用程序之前在服务器端执行这些请求。因此,如果在嵌套请求语法中重写,上述请求将变为
https://graph.facebook.com/v2.0/me?fields=likes.fields(events)
其中对第一个请求返回的每个页面节点(在示例中,用户喜欢的所有页面)都进行了对事件字段的第二次请求。所以实际上,在这里删除FQL会产生更简洁的查询字符串。
答案 1 :(得分:0)
如果您需要将FQL查询迁移到Graph API,您可能会遇到哪些陷阱?
因此没有陷阱,您从fql表访问的基本和相关字段也可以与Graph API端点一起使用。但是,有些领域可能不是 - 唯一的陷阱!
答案 2 :(得分:0)
事实上,有些表已被弃用。
我肯定知道 -
location_post (也可能签到)
用户表中的 mutual_friends_count字段现在几乎总是返回null(这是整个'你不知道我的朋友改变了谁的结果)