3

Facebook Facebook JavaScript SDK を使用してユーザーをログインしています。次に、PHP SDK を介して彼の情報の一部を取得したいと考えていますが、「現在のユーザーに関する情報を照会するには、アクティブなアクセス トークンを使用する必要があります」というメッセージが表示され続けます。

これは、関連する html/js コードです。

     <script>


 window.fbAsyncInit = function() {
    // init the FB JS SDK
    FB.init({
      appId      : '8',                        // App ID from the app dashboard
      channelUrl : '//url/frontend/channel.php', // Channel file for x-domain comms
      status     : true,                                 // Check Facebook Login status
      cookie     : true,
      oauth:true,
      xfbml      : true                                  // Look for social plugins on the page
    });
  FB.Event.subscribe('auth.authResponseChange', function(response) {
 if (response.status === 'connected') {
      submitform();
}     });
  };

  function submitform() {

    console.log('Welcome!  Fetching your information.... ');
    FB.api('/me?fields=email,name', function(response) {
      //submits a form from this page...
    });

  }
</script>
       <a href="javascript:FB.login()" class="facebook-login">Facebook</a>

失敗するphpは次のとおりです。

$facebook = new Facebook(array(               
                        'appId'  => Configuration::$facebook_app_id,
                          'secret' => Configuration::$facebook_app_secret));
            // Get User ID

             $user_profile = $facebook->api('/me?fields=name,id','GET');

しばらくは機能しているように見えましたが、その後壊れました

"   [message] => An active access token must be used to query information about the current user.
                   [type] => OAuthException
                   [code] => 2500",

これを安定させる方法を知っている人はいますか?

ありがとう

4

1 に答える 1

2

アクセス トークンの有効期限が切れているために発生する可能性がありますか? アクセストークンの種類はいくつかあります。また、アクセス トークンが「短期トークン」の場合は、更新する必要があります。ここで abot アクセス トークンを読むことができますhttps://developers.facebook.com/docs/facebook-login/access-tokens/ Facebook の Python サーバー ライブラリでは、メソッド fetchToken(appId, secret) を使用して期限切れのトークンを更新しました。

于 2013-09-02T16:19:32.690 に答える