2017-07-24 1 views
0

Je cours ce code, parfois je reçois une erreur, d'autres je ne sais pas et je ne peux pas vraiment comprendre pourquoi.gapi.auth.authorize "Impossible de lire la propriété 'autoriser' de undefined"

let promiseLogIn = new Promise(function(reject,resolve){ 
    gapi.auth.authorize(authData , function(response) { 
     var authButton = document.getElementById('auth-button'); 
     if (response.error) { 
     console.log("AuthBad"); 
     resolve(); 
     authButton.hidden = false; 
     } 
     else { 
     console.log("AuthGood"); 
     reject(); 
     authButton.hidden = true; 
     } 
    }); 
    }); 

i charger le répertoire lib dans mon fichier html comme ceci:

<script src="https://apis.google.com/js/client.js?onload=authorize"></script> 
<script src="sources/scripts/dist/bundle.js"></script> 

où bundle.j est l'endroit où j'ai tous les fichiers ts compilés.

+0

Etes-vous sûr de vouloir étiqueter ce sous-type? – Aron

+0

Etes-vous sûr de charger la bibliothèque gapi correctement? – Aron

+0

@Aron ceci est construit en utilisant le typecript, comment dois-je le charger correctement? –

Répondre

0

Il est probable que vous receviez cette erreur car vous n'avez pas la bibliothèque auth2 dans la portée. Pour ajouter des bibliothèques à votre google scope, l'exemple de documentation de Google encourage le chargement de nouveaux packages à l'aide de la méthode gapi.load(). Donc, voici comment vous pouvez le faire:

let promiseLogIn = new Promise(function(reject,resolve){ 
    gapi.load('auth2', function(){ 
    gapi.auth.authorize(authData , function(response) { 
     var authButton = document.getElementById('auth-button'); 
     if (response.error) { 
     console.log("AuthBad"); 
     resolve(); 
     authButton.hidden = false; 
     } 
     else { 
     console.log("AuthGood"); 
     reject(); 
     authButton.hidden = true; 
     } 
    }); 
    }); 
});