2012-04-04 59 views
5

我正在创建一个新的Facebook应用程序,并附有一些操作,例如Spotify上的'收听xxx'。发布到Facebook图API速度很慢

麻烦的是,通话需要大约6-7秒,这是相当长的时间。在我的代码下面是curl_getinfo的结果。它应该是这样慢吗?

$attachment = array(
     'access_token' => $access_token, 
     'album' => 'sergeant peppers', 
    ); 

    $opts = array(
     CURLOPT_CONNECTTIMEOUT => 10, 
     CURLOPT_RETURNTRANSFER => true, 
     CURLOPT_TIMEOUT => 60, 
     CURLOPT_USERAGENT => 'facebook-php-3.1', 
     CURLOPT_POST => true, 
     CURLOPT_POSTFIELDS => $attachment, 
     CURLOPT_URL => 'https://graph.facebook.com/me/APPNAME:listening' 
    ); 
    $ch = curl_init(); 
    curl_setopt_array($ch, $opts); 
    $result = curl_exec($ch); 
    $info = curl_getinfo($ch); 
    curl_close($ch); 

curl_getinfo结果:

[url] => https://graph.facebook.com/me/APPNAME:listening 
[content_type] => text/javascript; charset=UTF-8 
[http_code] => 400 
[header_size] => 557 
[request_size] => 238 
[filetime] => -1 
[ssl_verify_result] => 0 
[redirect_count] => 0 
[total_time] => 6.002449 
[namelookup_time] => 0.024892 
[connect_time] => 0.179322 
[pretransfer_time] => 0.77444 
[size_upload] => 362 
[size_download] => 212 
[speed_download] => 35 
[speed_upload] => 60 
[download_content_length] => 212 
[upload_content_length] => 362 
[starttransfer_time] => 1.775707 
[redirect_time] => 0 
[certinfo] => Array 
    (
    ) 

[redirect_url] => 

回答

5

那么,你已经得到了http 400返回(坏请求),这表明出了问题。也许如果你的请求正确,请求会更快?

这篇文章:php cURL error in facebook api 表明您应该删除“CURLOPT_POST =>真正的” 我还建议增加“CURLOPT_VERIFYPEER =>假”,如果你仍然有问题。

+0

+1。接得好!我完全错过了这个问题陈述。 – MrGomez 2012-04-09 21:35:59

+0

谢谢,原来我需要使用扩展的OAuth对话框,并且offline_access已折旧。完全掠过400自己。 – bluedaniel 2012-04-10 12:28:44

+2

修复后的回复时间如何? – jornare 2012-04-10 19:32:37

0

不,事实并非如此。This answer更详细地讨论了Facebook Graph API的预期计时,但其问题诊断不适用于您的问题。

发现瓶颈的最佳方法是网络诊断,例如traceroute,dig以及cURL的剖析功能(如您在此处所示)。如果您在不同地区有同行,则还可以尝试从该位置进行分析以查看发生了哪些变化。

祝你好运。这是非常热门的信息,但它应该足以让你开始。