Obtenir des contacts gmail Google Contacts API avec javascript

Il indique toujours que la page que vous avez demandée n'est pas valide. Comment puis-je récupérer les contacts avec javascript en utilisant les contacts Google? Je possède une portée valide et un identifiant client

google.load('gdata', '2.x'); debugger google.setOnLoadCallback(function () { if (window.location.hash == "") { if (!checkLogin()) { logMeIn(); } else { var feedUrl = "https://www.google.com/m8/feeds/contacts/default/full"; query = new google.gdata.contacts.ContactQuery(feedUrl); query.setMaxResults(5000); myService = new google.gdata.contacts.ContactsService('exampleCo-exampleApp-1.0'); myService.getContactFeed(query, function (result) { document.cookie = "g314-scope-0="; window.opener.parseGmailContacts(result.feed.entry); close(); }, function (e) { alert(e.cause ? e.cause.statusText : e.message); }); } } }); function logMeIn() { scope = "https://www.google.com/m8/feeds"; var token = google.accounts.user.login(scope); } function logMeOut() { google.accounts.user.logout(); } function checkLogin() { scope = "https://www.google.com/m8/feeds/"; var token = google.accounts.user.checkLogin(scope); return token; } 

Je pense qu'il y a quelque chose qui ne va pas

  var token = google.accounts.user.checkLogin(scope); return token; 

Token retuns "" (valeur vide ici), comment puis-je obtenir la valeur du jeton pour obtenir les contacts, plz help

J'ai rencontré le même problème, je l'ai résolu en récupérant d'abord un jeton d'accès, puis appelez directement l'API. C'est parce que ji api (gapi) ne prend pas en charge la récupération des contacts Google.

Étant donné que c'était tout à fait marrant, j'ai écrit un article de blog ici: https://labs.magnet.me/nerds/2015/05/11/importing-google-contacts-with-javascript.html

Fondamentalement, c'est ainsi que je l'ai résolu:

 <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> </head> <body> <script type="text/javascript"> var clientId = 'your Client ID'; var apiKey = 'Your API Code'; var scopes = 'https://www.googleapis.com/auth/contacts.readonly'; $(document).on("click",".googleContactsButton", function(){ gapi.client.setApiKey(apiKey); window.setTimeout(authorize); }); function authorize() { gapi.auth.authorize({client_id: clientId, scope: scopes, immediate: false}, handleAuthorization); } function handleAuthorization(authorizationResult) { if (authorizationResult && !authorizationResult.error) { $.get("https://www.google.com/m8/feeds/contacts/default/thin?alt=json&access_token=" + authorizationResult.access_token + "&max-results=500&v=3.0", function(response){ //process the response here console.log(response); }); } } </script> <script src="https://apis.google.com/js/client.js"></script> <button class="googleContactsButton">Get my contacts</button> </body> </html> 

Essayez d'utiliser des composants mon ami. La vie sera plus facile et plus jolie.

http://googlewebcomponents.github.io/google-contacts/components/google-contacts/

Pour obtenir la liste des contacts à l'aide de Google plus, utilisez ceci: –

 <script src="https://apis.google.com/js/client.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> <script> function auth() { var config = { 'client_id': 'OAUTH_CLIENT_ID', 'scope': 'https://www.google.com/m8/feeds' }; gapi.auth.authorize(config, function() { fetch(gapi.auth.getToken()); }); } function fetch(token) { $.ajax({ url: "https://www.google.com/m8/feeds/contacts/default/full?access_token=" + token.access_token + "&alt=json", dataType: "jsonp", success:function(data) { console.log(JSON.stringify(data)); } }); } 

Dans le corps HTML: –

 <button onclick="auth();">GET CONTACTS FEED</button> 

La sortie aura comme champ avec le contact contenant le numéro de téléphone.

Assurez-vous d'obtenir l'identifiant client de la console Google développeur avec un redirection approprié uri.

J'ai eu un léger problème avec le popup clignotant chaque fois que le bouton était cliqué. L'ajout de l'extrait ci-dessous à la solution Wouters empêchera la fenêtre contextuelle de clignoter.

 function authorize(){ if($scope.authorizationResult){ handleAuthorization($scope.authorizationResult); }else{ gapi.auth.authorize({client_id: clientId, scope: scopes, immediate:false}, handleAuthorization); } }