0

このエラーが発生しましたが、常にではありません。(最新バージョンの PHP SDK を使用しています)。Facebook にログインしていて、登録してログインしようとすると、アプリは問題ないと表示します。また、Facebook にログインしていない場合、アプリはログイン URL にリダイレクトしますが、ここでは問題ありません。

ただし、アプリが次の例外を言う場合があります: OAuthException: 現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります。スクリプトは、ループ リダイレクトを使用してユーザーを loginUrl にリダイレクトします (アクセス トークンが無効であり、ユーザーは常に loginUrl を必要とするため)。

Web では、Facebook が Access Token の複製を作成し、次に php SDK の Access Token は= facebookではないと言う人もいます。

修正するには、ユーザーはCookie を削除する必要があります。これを修正するにはどうすればよいですか?

返信ありがとうございます。コードに返信が必要な場合は投稿します。良い一日を!:)

4

1 に答える 1

1

Facebook セッションを破棄してから、このエラーが発生した場合はユーザーをログイン URI にリダイレクトしてください。これにより、新しいアクセス トークンが取得されます。

注意: アクセス トークンは非常に短い時間で期限切れになりますが、有効期間の長いアクセス トークンを取得できます。最新の PHP SDK には、setExtendedAccessToken() というパブリック関数が含まれています。

この関数を呼び出して、2 ~ 3 時間有効のアクセス トークンを 60 日間のアクセス トークンに自動的に交換できます。

例えば:

try {
      $user = $this->facebooknew->api('/me');
      $this->facebooknew->setExtendedAccessToken();
      $access_token = $this->facebooknew->getAccessToken();
}
catch(FacebookApiException $e){
      $this->facebooknew->destroySession();
      header('Location: ' . $this->facebooknew->getLoginUrl($params));
        //echo $e;
}
于 2013-06-16T20:36:32.043 に答える