2017-08-04 2 views
0

Dans mon projet AngularJS, j'ai une connexion fb et j'utilise le plugin angularjs-socil-login pour cela.que la connexion réussie je stocke le jeton d'accès reçu.Comment définir la fonction d'événement click dans AngularJS setInterval

problème

jetons d'accès sont fb expirent après quelques times.thats pourquoi je pensais mettre à jour le jeton à l'aide AngularJs setInterval .alors j'ai modifié angularjs-socil-login pluging et a ajouté reLogin fonction function.that contrôle connexion utilisateur status.if déjà connecté, j'appelle la fonction FB.login et mettre à jour le jeton d'accès.

cela fonctionne bien quand je fixe la fonction $scope.sign pour bouton click.but quand je mis $scope.sign fonction pour AngularJS setInterval cela ne working.it est pas appeler FB.login console function.Chrome ne montrant hiiiiii fb un message

Controller. js

$scope.sign = function(){ 
    $rootScope.newToken=""; 
    socialLoginService.reLogin(); 
    if($rootScope.newToken){ 
    console.log("updated ",$rootScope.newToken); 
    } 
} 

setInterval(function(){ 
$scope.sign(); 
}, 3000); 

fonction ajoutée (reconnexion) pour AngularJS-Socil-login pluging

reLogin:function($q){ 
      console.log("hiiiiii fb"); 

      FB.getLoginStatus(function(response) { 
       if(response.status === "connected"){ 

         FB.login(function(response) { 
          if(response.status === "connected"){ 

            $rootScope.newToken=response.authResponse.accessToken; 
            console.log("updated ",$rootScope.newToken); 

          } 
         }, {scope: 'email', auth_type: 'rerequest'}); 

       }else{ 

       } 
      }); 
     } 
+0

Ou vous pouvez rallonger le temps d'expiration des jetons d'accès Facebook (chercher les moyens de le faire sur stackoverflow). –

+0

Les SDK côté client de Facebook devraient être en mesure de gérer cela automatiquement. Ils veillent à ce que vous disposiez toujours d'un nouveau token fonctionnel tant que l'utilisateur est actif dans votre application. _ "Les jetons d'accès fb expirent après quelques instants. C'est pour cela que je mets à jour le jeton" _ - y at-il un besoin réel de le faire, as-tu des erreurs dans certaines situations sinon ...? – CBroe

Répondre

1
$scope.sign = function(){ 
    $rootScope.newToken=""; 
    socialLoginService.reLogin(); 
    if($rootScope.newToken){ 
    console.log("updated ",$rootScope.newToken); 
    } 
} 

$interval(function(){ 
$scope.sign(); 
}, 3000); 


use $interval instead of setInterval and inject $interval