Facebook API响应非常缓慢(oAuth)

8
我正在对我的Web应用程序进行基准测试,并注意到从Facebook API返回的响应比Twitter慢得多。

**值得一提的是,我正在使用 twitter-async库来进行Twitter API集成,而Facebook则使用自己的库here

使用Twitter库,我可以保存oAuth令牌和密码,然后使用它们创建一个实例并进行调用,很简单。 对于Facebook,除非要求offline_permission,否则我必须存储oAuth代码并每次用户登录我的应用程序时重新创建oAuth访问令牌。

鉴于以上情况,我可以:

0.02秒内检索Twitter用户时间线。

1.16秒内获取FB oAuth访问代码,然后我可以在 2.31秒内获取用户详细信息,总共 3.47秒获取用户详细信息。

这些统计数据来自于Facebook提供的PHP API库中的函数。 我还尝试了实现自己的CURL函数以通过请求获取此信息,但结果并没有好多少。

这是其他人使用Facebook API得到的响应时间吗?除了请求离线权限和存储永久访问令牌之外,我还能通过什么方式加快这些请求的速度?问题出在我的端还是Facebook的端?谢谢,Chris。

欢迎来到为Facebook开发的有趣世界。 :-) - ceejayoz
2个回答

7
我也有使用 Facebook API 缓慢的经历。我认为,在 API 调用方面,Facebook PHP API 并没有比 CURL 更出色,因此这并没有提高速度。
我在画布页面上工作,这意味着对于现有用户,当他/她进入时我会获取访问令牌和 fb_UID。起初,我执行 /me 图形调用和有时是 /me/friends。第一个需要大约 0.6 秒,第二个通常需要更长时间。因此,在这种情况下,我(在某种程度上)可以确认你的发现。
这就是为什么我现在转而将重要内容存储在本地,并仅在需要时更新它(实时更新 API)。基本上,在“正常”操作期间,我不需要任何 API 调用。
我意识到您可能正在自己的页面上集成 FB,并且可能使用的信息不止名称、fb-UID 和朋友,因此这个解决方案并没有完全回答您的问题。但也许它仍然可以作为解决难题的一小部分 ;)。
我也期待其他人对此的看法!

0
我的应用程序从 Facebook 调用多个 URL。这需要一些时间 :/ 这就是为什么我决定编写一个函数,将结果存储在 $_SESSION 中,以便稍后再次使用,同时附带一个时间戳来查看数据是否过时。
这并没有解决实际问题,只是避免了重复获取数据。
为了改善用户体验,我喜欢将其转发到带有加载 .gif 的页面,然后使用 JavaScript 请求实际获取数据的页面。这样,用户就可以保持在一个带有漂亮 gif 的加载页面上,直到下一页准备好。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接