2012-10-15 34 views
0

这似乎是不可能的,因为现在..谁能给我一个合适的查询或一组查询,可以做到这一点?基本上,我需要我所有的朋友的签到:他们自己检查过的内容,他们用照片检查过的内容,其中一个不是我的朋友的用户给他们加了标签。FQL获取我所有的朋友的签入?

我的第一个尝试是这样的:

SELECT checkin_id, author_uid, page_id, coords, tagged_uids, timestamp FROM checkin WHERE (author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR author_uid=me()) ORDER BY timestamp DESC LIMIT 50

但是,这并不包括带有图片的签入。

我的第二次尝试是这样的:

SELECT id, author_uid, app_id, timestamp, tagged_uids, page_id, page_type, coords, type FROM location_post WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1=me())

但是像WHERE子句表明,我们只想找这是由朋友创建签入,但不是这样的,其中我的朋友的标签。

我的下一个尝试是这样的:

SELECT id, author_uid, app_id, timestamp, tagged_uids, page_id, page_type, coords, type FROM location_post WHERE tagged_uids IN (SELECT uid2 FROM friend WHERE uid1=me())

,但它只是返回一个空的数据集,因为它也许应该。

如此短暂提交500次多元的查询,每一个朋友的,是有办法做到这一点?

任何指针非常感谢!

感谢,
Teja公司

回答

0

这是否需要在FQL或将图形API不能满足这个?

/me/friends?fields=checkins,虽然很慢(警告:有很多的朋友,这可能完全超时),返回我的好友列表以及他们最近签入的数组(以及那些签入喜欢,评论等)

你也可以把它分解成网友批有更好的表现?

/?fields=checkins&ids=[CSV LIST OF FRIENDS TO CHECK]

+0

你好,我是很新的API,所以我不知道这是一个选项。我刚刚尝试了这一点,但我非常快速地达到了600个请求/ 600秒的速率限制(每2-3个请求)。即使我提交了一个请求,我仍在猜测,不知何故,它们被视为内部每个朋友的单独请求?而AFAIK,这些是每个应用程序的限制,而不仅仅是每个用户的限制。有什么办法可以解决这些问题吗? –

+0

限制是每个用户会话(即每个访问令牌) - 据我所知,对所有朋友的数据的调用应被视为单个调用,但也有CPU使用限制,这些限制更难计划 - 如果您再次触及这些内容,您的应用内容就会被提及 – Igy

0

最近,我试图解决同样的问题,发现通过/我使用图形/朋友栏=签到太很慢就可以使用,有时会完全超时。

我对面的搜索功能,虽然,这似乎做什么我(也许你)要跌倒。

引述Facebook的文档:

签到地点:https://graph.facebook.com/search?type=checkin(此请求 回报您或您的朋友的最新的签入,或您或 你的朋友已经被标记签;目前,它不接受水性= 参数。)

这里有万吨以上的例子下搜索:https://developers.facebook.com/docs/reference/api/

1

我们还可以使用下面的FQL得到其朋友被标记的朋友签入和签入:

SELECT checkin_id FROM checkin WHERE author_uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) OR tagged_uids IN (SELECT uid2 FROM friend WHERE uid1 = me())