Introduzione all'API Gmail

Cosa starai creando

Introduzione all'API Gmail

Nel giugno 2014, Google ha introdotto la sua prima API per Gmail. Per la prima volta, gli utenti di account Gmail gratuiti possono gestire in modo programmatico i propri account Gmail senza IMAP.

Utilizzando l'API, puoi eseguire molte delle stesse operazioni disponibili tramite l'interfaccia utente di Gmail, ad es. leggere, comporre e inviare messaggi. Consente inoltre di gestire le etichette su thread e messaggi e di cercare e recuperare messaggi e thread specifici.

L'API è basata su REST e può essere utilizzata per accedere alle caselle di posta Gmail e inviare posta. Fornisce specificamente il controllo su:

  • Autenticazione
  • Messaggi e Bozze
  • etichette
  • discussioni
  • Storia del conto

Google suggerisce i seguenti casi d'uso per l'API:

  • Estrazione, indicizzazione e backup della posta in sola lettura
  • Gestione delle etichette (aggiunta e rimozione delle etichette)
  • Invio automatico o programmatico di messaggi

Quando ho creato la mia applicazione di gestione della posta elettronica, Semplifica email (leggi ulteriori informazioni su Tuts + in Building Advanced Email Features con IMAP e PHP), l'unica API di posta elettronica di Google era limitata agli abbonati a pagamento di Google Apps. Quindi, ho costruito tutto su IMAP. Sebbene ciò consentisse un'ampia compatibilità con altri provider di posta elettronica, ha creato alcune limitazioni in termini di prestazioni e sicurezza.

L'API fornisce l'accesso agli account Gmail tramite OAuth. Ciò consente un accesso sicuro e revocabile agli account Gmail che non richiede agli utenti di condividere le loro password e-mail con i fornitori di applicazioni. 

Con l'API di Gmail, puoi inviare e recuperare messaggi, applicare etichette, trovare messaggi con etichette e gestire la posta elettronica all'interno dei thread.

La cronologia dell'account dell'API fornisce un registro dell'attività dei messaggi a cui le applicazioni fanno riferimento, riducendo la complessità del monitoraggio delle modifiche agli account IMAP in tempo reale.

Per aiutare gli sviluppatori ad immergersi con l'API, Google fornisce guide rapide per Java, .NET e Python. Sono disponibili anche librerie client per Java, Javascript, .NET, Objective-C, PHP e Python; Le librerie Dart, Go, Node.js e Ruby sono offerte come fase iniziale / in fase di sviluppo.

Nel complesso, l'API Gmail di Google è un grande passo avanti.

Potenziale di miglioramento di Gmail

Sono stato interessato ad estendere Gmail da quando ho scritto Twelve Gmail Ideas per rivoluzionare l'email (ancora) nel 2010. La maggior parte delle idee che desideravo, come la lista bianca e non disturbare, rimanevano fuori dalla portata senza gli sforzi di Google o una API. Per quanto sia importante un'applicazione come Gmail, l'innovazione su questi tipi di funzionalità avanzate è stata piuttosto lenta.

Stiamo affogando nelle e-mail e la gestione delle nostre caselle di posta rimane un pesante fardello. I servizi di posta e i clienti hanno fatto ben poco per aiutarci in questo. La maggior parte delle e-mail che riceviamo viene inviata dalle macchine, non dalle persone, eppure siamo noi a doverle elaborare singolarmente. 

L'analisi della mia e-mail ha mostrato che stavo ricevendo e-mail da più di 230 mittenti automatici, molte meno persone reali. Ero stanco di costruire filtri in Gmail e compilare una miriade di moduli di disiscrizione. Volevo avere più controllo sulla gestione della mia email e semplificare la mia vita.

Utilizzando IMAP, sono stato in grado di creare una serie di funzionalità di gestione della posta elettronica che volevo. Il risultato è stato Simplify Email:

E ora, con l'API di Gmail, puoi creare in modo specifico soluzioni sicure e performanti come quelle di Gmail.

Inoltre, nell'ottobre 2014, Google ha annunciato Inbox, ma rimane solo su invito e ho aspettato tre mesi.

Vale la pena notare che FastMail (saperne di più su di loro qui) sta conducendo lo sviluppo di JMAP, un'offerta competitiva alle API proprietarie di Gmail, e uno che altri provider IMAP potrebbero teoricamente aggiungere il supporto per.

Se sei interessato a saperne di più su JMAP, pubblica un commento qui sotto; Potrei scriverlo in un secondo momento.

Cosa possiamo fare con l'API di Gmail?

Esaminiamo le funzioni di base dell'API di Gmail. 

Autenticazione

L'API di Gmail utilizza OAuth 2.0 per gestire l'autenticazione e l'autorizzazione. Esistono tre ambiti di autenticazione che possono essere utilizzati singolarmente o in combinazione. 

  • Sola lettura, ad es. leggi un messaggio da Gmail
  • Modifica, ad es. cambia le etichette applicate a un thread o messaggio
  • Componi, ad es. inviare messaggi per conto di un utente

Ciò offre agli utenti una varietà di controlli sul modo in cui le app interagiscono con il proprio account.

Componenti API

L'API di Gmail fornisce cinque tipi di risorse principali:

  • messaggi
  • etichette
  • bozze
  • Storia
  • discussioni

messaggi e le etichette sono le unità di base di una cassetta postale. Bozze, cronologia e discussioni contengono tutti uno o più messaggi con metadati aggiuntivi.

bozze sono messaggi non inviati. Non possono essere modificati, solo creati e cancellati. Possono anche essere inviati.

etichette sono ciò che usiamo come cartelle in Gmail. Aiutano con la categorizzazione e l'organizzazione di messaggi e thread. Esistono sia etichette di sistema come INBOX, TRASH e SPAM sia etichette generate dall'utente come TRAVEL.

discussioni sono raccolte di messaggi che rappresentano una conversazione. Le etichette possono essere aggiunte ai thread e i messaggi possono essere aggiunti ai thread.

Storia è una raccolta di messaggi modificati di recente in ordine cronologico. La cronologia può essere utilizzata per sincronizzare un'applicazione o per recuperare azioni eseguite dall'utente sul proprio account. 

Scenari comuni

Invio di messaggi

Puoi automatizzare l'invio di messaggi dall'account dell'utente caricando messaggi semplici e multiparte e inviandoli.

Recupero dei messaggi ricevuti

Dato l'ID di un'e-mail da una richiesta di ricerca o cronologia, è possibile scaricarne il contenuto utilizzando il messaggio get.

Ricerca di messaggi

Puoi trovare messaggi e thread che corrispondono alle query avanzate sui filtri di Gmail.

Monitorare le modifiche all'account

Puoi recuperare la cronologia delle azioni dell'account negli ultimi 30 giorni con la cronologia delle liste. È possibile utilizzare questo per sincronizzare parzialmente un account di cassetta postale per l'applicazione e anche per conoscere le preferenze dell'utente per filtrare i messaggi di un certo tipo.

Gestione delle etichette

È possibile aggiungere e rimuovere etichette applicate a messaggi e thread.

Sincronizzazione completa

Puoi eseguire il backup di un intero account dall'inizio alla fine. L'API ti consente di sfogliare i messaggi nel tuo account con il metodo dell'elenco dei messaggi.

Qual'è il prossimo?

Nel prossimo tutorial, inizierò a illustrarti come utilizzare l'API di Gmail con l'applicazione basata su PHP.

Non esitate a postare le vostre domande e commenti qui sotto. Puoi anche raggiungermi su Twitter @reifman o mandarmi un'email direttamente. Segui la mia pagina di istruttori + istruttore per visualizzare gli articoli futuri sull'API di Gmail.

Link correlati

  • Panoramica dell'API di Google Gmail
  • Creazione di funzionalità avanzate di posta elettronica con IMAP e PHP (Tuts +)
  • JMAP: un modo migliore per inviare email