2011-01-20 1 views
2

私はFacebook Connectをセットアップして、ユーザが1回のクリックで自分のサイトに登録できるようにしています。大部分のユーザにとって完璧に機能しますが、FacebookのPHP SDKは一部のユーザにOAuthエラーを与えます

PHP Fatal error: Uncaught OAuthException: An active access token must be used to query information about the current user.\n thrown in /home/example/public_html/facebook.php on line 453

私はこのエラーを再現することができません、と私はこれを引き起こしているものを考え出す苦労しています:次のエラーを取得するユーザーからのメール。

私のFacebook Connectボタンコード:

<fb:login-button size="large" length="long" v="2" perms="email,user_birthday" onlogin="fb_login()"></fb:login-button> 
<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
     FB.init({appId: '.....', status: true, cookie: true, xfbml: true}); 
    }; 
    (function() { 
     var e = document.createElement('script'); 
     e.type = 'text/javascript'; 
     e.src = document.location.protocol + 
     '//static.ak.fbcdn.net/connect/en_US/core.js'; 
     e.async = true; 
     document.getElementById('fb-root').appendChild(e); 
    }()); 

    function fb_login() { 
     FB.getLoginStatus(function(response) { 
      if (response.session) { 
       window.location = 'http://example.com/register_fb.php'; 
      } 
     }); 
    } 
</script> 

私のPHPコード:

require './facebook.php'; 

$facebook = new Facebook(array(
    'appId' => '....', 
    'secret' => '....', 
    'cookie' => true, 
)); 

$session = $facebook->getSession(); 
$user = $facebook->api('/me'); 

//// register the user or log them in... 

答えて

1

は、彼らが使用しているブラウザはこれをデバッグするのに役立つだろうか絞り込み。

あなたのコードに基づいていないので、私はこの問題を引き起こす1つのことを考えることができます。 Javascript SDKがログインボタンを使用してCookieを設定できないこと。これは、フレーミングに応じて、特定のブラウザで発生する可能性が

など

この問題を処理するfacebook->のgetSession()がnullの場合、あなたは検出することができ、その後> getLoginUrl()($ facebook-にリダイレクトされ関係なく良いアイデアです)。

関連する問題