2010-12-27 15 views
0

Ich schreibe eine Flash-App in AS3. Ich verwende die com.facebook.graph-Bibliothek, um die Anmeldung von meiner App zu funktionieren.Antwort von Facebook erhalten Login

Wenn der Benutzer nicht in Facebook angemeldet ist, wird ein Popup angezeigt, in dem er aufgefordert wird, seinen Benutzernamen und sein Passwort einzugeben. Das Problem ist jedoch, dass es nicht scheint, zur Rückruffunktion zurückzukehren.

Der JS-Code verwendet, sieht wie folgt zu verbinden:

function redirect() { 
      var params = window.location.toString().slice(window.location.toString().indexOf('?')); 
      top.location = 'https://graph.facebook.com/oauth/authorize?client_id=myappID&scope=publish_stream&redirect_uri=http://mydomain.com.au/play.php?'+params; 
     } 

und der Code AS sieht wie folgt aus:

Facebook.init('myappID', handleLogin);  
function onLoginButtonClicked(event:MouseEvent):void 
{ 

    if (Facebook.getSession()==null || 
     Facebook.getSession().uid == null) 
    { 
     Facebook.login(handleLogin); 
    } 
    else{ 

     handleLogin(); 
    } 

} 

function handleLogin(response:Object, fail:Object):void 
{ 
    if (response == null) 
    { 
     ExternalInterface.call('redirect'); 
     return; 
    } 

    postToFB(); 
} 


    function handleUploadComplete(response:Object, fail:Object):void { 
    //call back from posting 
     } 
    function postToFB() { 
    messageText.text = 'done'; 

    } 

Wenn der Benutzer bereits angemeldet ist, dann läuft es posttoFB Funktion Wenn dies jedoch nicht der Fall ist und die Anmeldeprozedur ausgeführt wird, wird die Funktion nicht ausgeführt. Es scheint nur die Rückruffunktion nach Abschluss des Anmeldevorgangs nicht auszuführen.

Was fehlt mir hier?

Antwort