2012-01-30 10 views
5

otrzymuję ten błąd od czasu do czasu:błąd podczas weryfikacji dostępu Reklamowe

Fatal error: Uncaught Exception: 190: Error validating access token: This may be because the user logged out or may be due to a system error. thrown in ..base_facebook.php on line 1053

Problem jest, że mam go w losowych porach, bez żadnego ostrzeżenia. Mogę iść tygodniami bez zobaczenia go, a potem nagle się pojawi. Rozwiązanie? Możesz to poczekać. Zgłasza ten błąd przez około 15 minut, po czym możesz odświeżyć i pozwoli ci kontynuować to, co robiłeś.

Moje pytanie brzmi, czy to problem na moim końcu? A może jest to problem na Facebooku? To jest strona na Facebooku, jeśli to pomaga. Zrobiłem badania i odkryłem, że może to być spowodowane zapytaniem FQL. Ale czy nie byłby przynajmniej spójny? Wygląda na to, że jest całkowicie losowy. Oto moje zapytanie o FQL na wszelki wypadek.

$facebook->api(array('method' => 'fql.query','query' => "SELECT first_name,middle_name,last_name,email,affiliations FROM user WHERE uid=".$user)); 

Oto wiersze 1052-1071 z Base_Facebook,

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 
    case 'invalid_token': 
    // REST server errors are just Exceptions 
    case 'Exception': 
    $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; 

}

Dziękuję

+1

Jest to zdecydowanie [błąd Facebooka] (https://developers.facebook.com/bugs/179301482177807). – brainondev

+1

Chciałbym dodać, że ten błąd występuje również, gdy użytkownik dezaktywował swoje konto. – Chris

Odpowiedz

10

Jak napisano w How-To: Handle expired access tokens (link jest uszkodzony) programistów blogu

Access tokens for users can become invalid due to various reasons. In most cases, they can expire if it’s past the time specified by the expires field (by default access token have a 2 hour lifetime). What many developers do not realize is that an access token can also expire if a user changes her password, logs out or if she de-authorizes the app via the App Dashboard. It is very important that your apps handle such situations. If your access token expires, you need to reacquire a valid access token.

Zanim uzyskamy pozwolenie na uzyskanie tokena, który nie wygasa (chyba że użytkownik jest połączony z aplikacją), to uprawnienie jest teraz przestarzałe, patrz Deprecation of Offline Access Permission, aby zobaczyć, jak uzyskać access_token z dłuższym czasem wygaśnięcia.

Aktualizacja:
Począwszy od sierpnia 2012 Facebooku PHP-SDK have added simple way of extending access_token (patrz How to extend access token validity since offline_access deprecation więcej szczegółów)

Aktualizacja 2: Zauważ, że oryginalny blog-post z Facebook temat obsługi wygasłych tokenów robi” t już istnieje. Istnieje nowa dokumentacja, którą można wykorzystać do uzyskania szczegółowych informacji. https://developers.facebook.com/docs/facebook-login/access-tokens/#extending

+1

Wszystkie twoje linki dają 'Nie odnaleziono strony', Zaktualizuj linki –

Powiązane problemy