0

Facebook PHP SDK を使用するサイトに取り組んでいます。それはうまく機能しており、2時間後、サイトの一般的なページの1つにアクセスしようとするたびに...

 Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user.

インデックス ページに戻ると、新しいアクセス トークンが取得され、すべてが再び正常に機能します... 2 時間。

アクセス トークンの有効期限が切れたときにインデックス ページにリダイレクトするために、Web ページに配置できるコードは何ですか?

このノブを助けてくれてありがとう。

4

3 に答える 3

1

コードを承認したページにユーザーをリダイレクトする必要があります。ユーザーがアプリの認証を解除していない場合、Oauth ダイアログは表示されません。

詳細については、 アクセス トークンと取り扱いを参照してください。

于 2012-11-26T09:13:46.677 に答える
0

try / catchコードにブロックを入れることができます。

各FacebookAPI呼び出しをそのようなブロックに配置し、例外が発生した場合は、次の方法でユーザーを適切なリソースにリダイレクトできますheader('Location: <url>');

try {
  # FB API call 
} 
catch(OAuthException e) {
  header('Location: <url>');
}
于 2012-11-25T00:10:13.897 に答える
0

このようなファイルを作成し、Web ページに含めます。

$facebook = new Facebook(array(
  'appId'  => "app id",
  'secret' => "app secret",
));

$user = $facebook->getUser();
$loginUrl = $facebook->getLoginUrl();

if ($user) {
  try {
    $me = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);   
  }
}
else {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
}
于 2012-11-25T15:45:25.657 に答える