質問

私はこの数日間このエラーを扱っています。以前は同じコードで正常に動作していましたが、今ではこのエラーにこだわっています。それ以来、ホストを変更しました。多分それかもしれませんか? Facebookアカウントでログインし、アプリケーションが承認されている場合、ユーザーIDやその他のデフォルトデータを取得できません。

これがスクリプトです、何でも提案してください:

<html xmlns:fb="http://www.facebook.com/2008/fbml">
<body>
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script src="http://www.oneslike.me/js/jquery-1.6.2.min.js"></script>           
<script>
 $(document).ready(function(){           
    FB.init({
      appId      : 'YOUR API KEY HERE',
      status     : true, 
      cookie     : true,
      xfbml      : true,
      oauth      : true,
    });

    FB.Event.subscribe('auth.login', function(response) {
      window.location.reload(); //When logged reload
    });         
    FB.api('/me', function(user){ 
        if(user.id!=null){
            alert("Logged user with FB_id: "+user.id);
            $("#login_div").hide(); $("#data_div").show();
            var user_data = '<img src="http://graph.facebook.com/'+user.id+'/picture"><br/><a href="'+user.link+'">'+user.name+'</a>';              
            document.getElementById('data_div').innerHTML(user_data);               
        }
        else
        {
            alert("Not logged user");
            $("#login_div").show(); $("#data_div").hide();
        }
    });      
});      
</script>
<div id="login_div" style="display: none;">
    <fb:login-button data-scope="user_birthday">Login with Facebook</fb:login-button> 
</div>
<div id="data_div" style="display: none;">      
</div>

役に立ちましたか?

解決

それはそうかもしれません FB.init() あなたが電話したときにセッションの読み込みと初期化が終了していません FB.api()?私は同様の問題に遭遇しました。私のためにそれを修正したのは、私を包むことでした FB.api() 呼び戻す FB.getLoginStatus(), 、 そのようです:

FB.getLoginStatus(function(response) {
    FB.api(function(response){ });
});

APIを呼び出す前に、セッションが適切に初期化されていることを遅らせる/確認するようです。それがあなたのために働くことを願っています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top