无论是使用 Facebook PHP SDK,还是仅仅使用 curl 加载数据$contents = file_get_contents("https://graph.facebook.com/$id?access_token=$accessToken")
,响应都需要大约一秒钟的时间。
当我需要检查一堆 id 的数据时,这算得很慢。
在浏览器中,如果我输入一个 facebook 图表 url,我几乎可以立即得到结果,不到 PHP 所用时间的十分之一。
是什么导致了这个问题,我怎样才能让它像在任何浏览器中一样快?我知道浏览器可以做到。也必须有一种方法可以在 PHP 中使其快速。
IDEA:也许我需要在 cURL 中配置一些东西?
我试过的:
- 使用 PHP SDK。一样慢。我首先尝试使用的原因
file_get_contents()
是因为我希望 PHP SDK 没有正确配置。 - 使用
setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
. 这并没有什么不同。回答后接受编辑:实际上,这与重用 curl 句柄一起使后续请求非常快。
编辑:这是我用来测量执行请求所需时间的代码的 pastebin:http: //pastebin.com/bEbuqq5g。我将以前说微秒的文本更正为秒。这就是产生类似于我在这个问题的评论中所写的结果的结果:Facebook 图表在 PHP 中非常慢。另请注意,即使访问令牌已过期,它们也会花费类似的缓慢时间,就像在我的 pastebin 示例中一样。
编辑 2: ssl 应该有部分问题。我尝试对http://graph.facebook.com/4(无 httpS)进行基准测试,结果三个请求需要 1.2 秒,而同样的,但使用 https 需要 2.2 秒。但这绝不是一个解决方案,因为对于任何需要访问令牌的请求,我必须使用 https。