4 Stimmen

Titanium - Facebook authorize() - "Ein Fehler ist aufgetreten"

Ich verwende die Facebook-API von Titanium (Appcelerator), damit sich Benutzer bei ihren Facebook-Konten anmelden können. Auf Android wird oft direkt nach dem Aufruf von authorize, wenn sich das Facebook-Fenster öffnet, eine Seite angezeigt, auf der steht:

An error occurred with MY-FB-APP-NAME. Please try later
API Error Code: 110
API Error Description: Invalid user id
Error Message: Missing user cookie (to validate session user)

Wenn Sie das Fenster schließen und neu beginnen, ist das Problem in der Regel gelöst. Da dies jedoch in etwa 70 % der Fälle geschieht (wenn die Autorisierung zum ersten Mal in einer "Sitzung" aufgerufen wird), ist dies ein großes Problem für die Benutzerfreundlichkeit.

Weiß jemand, wie man das beheben kann?

Ich verwende Titanium 2.1.0 und teste auf einem Android 2.3.6 Gerät. Vielen Dank

0voto

sundar nataraj Punkte 8434

Eigentlich das Problem bestehen aufgrund von Cache von Facebook. wir müssen Cache zu löschen, wenn Sie sich abmelden verwenden unten Code es funktioniert gut

Titanium.Facebook.appid = "XXXXXXXXXXXXXXXXXX";
 Titanium.Facebook.permissions = ['publish_stream', 'read_stream'];

   var fbButton =  Ti.UI.createButton({
    top: 68,
    width:290,
    height:52,
    backgroundImage:"images/login/facebook.png"
});

 fbButton.addEventListener('click', function() {
if(Titanium.Facebook.loggedIn){
    Titanium.Facebook.logout()
    return
}
 Titanium.Facebook.authorize();

  });

Ti.Facebook.addEventListener('login', function(e) {
if (e.success) {
    win.close()
} else if (e.error) {
    alert(e.error);
} else if (e.cancelled) {
    alert("Canceled");
}
 });

  Titanium.Facebook.addEventListener('logout', function(e) {
    var url = 'https://login.facebook.com';
    var client = Titanium.Network.createHTTPClient();
    client.clearCookies(url);
});

0voto

Guts Punkte 81

Versuchen Sie diesen Code, es ist in Legierungen und hoffe, es wird Ihnen helfen, sonst werde ich überprüfen und lassen Sie es wissen

index.xml

<Alloy>
<Window class="container">
    <LoginButton id="fbButton" ns="Alloy.Globals.Facebook"/>
</Window>
</Alloy>

index.js

var fb = Alloy.Globals.Facebook;
fb.appid = xxxxxxxxx;
fb.permissions = ['publish_stream', 'create_event', 'email'];
$.fbButton.style = fb.BUTTON_STYLE_WIDE;
fb.addEventListener('login', function(e){
    if(e.success){
        fb.requestWithGraphPath('me', {}, 'GET', function(e) {
            if (e.success) {
                //alert(e.result);
                var response = JSON.parse(e.result);
                var email = response.email;
                var name = response.name;
                var gender = response.gender;
                alert(name+' '+email+' '+gender);
                alert('Logged in Successfully');
            } else if (e.error) {
                alert(e.error);
            } else {
                alert('Unknown response');
            }
        });
    }
});

alloy.js

Alloy.Globals.Facebook = require('facebook');

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X