2012-02-15 6 views
2

Facebook에서받은 offline_access 토큰이 유효하지 않을 수 있음을 알고 있습니다 (예 : 사용자가 비밀번호를 변경 한 경우). 이 경우 나는 던져진 예외를 잡아 내 사이트의 사용자에게 다시 권한을 부여해야합니다.offlineAccess 토큰이 유효하지 않은 OAuthException

그렇다면 정확한 오류 코드/메시지는 무엇입니까? 나는 그것이 OAuthException 인 것을 알고있다. 그러나 코드를 얻을 수 없었다. 많은 다른 OAuthException -s가 있기 때문에 형식 만 사용할 수 없습니다.

내 계획은 다음과 같습니다 base_facebook.php를 변경하고 추가 할 경우 여기 핸들 - 보내고 코드 :

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; 
    } 

답변

0

처럼에 대한 래퍼 쓰기 누구든지 그것을 필요로하는 경우, 나는 어떻게 든 대답을 발견했다. 이러한 종류의 OAuthException에 대한 예외는 190입니다. 다음과 같이 예외가 발생했을 수 있습니다.

$ e-> getCode();

0

을 대신 SDK를 변경하는,에서

try{ 

$facebook->api("/me/feed", ....); 

} 
catch($e){ 

//Error Handling 
} 
+0

미안하지만, 이것은 내 질문에 대한 대답이 아닙니다. 물론 try-catch 블록에서 각 API 호출을 래핑하려고했습니다! 질문은 그 종류의 인증 문제를 잡는 정확한 예외가 무엇인지 ... – ArVan

관련 문제