Esportare i contatti email da Google Contatti con People API

Tramite People Api รจ possibile leggere le informazioni dei contatti dell'utente autenticato.

Pubblicato da ,
Ultima modifica

In questo articolo vedremo come esportare gli indirizzi email dei propri Contatti Google usando People API, in particolare l'esempio che verrà illustrato fa riferimento alla documentazione JavaScript Quickstart di Google

developers.google.com/people/quickstart/js

I passaggi da seguire per poter utilizzare l'API People sono i seguenti

  1. Creare un nuovo progetto in Console Cloud Google;
  2. Abilitare API People nella schermata Libreria API;
  3. Creare una Chiave API e un ID Client OAuth, assicurandosi di specificare l'URI nelle impostazioni dell'ID Client OAuth sia per le Origini JavaScript autorizzate che per URI di reindirizzamento autorizzati, in questo caso siccome siamo in un ambiente di test sarà per entrambi http://localhost:8080;
  4. Specificare nella sezione Utenti di prova in Schermata consenso OAuth almeno un utente per poter effettuare i test.

Se abbiamo seguito tutti i passaggi precedenti possiamo iniziare a creare la nostra applicazione per esportare i contatti email da Google Contatti, usiamo lo stesso snippet di codice consigliato nell'esempio JavaScript Quickstart, assicurandoci di definire correttamente CLIENT_ID e API_KEY con quelli del nostro progetto creato in precedenza

index.html

// Client ID and API key from the Developer Console
var CLIENT_ID = '<YOUR_CLIENT_ID>';
var API_KEY = '<YOUR_API_KEY>';

il codice di esempio esporta i nomi dei contatti tramite la funzione

function listConnectionNames:

/**
 * Print the display name if available for 10 connections.
 */
function listConnectionNames() {
    gapi.client.people.people.connections.list({
        'resourceName': 'people/me',
        'pageSize': 10,
        'personFields': 'names,emailAddresses',
    }).then(function(response) {
        var connections = response.result.connections;
        appendPre('Connections:');

        if (connections.length > 0) {
            for (i = 0; i < connections.length; i++) {
                var person = connections[i];
                if (person.names && person.names.length > 0) {
                    appendPre(person.names[0].displayName)
                } else {
                    appendPre("No display name found for connection.");
                }
            }
        } else {
            appendPre('No connections found.');
        }
    });
}

quindi per esportare gli indirizzi email ci basta modificare questa funzione oppure crearne una nuova come la seguente

function listConnectionEmail:

 /**
  * Print the display email if available for 100 connections.
  */
 function listConnectionEmail() {
     gapi.client.people.people.connections.list({
         'resourceName': 'people/me',
         'pageSize': 100,
         'personFields': 'names,emailAddresses',
     }).then(function(response) {
         var connections = response.result.connections;
         appendPre('List Email Address:');
         if (connections.length > 0) {
             for (i = 0; i < connections.length; i++) {
                 var person = connections[i];
                 /** 
                  * Recupera indirizzo e-mail dei contatti >> 
                  */
                 if (person.emailAddresses && person.emailAddresses.length > 0) {
                     console.log(person.emailAddresses[0]);
                     appendPre(person.emailAddresses[0].value)
                 }
                 /**
                  * << Recupera indirizzo e-mail dei contatti 
                  */
             }
         } else {
             appendPre('No connections found.');
         }
     });
 }

e successivamente modificare la funzione updateSigninStatus sostituendo listConnectionNames() con listConnectionEmail()

function updateSigninStatus:

      /**
       *  Called when the signed in status changes, to update the UI
       *  appropriately. After a sign-in, the API is called.
       */
      function updateSigninStatus(isSignedIn) {
          if (isSignedIn) {
              authorizeButton.style.display = 'none';
              signoutButton.style.display = 'block';
              listConnectionEmail(); //<----listConnectionEmail()
          } else {
              authorizeButton.style.display = 'block';
              signoutButton.style.display = 'none';
          }
      }

a questo punto dopo aver effettuato l'accesso con l'utente di prova otterremo la lista delle email dei contatti Google.