【问题标题】:Facebook API Responses Very Slow (oAuth)Facebook API 响应非常慢 (oAuth)
【发布时间】:2011-07-22 03:31:15
【问题描述】:

我正在对我的网络应用程序进行一些基准测试,并注意到来自 Facebook API 的响应比 Twitter 慢很多。

** 作为记录,我使用 twitter-async 库进行 Twitter API 集成和 Facebook 自己的库 here

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

鉴于上述情况,我可以:

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

1.16秒获取一个FB oAuth Access Code,然后我可以2.31秒获取用户详细信息,总共3.47秒获取用户详细信息。

这些统计数据来自使用 Facebook 在其 PHP API 库中提供的函数。我还尝试实现自己的 CURL 函数以通过请求获取此信息,结果也好不了多少。

这与其他人使用 Facebook API 获得的响应时间相同吗?

除了请求离线权限和存储永久访问令牌之外,我还能如何加快这些请求,是我的问题还是 Facebook 的问题?

谢谢,

克里斯

【问题讨论】:

  • 欢迎来到为 Facebook 开发的乐趣。 :-)

标签: php performance facebook api oauth


【解决方案1】:

我的应用程序从 Facebook 调用多个 URL。这确实需要一些时间:/ 这就是为什么我决定编写一个将结果存储在 $_SESSION 中的函数,以便我以后可以再次使用它,以及时间戳来查看数据是否太旧。

这并不能解决实际问题,它只是让您不必继续获取它。

我喜欢为最终用户体验做的是将它们转发到带有加载 .gif 的页面 - 然后让 javascript 请求实际获取数据的页面。这样一来,用户就会停留在加载页面上,并且可以看到漂亮的 gif,直到下一个页面准备就绪。

【讨论】:

    【解决方案2】:

    我也有 Facebook API 很慢的经验。我相信 facebook PHP API 在 API 调用的情况下仅包含 CURL,所以这并没有提高速度是有道理的。

    我在画布页面上工作,这意味着对于现有用户,我会在他/她进入时获得访问令牌和 fb_UID。起初,我进行了 /me 图形调用,有时还进行了 /me/friends。第一个需要 0.6 秒,第二个通常需要更多时间。所以在那种情况下,我可以(在某种程度上)证实你的发现。

    这就是为什么我现在切换到在本地存储重要内容并仅在需要时更新它(实时更新 API)。基本上,在“正常”操作期间我不需要任何 API 调用。

    我意识到您可能正在将 FB 集成到您自己的页面上,并且可能会使用比名称、fb-UID 和朋友更多的信息,并且该解决方案并不能完全回答您的问题。但也许它仍然可以作为拼图中的一小部分;)

    我也期待其他观点!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-01
      • 2014-08-07
      • 1970-01-01
      • 1970-01-01
      • 2021-07-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多