2015-11-08 9 views
8

Parse.FacebookUtils.logInをIonicビューで動作させようとしていますが、ブラウザでionic serveをヒットしたときに正常に動作するようになりましたが、問題はIonic Viewエミュレータを使用してログインしようとすると、基本的に認証Facebookのウィンドウがポップアップせず、なぜ私にはわかりません。Parse Facebook LoginがIonic Viewで動作しない

私は、このマニュアルに従っ: https://www.parse.com/docs/js/guide#users-facebook-users

すべてがちょうどそれがイオンビューで作業しようとしてブラウザに素晴らしい作品。

任意のアイデア?

+0

チェックhttp://www.raywenderlich.com/44640/integrating-facebook-and-parse-tutorial-part-1 –

+0

また、このフェイスブックの象徴的な問題で問題が発生する可能性があります。 https://github.com/driftyco/ionic-view-issues/issues/45のコメントをチェックしてください。 –

+0

@SomnathMulukは全く助けにならない –

答えて

4

私はイオンと解析のSDKをあきらめたし、別に別のプラグイン以下のマニュアルを参照して、使用して開始しました:ここ

http://ngcordova.com/docs/plugins/oauth/

https://github.com/nraboy/ng-cordova-facebook-example/blob/master/www/js/app.js

は、私はそれが仕事にするためにやったコードです解析:

$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!' 
        }); 
       } 
      }); 
     }; 
+0

FB SDKとParse SDKは、Ionicビュー、emulater、.apkファイルで動作していないようです –

関連する問題