facebook-api - 如何以尽可能少的电话和健壮的方式检索用户的所有朋友的事件?

时间:2013-11-10 03:48:33

标签: javascript facebook facebook-graph-api

在从Facebook服务器获取数据方面,sounds like我应该尽可能减少对API的调用次数。

我想要做的是将登录用户的事件与他们朋友的每个事件进行比较。如果我尝试一次性请求我的所有活动以及我朋友的所有活动,我会从Facebook收到一个未知错误。一些搜索建议这是由于请求的大小。此外,当我搜索个人朋友的事件时,我可以使用相同的权限令牌将其事件恢复正常,这表明它不是权限问题。

此外,我收到的错误是我是从Graph API资源管理器还是从浏览器控制台调用,这表明它不是js sdk问题。

FWIW,这是我用来获取错误的电话

211600268?fields=id,events,friends.fields(events)

上面使用的id是我的facebook id:)

我已阅读过有关使用分页的内容,我认为这可能有所帮助。但是,我不确定我应该打破多少请求。我应该采取的方法,尽可能大的调用(即允许== facebook不会抛出'未知'错误)或者是否存在某种启发式/经验法则?

另外,一旦我理解了主要请求应该被打入多少个电话,我如何使用分页来说“好的facebook api,请给我我朋友的活动的前半部分”然后“好的facebook api,请把我朋友活动的另一半给我?“

2 个答案:

答案 0 :(得分:1)

不幸的是,我得到的最佳答案是我自己的答案。我不会在这里包含代码中的所有细节,因为它们很丑陋并且不重要IMO,但这里是要点。似乎没有太多人对这个问题的答案感兴趣所以我不会浪费我的时间来充实它。但如果您想了解更多细节,我将很乐意详细说明。

我使用FB.login获取我需要的权限。

成功回调FB.login FB.api('/ me'...)获取用户的id

成功回调FB.api('/ me'...) FB.api调用以获取用户的事件和朋友列表

成功回调此FB.api电话 我使用另一个FB.api电话来获取朋友的活动详情(朋友A)。然后我请求另一位朋友的活动详情(朋友B)作为成功回调来获取朋友A的详细信息。然后我递归地继续这个,直到所有的朋友事件都被覆盖。

这种方法在我的口中留下了不好的味道,所有成功的回调都相互改变,需要很长时间(约2分钟)才能进行分析。但这就是我所拥有的一切。

答案 1 :(得分:1)

据我所知,fb权限最近已更改,您可以获得的是使用您的应用的用户朋友列表。 (意味着所有未使用您应用的用户的朋友都会丢失): https://developers.facebook.com/docs/apps/changelog/ 这会影响你的代码吗? 我正在进行一个类似的项目,并希望合作或寻求建议。 请随时给我打电话:))