我知道,即使從Facebook獲得的offline_access令牌也可能無效(例如,如果用戶更改了密碼)。在這種情況下,我需要捕獲拋出的異常,並提供我的網站用戶再次授權。Facebook OAuthException當offline_access令牌無效
那麼這種情況下拋出的確切錯誤代碼/消息是什麼?我知道這是一個OAuthException
,但無法獲得代碼。不能只使用該類型,因爲還有很多其他OAuthException
-s。
我的計劃是:改變base_facebook.php
和添加的情況下手柄-ING代碼在這裏:
protected function throwAPIException($result) {
$e = new FacebookApiException($result);
switch ($e->getType()) {
// OAuth 2.0 Draft 00 style
case 'OAuthException':
// OAuth 2.0 Draft 10 style
/*
* Need to add an appropriate case here.
*/
case 'invalid_token':
$message = $e->getMessage();
if ((strpos($message, 'Error validating access token') !== false) ||
(strpos($message, 'Invalid OAuth access token') !== false)) {
$this->setAccessToken(null);
$this->user = 0;
$this->clearAllPersistentData();
}
}
throw $e;
}
對不起,但這不是我的問題的答案。當然,我打算在try-catch塊中包裝每個API調用!問題是捕獲那些認證問題的確切例外是什麼...... – ArVan 2012-05-28 21:26:52