3

私たちは約 2 か月間アプリケーションに取り組んできましたが、すべてが完璧に進んでいました。ログインのアクセス許可で PHP SDK とオフライン モードを使用していましたが、Facebook API の最近の変更とオフライン モードの削除の数日前から、「Uncaught OAuthException: 現在のユーザー。"

主な問題は、アプリでしばらく作業した後 (約 10 分) に発生することですが、同時に、このリンク を介してトークンの有効性を確認すると、トークンがまだ有効であることがわかります。はまだ存在し、有効期限は切れませんが、次のエラーが発生します:「Uncaught OAuthException: 現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります」

私はすでにこのリンク にアクセスし、最新バージョンをダウンロードしましたが、どこが間違っているのでしょうか?


回答ありがとうございます。yacon と同じように、facebook->api(/me) にアクセスするときにバグがあるようです。現在、アプリの一部を javascript で処理しています。これは、javascript SDK と PhP SDK を一緒に使用するのが本当に頭痛の種です。お互いに

4

3 に答える 3

2

これを解決するには、getLoginUrl の後に accesstoken をセッション変数に保存するだけです

$facebook->getLoginUrl(...)

その後、Facebookを初期化するたびに

$facebook = new Facebook(配列(
  'appId' => Yii::app()->params['facebook_appId'],
  'secret' => Yii::app()->params['facebook_appSecret'],
));

セッションからアクセストークンを取得し、setAccessToken を使用して設定します

$facebook->setAccessToken(Yii::app()->session['access_token']);

于 2012-12-13T04:59:26.617 に答える
1

この状況を次のように処理します。1.1
時間有効のアクセス トークンを取得します
。2.トークンを 60 日間有効に
延長します。3.そのトークンをセッションに保存し、すべてのプロジェクト クエリに使用します。

         try{
               $facebook_uid = $facebook->getUser();
                $facebook->setExtendedAccessToken();
                $accessToken = $facebook->getAccessToken();
                $fbuser = $facebook->api('/me');
                $session['api_me'] = $fbuser;
                $session['tokenValue'] = $accessToken;
        }catch (Exception $e) {
                facebook_uid =null;
        }
于 2012-12-12T06:35:46.933 に答える
0

APIにバグがあると思います。->api('/me') の代わりに $facebook->api('/'.$facebook_uid) を使用すると動作します。

于 2012-12-12T17:30:05.427 に答える