2009-08-11 61 views
0

我使用Jaisen製作的優秀課程:http://github.com/jmathai/twitter-async/tree/master。最近twitter已經上下了下來,我相信它將在未來繼續保持一致,所以我正試圖減少對實際工作中Twitter的依賴。處理Twitter的跌宕起伏 - API

以下是我在header.php中的內容,它位於頂部,它爲每個用戶生成登錄URL。如果Twitter關閉,我的網站只要需要就會掛起,並引發異常。所以我必須抓住我所完成的這些看法。

我現在想在幾秒鐘後取消對API的請求,只需加載頁面並在幕後繼續嘗試。我怎樣才能最好地做到這一點?

<?php include './twitter/EpiCurl.php'; include './twitter/EpiOAuth.php'; include './twitter/EpiTwitter.php'; 
$consumer_key = 'mykey'; 
$consumer_secret = 'mysecret'; 

$twitterObj = new EpiTwitter($consumer_key, $consumer_secret); 

try{ 

$twiturl = $twitterObj->getAuthenticateUrl(); 
$url = "window.open('".$twiturl."','Login', 'left=20,top=20,width=500,height=500,toolbar=0,resizable=1'); startLoad();"; 

}catch(EpiOAuthBadRequestException $e){ 
    // bad request exception do something 
    $statusMessage = 'Oops an error has occurred: ' . $e->getMessage(); 
}catch(EpiOAuthUnauthorizedException $e){ 
    // bad authorization..probably bad tokens, do something different 
    $statusMessage = 'Oops an error has occurred: ' . $e->getMessage(); 
}catch(EpiOAuthException $e){ 
    // uh oh, unknown oauth exception 
    $statusMessage = 'Oops, an unknown authorisation error has occurred! The mojo team have been notified! Please try again.'; 
} 

if(isset($statusMessage)){ 

} 
?> 

上述代碼的任何改進也將被讚賞。

感謝所有

回答

4

該庫支持將值傳遞給curl超時。

$twitterObj->setTimeout($secs_request_timeout); 

我只是增加了一個連接超時傳遞以及支持。無法運行單元測試,因爲我的速度有限。一旦我可以驗證它的工作,將會提交。

$twitterObj->setTimeout($secs_request_timeout, $secs_connection_timeout); 
+0

哈,一點也不像有包維護者新增功能,解決您的計算器問題;) – 2009-08-12 02:33:53

+0

非常感謝您Jaisen抽出時間來做到這一點。你搖滾! :) – Abs 2009-08-12 09:02:27

相關問題