I abandoned Parse sdk using Ionic and started using another plugin using the following documentation:
http://ngcordova.com/docs/plugins/oauth/
https://github.com/nraboy/ng-cordova-facebook-example/blob/master/www/js/app.js
Here is the code I made to make it work with Parse:
$scope.fbLogin = function() { var result; $cordovaOauth.facebook('987971754588010', ['public_profile, user_birthday, email']).then(function(success) { $http.get("https://graph.facebook.com/v2.2/me", { params: { access_token: success.access_token, fields: "id,name,birthday,last_name,first_name,email,gender,picture.type(large)", format: "json" }}).then(function(result) { $localstorage.setObject('fbData', result.data); var expiration_date = new Date(); expiration_date.setSeconds(expiration_date.getSeconds() + success.expires_in); expiration_date = expiration_date.toISOString(); var facebookAuthData = { "id": result.data.id, "access_token": success.access_token, "expiration_date": expiration_date }; Parse.FacebookUtils.logIn(facebookAuthData, { success: function(user) { if (!user.existed()) { alert("User signed up and logged in through Facebook!"); $scope.openModal(); } else { alert("User logged in through Facebook!"); $scope.syncFbData(null); } }, error: function(user, error) { console.log('ERROR: ' + error); var alertPopup = $ionicPopup.alert({ title: 'Error de autenticaci贸n de usuario', template: 'El usuario cancel贸 autenticaci贸n con Facebook o no autoriz贸 permisos. ' }); } }); }, function(error) { console.log('ERROR: ' + error); var alertPopup = $ionicPopup.alert({ title: 'Error de conexi贸n', template: 'No se ha logrado establecer conexi贸n con Facebook.' }); }); }, function(error) { console.log('ERROR: ' + error); var alertPopup = $ionicPopup.alert({ title: 'Error de conexi贸n', template: 'No se ha logrado establecer conexi贸n con Facebook.' }); }); }; $scope.syncFbData = function (newUsername) { var fbData = $localstorage.getObject('fbData') var currentUser = Parse.User.current(); if (newUsername) { currentUser.set('username', newUsername); } currentUser.set('nombre', fbData.first_name); currentUser.set('apellidos', fbData.last_name); currentUser.set('email',fbData.email); currentUser.set('fechaNacimiento', new Date(fbData.birthday)); currentUser.set('imagenUrl',fbData.picture.data.url); currentUser.set('genero',((fbData.gender === 'male') ? 'Hombre' : 'Mujer') ); currentUser.save(null, { success: function (response) { $scope.closeModal(); $state.go('app.lista-cervezas'); }, error: function (response, error) { console.log('ERROR: ' + error); var alertPopup = $ionicPopup.alert({ title: 'Nombre de usuario invalido', template: 'El nombre de usuario ingresado ya se encuentra en uso!' }); } }); };
Pablo fallas
source share