2012-01-30 8 views
5

は、私は時折、このエラーが出る:エラー検証アクセストークン

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

問題は、私は何の警告もなしに、ランダムな時間にそれを得ることです。私はそれを見ずに何週間も行くことができます、そして突然すべてが現れます。ソリューション?あなたはそれを待つことができます。このエラーは約15分間スローされ、次にリフレッシュすることができます。これにより、実行中の作業を続行できます。

私の質問は、私の最後の問題ですか?それともFacebookの問題ですか?これがFacebookの接続ページです。私は研究を行い、それがFQLクエリから発生する可能性があることを発見しました。しかし、少なくともそれは一貫していないでしょうか?それは完全にランダムなようです。とにかく私のFQLクエリはとにかくあります。 How-To: Handle expired access tokens (リンクが壊れている)の開発者のブログ記事に書かれたよう

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

あるラインBase_Facebookの1052年から1071年、

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; 

}

はあなたに

+1

これは間違いなく[Facebookのバグ](https://developers.facebook.com/bugs/179301482177807)です。 – brainondev

+1

これを追加したいと思います。ユーザーがアカウントを無効にした場合にもこのエラーが発生します。 – Chris

答えて

10

ありがとう

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.

offline_accessのトークンを取得する前に(ユーザーがアプリケーションに接続していない限り)、このアクセス許可は廃止されました。Deprecation of Offline Access Permissionを参照して、より長い有効期限を持つaccess_tokenを取得する方法をご覧ください。

アップデート:Facebookのから元のブログ投稿は期限切れのトークンが取り扱いに関すること 注意doesnの」:2012年8月FacebookのPHP-SDK have added simple way of extending access_tokenのよう

アップデート2(詳細はHow to extend access token validity since offline_access deprecationを参照してください)もう存在しません。詳細を知るために使用されるかもしれない新しい文書があります。 https://developers.facebook.com/docs/facebook-login/access-tokens/#extending

+1

あなたのすべてのリンクは 'Page Not Found'を与えます、リンクを更新してください –

関連する問題