0

Ich versuche, die E-Mail-Adresse eines über Facebook-Modul eingeloggten Benutzers zu erhalten. Aber bekommen jedes Mal Fehler { „Fehler“: „Ein Fehlercode 2500 aufgetreten Ein aktiver Zugriffstoken muss verwendet werden, um Informationen über den aktuellen Benutzer abzufragen.“}Fehler 2500 beim Versuch, Facebook E-Mail in Appcelerator Titanium

Mein Code ist:

var viewClick = function() { 
    fb.logout(); 
    fb.initialize(); 
    fb.authorize(); 
}; 

var facebookLogged = function(e) { 

    fb.requestWithGraphPath("me?fields=name,email,first_name,last_name", {}, 'GET', function(result) { 
     Ti.API.info(JSON.stringify(result)) 
     // var data = JSON.parse(e.result); 
}); 
}; 
var window = Ti.UI.createWindow({exitOnClose: true, navBarHidden: true, fullscreen: true, orientationModes: [ 
     Ti.UI.PORTRAIT, 
     Ti.UI.UPSIDE_PORTRAIT,  
    ], 
    backgroundColor: '#f0f2f2' 
}); 

var fb = require('facebook'); 

if(Ti.Platform.osname === 'android') { 

    window.fbProxy = fb.createActivityWorker({lifecycleContainer: window}); 
} 

    //fb.setLoginBehavior(fb.LOGIN_BEHAVIOR_NATIVE); 
fb.permissions = ['email']; 

window.open(); 


var view = Ti.UI.createView({ 
    height: 200, 
    width: 200, 
    backgroundColor: 'red' 
}); 

view.addEventListener('click', viewClick); 

window.add(view); 
fb.addEventListener('login', facebookLogged); 

ich habe auch versucht, durch Zugriffstoken Code bereitzustellen Modyfing requestWithGraphPath Parameter:

fb.requestWithGraphPath("me?fields=name,email,first_name,last_name&access_token=" + e.source.accessToken, {}, 'GET', function(result) {} 

aber in einem solchen Fall, den ich bekommen infromation die accessToken ungültig ist. TiFacebookModule: (Haupt-) [117,178060] requestWithGraphPath Rückruffehler: Malformed Token Zugriff [Hier Zugriffstoken Wert] access_token = [Hier Zugriffstoken Wert ist]

Was ich falsch gemacht? Wie bekomme ich eine E-Mail von der FB? Jede Hilfe wird sehr geschätzt.

+0

ps: poste nicht deinen Token –

+0

Es ist ein gefälschter Account (nur zum Testen der App), also keine große Sache :). Aber ich werde es reinigen. – kreatywny

+0

wo bekommen Sie genau das Authentifizierungs-Token? – developer82

Antwort

3

Ich hatte das gleiche Problem und das ist, was ich tue, für Android funktioniert der RequestWithGraphPath nicht wie sein IOS-Gegenstück und die Dokumentation wird auch nicht aktualisiert. Sie müssen die Felder im Objekt und nur das "me" im ersten Parameter senden:

var facebookLogged = function(e) { 
    fb.requestWithGraphPath("me", { fields: "name,email,first_name,last_name"}, 'GET', function(result) { 
     Ti.API.info(JSON.stringify(result)) 
     // var data = JSON.parse(e.result); 
    }); 
}; 

Ich hoffe, es hilft.

+0

Danke.Es funktioniert wie ein Charme auf Android.Wie erhalten Sie E-Mail für iOS, weil ich mit demselben Problem dort stecken bin .. – kreatywny

+0

Für IOS" mich? Felder = Name, E-Mail, Vorname, Nachname "funktionierte gut, was tun Sie erhalten auf die Anfrage Antwort? – nbreath

+0

Ich bekomme {"result": "{\" id \ ": \" 1498651573764560 \ ", \" last_name \ ": \" Kars \ ", \" name \ ": \" Eren Kars \ ", \ first_name \": \ "Eren \"} "," Erfolg ": true," Pfad ":" mich? Felder = Name, E-Mail, Vorname, Nachname "} – kreatywny