-1

Je développe une application de ionic-1. J'ai également implémenté le plugin de connexion facebook. J'ai suivi this steps. Je n'ai pas d'erreur, mais quand je clique sur le bouton facebook, ça ne marche pas, pas d'erreur d'affichage. J'utilise alert dans chaque erreur, mais aucune alerte ne sera affichée.Facebook Plugin ne fonctionne pas en ionique 1

REMARQUE: Je cours dans un vrai appareil Android parce qu'ils ont dit que le plugin natif ne fonctionnera pas dans le navigateur.

S'il vous plaît aidez-moi parce que je travaille avec ma thèse. Merci à tous!

Voici mon code:

.controller('CreateAccountCtrl', ['$scope','$http','$state','$q','UserService','$stateParams', '$ionicLoading','$timeout','$ionicPopup',function($scope, $http,$state,$q, UserService,$stateParams,$ionicLoading,$timeout,$ionicPopup){ 
$scope.$on('$ionicView.beforeEnter', function(e){ 
    $ionicLoading.show({ 
     animation: 'fade-in', showBackdrop: true 
    }); 
}); 

$scope.$on('$ionicView.afterEnter', function(e){ 
    $ionicLoading.hide(); 
    $scope.formData = {}; 

    $scope.showAlert = function(ttl,msg){ 
     var alertPopup = $ionicPopup.alert({ 
      title: ttl, 
      template: msg 
     }); 


    }; 


}); 

// facebook 
// This is the success callbak from the login method 

var fbLoginSuccess = function(response){ 
    if(!response.authResponse){ 
     fbLoginError("Cannot find the authResponse"); 
     return; 
    } 

    var authResponse = response.authResponse; 

    getFacebookProfileInfo(authResponse) 
    .then(function(profileInfo){ 
     // store user data on local storage 
     UserService.setUser({ 
      authResponse: authResponse, 
      userID: profileInfo.id, 
      name: profileInfo.name, 
      email: profileInfo.email, 
      picture: "http://graph.facebook.com/" + authResponse.userID + "/picture?type=large" 
     }); 
     $ionicLoading.hide(); 
     $state.go('app.home'); 
    }, function(fail){ 
     alert(fail); 
     // Fail get profile info 
     console.log('Profile Info Fail', fail); 
    }); 
}; 

// This is the fail callback from the login method 
var fbLoginError = function(error){ 
    console.log('fbLoginError', error); 
    alert(error); 
    $ionicLoading.hide(); 
}; 

// This method is to get the user profile info from the facebook api 
var getFacebookProfileInfo = function(authResponse){ 
    var info = $q.defer(); 

    facebookConnectPlugin.api('/me?fields=email,name&access_token=' + authResponse.accessToken, null, 
     function(response){ 
      alert(response); 
      console.log(response); 
      info.resolve(response); 
     }, 
     function(response){ 
      console.log(response); 
      alert(response); 
      info.reject(response); 
     } 
    ); 
    return info.promise; 
}; 


// This method is executed when the user press the "Login with faceboook" button 
$scope.facebookSignIn = function(){ 
    alert(1); 
    facebookConnectPlugin.getLoginStatus(function(success){ 
     if(success.status === 'connected'){ 
      // The user is logged in and has authenticated your app, and response.authResponse supplies 
      // the user's ID, a valid access token, a signed request, and the time the access token 
      // and signed request each expire 
      console.log('getLoginStatus', success.status); 
      alert(success.status); 
      // Check if we have our user saved 
      var user = UserService.getUser('facebook'); 

      if(!user.userID){ 
       getFacebookProfileInfo(success.authResponse) 
       .then(function(profileInfo){ 
        UserService.setUser({ 
         authResponse: success.authResponse, 
         userID: profileInfo.id, 
         name: profileInfo.name, 
         email: profileInfo.email, 
         picture : "http://graph.facebook.com/" + success.authResponse.userID + "/picture?type=large" 
        }); 

        $state.go('app.home'); 
       }, function(fail){ 
        console.log('Profile info fail', fail); 
        alert(fail); 
       }); 
      }else{ 
       $state.go('app.home'); 
      } 
     }else{ 
      // If (success.status === 'not_authorized') the user is logged in to Facebook, 
      // but has not authenticated your app 
      // Else the person is not logged into Facebook, 
      // so we're not sure if they are logged into this app or not. 
      console.log('getLoginStatus', success.status); 
      alert(success.status); 

      $ionicLoading.show({ 
       template: 'Logging in...' 
      }); 

      facebookConnectPlugin.login(['email','public_profile'], fbLoginSuccess, fbLoginError); 
     } 
    }); 
}; 



}]); 

Et dans mon html

<a class="facebook-sign-in button button-block button-facebook" ng-click="facebookSignIn()"> 
    <i class="icon ion-social-facebook"></i>&nbsp; 
    Sign in using facebook 
    </a> 
+0

Donc, vous dites que ne déclenche jamais d'alerte (1) dans $ scope.facebookSignIn()? –

+0

@billy_comic Il déclenche une alerte (1) monsieur. quand je clique sur le bouton et c'est tout. Alerte seulement :(Aidez-moi s'il vous plaît – user8143979

+0

Ok. Peut-être un couple de choses.Je ne vois pas où vous avez injecté le plugin Facebook dans votre contrôleur en haut de votre contrôleur (où vous injectez $ ionicPopup, etc.) Avez-vous inclus le src = "" pour le plugin dans votre index? –

Répondre

0

APP_NAME = "doit être le nom de l'application facebook qui est créé sur le développeur de facebook pas votre nom de l'application" APP_ID = facebook id app .

Installer avec facebook v4 plug-in $ cordova ajouter cordova-plugin-facebook4 --save --variable APP_ID = "123456789" --variable APP_NAME = "monApplication"

 $rootScope.loginFacebook = function() { 
      $cordovaFacebook.login(["public_profile", "email", "user_birthday", "user_photos"]).then(function(success){ 
      console.info(success.status); 

      if (success.status === 'connected') { 
       var checkrequest = { 
        'AuthSession[device_token]': $localStorage.device_token 
       } 
       appname.check(checkrequest).then(function(response) { 
        console.log(response); 
        if (response.key == "NOAUTH") { 
         $state.go('main.allowPush') 
        } 
       }) 
      } else if (success.status === 'not_authorized') { 
       console.info('the user is logged in to Facebook but has not 
         authenticated your app') 
      } else { 
       console.info('the user is nott logged in to Facebook') 
      } 

     }, function(error) { 
      console.info(error); 
     }); 


    }