2012-04-04 62 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的剖析功能(如您在此處所示)。如果您在不同地區有同行,則還可以嘗試從該位置進行分析以查看發生了哪些變化。

祝你好運。這是非常熱門的信息,但它應該足以讓你開始。