Frage

Ich habe diesen Fehler ein paar Tage zu tun. Früher funktioniert es gut im gleichen Code, aber jetzt bin ich an diesem Fehler festgefahren. Ich habe seitdem einen Host geändert. Vielleicht könnte das das sein? Wenn ich mich mit meinem Facebook -Konto anmelde und die Anwendung genehmigt ist, kann ich die Benutzer -ID und andere Standarddaten immer noch nicht abrufen.

Hier ist das Skript, bitte schlagen Sie alles vor:

<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>

War es hilfreich?

Lösung

Es könnte das sein FB.init() hat das Laden und Initialisieren der Sitzung beim Anruf nicht beendet FB.api()? Ich bin auf ein ähnliches Problem gestoßen. Was es für mich behoben hat, war, meine zu wickeln FB.api() Rufen Sie an FB.getLoginStatus(), wie so:

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

Es scheint zu verzögern/sicherzustellen, dass die Sitzung vor dem Aufrufen der API ordnungsgemäß initialisiert wird. Ich hoffe es funktioniert auch für dich.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top