Inleiding tot de Gmail API

Wat je gaat creëren

Inleiding tot de Gmail API

In juni 2014 introduceerde Google zijn eerste API voor Gmail. Voor het eerst konden gebruikers van gratis Gmail-accounts hun Gmail-accounts programmatisch beheren zonder IMAP.

Met de API kunt u veel van dezelfde bewerkingen uitvoeren die beschikbaar zijn via de Gmail-gebruikersinterface, bijvoorbeeld berichten lezen, opstellen en verzenden. Hiermee kunt u ook labels op threads en berichten beheren en specifieke berichten en threads zoeken en ophalen.

De API is REST-gebaseerd en kan worden gebruikt om Gmail-postvakken te openen en e-mail te verzenden. Het biedt specifiek controle over:

  • authenticatie
  • Berichten en Concepten
  • labels
  • threads
  • account History

Google suggereert de volgende use cases voor de API:

  • E-mailextractie, indexering en back-up van alleen-lezen
  • Labelbeheer (labels toevoegen en verwijderen)
  • Geautomatiseerde of programmatische verzending van berichten

Toen ik mijn eigen e-mailbeheerapp bouwde, Simplify-e-mail (lees meer over het op Tuts + in het bouwen van geavanceerde e-mailfuncties met IMAP en PHP), was de enige Google e-mail-API beperkt tot betaalde abonnees van Google Apps. Dus ik heb alles op IMAP gebouwd. Hoewel dit voor brede compatibiliteit met andere e-mailproviders zorgde, creëerde het een aantal beperkingen op het gebied van prestaties en beveiliging.

De API biedt via OAuth toegang tot Gmail-accounts. Dit zorgt voor veilige, herroepbare toegang tot Gmail-accounts waarvoor gebruikers hun e-mailwachtwoorden niet hoeven te delen met applicatieproviders. 

Met de Gmail API kun je berichten verzenden en ophalen, labels toepassen, berichten zoeken met labels en e-mail binnen discussies beheren.

De accountgeschiedenis van de API biedt een logboek met berichtactiviteit voor toepassingen om te verwijzen, waardoor de complexiteit van het monitoren van wijzigingen in IMAP-accounts in realtime wordt verminderd.

Om ontwikkelaars te helpen met de API te duiken, biedt Google snelstartgidsen voor Java, .NET en Python. Er zijn ook clientbibliotheken beschikbaar voor Java, Javascript, .NET, Objective-C, PHP en Python; Dart, Go, Node.js en Ruby-bibliotheken worden in een vroeg stadium / in ontwikkeling aangeboden.

Over het algemeen is de Google Gmail API een grote stap vooruit.

Het potentieel van Gmail verbeteren

Ik ben geïnteresseerd geweest in het uitbreiden van Gmail sinds ik in 2010 Twaalf Gmail-ideeën schreef om e-mail te revolutie (opnieuw). De meeste ideeën die ik wilde, zoals white listing en niet storen, bleven buiten bereik zonder Google's inspanningen of een API. Voor een zo belangrijke applicatie als Gmail is de innovatie op dit soort geavanceerde functies vrij traag.

We verdrinken in e-mail en het beheren van onze inboxen blijft een zware last. Maildiensten en klanten hebben heel weinig gedaan om ons hiermee te helpen. Het grootste deel van de e-mail die we ontvangen, wordt verzonden door machines, niet door mensen, en toch zijn wij degenen die dit allemaal afzonderlijk moeten verwerken. 

Analyse van mijn eigen e-mail toonde aan dat ik e-mail ontving van meer dan 230 geautomatiseerde afzenders, veel minder echte mensen. Ik was het zat om filters in Gmail te maken en een groot aantal afmeldingsformulieren in te vullen. Ik wilde meer controle hebben over het beheer van mijn e-mail en mijn leven vereenvoudigen.

Met behulp van IMAP kon ik een aantal van de e-mailbeheerfuncties bouwen die ik wilde. Het resultaat was E-mail vereenvoudigen:

En nu kunt u met de Gmail-API veilige, optimaal presterende oplossingen zoals deze specifiek voor Gmail bouwen.

In oktober 2014 heeft Google ook Inbox aangekondigd, maar het blijft een uitnodiging en ik wacht al drie maanden.

Het is vermeldenswaard dat FastMail (hier meer informatie over hen) de ontwikkeling van JMAP leidt, een concurrerend aanbod voor de eigen Gmail API, en een die andere IMAP-providers in theorie ondersteuning zouden kunnen toevoegen voor.

Als je meer wilt weten over JMAP, plaats dan een reactie hieronder; Ik kan er later over schrijven.

Wat kunnen we doen met de Gmail API?

Laten we eens kijken naar de basisfuncties van de Gmail API. 

authenticatie

De Gmail API gebruikt OAuth 2.0 voor verificatie en autorisatie. Er zijn drie authenticatie scopes die afzonderlijk of in combinatie kunnen worden gebruikt. 

  • Alleen lezen, b.v. lees een bericht van Gmail
  • Wijzig, bijv. labels wijzigen die op een thread of bericht zijn toegepast
  • Compose, b.v. verstuur berichten namens een gebruiker

Dit geeft gebruikers verschillende besturingselementen voor hoe apps omgaan met hun account.

API-componenten

De Gmail-API biedt vijf primaire resourcetypen:

  • berichten
  • labels
  • Concepten
  • Geschiedenis
  • threads

berichten en labels zijn de basiseenheden van een mailbox. Concepten, geschiedenis en threads bevatten allemaal een of meer berichten met extra metagegevens.

Concepten zijn niet-verzonden berichten. Ze kunnen niet worden gewijzigd - alleen gemaakt en verwijderd. Ze kunnen ook worden verzonden.

labels zijn wat we gebruiken als mappen in Gmail. Ze helpen met het categoriseren en organiseren van berichten en discussielijnen. Er zijn zowel systeemlabels als INBOX, TRASH en SPAM en door gebruikers gegenereerde labels zoals TRAVEL.

threads zijn verzamelingen berichten die een gesprek vertegenwoordigen. Labels kunnen aan discussies worden toegevoegd en berichten kunnen aan threads worden toegevoegd.

Geschiedenis is een verzameling recentelijk gewijzigde berichten in chronologische volgorde. Geschiedenis kan worden gebruikt om een ​​toepassing te synchroniseren of acties op te nemen die door de gebruiker zijn uitgevoerd op zijn of haar account. 

Algemene scenario's

Berichten verzenden

U kunt het verzenden van berichten vanuit het account van de gebruiker automatiseren door eenvoudige en uit meerdere delen bestaande berichten te uploaden en te verzenden.

Ontvangen berichten ophalen

Gezien de ID van een e-mail van een zoek- of geschiedenisverzoek, kunt u de inhoud ervan downloaden met get message.

Zoeken naar berichten

U kunt berichten en discussielijnen vinden die overeenkomen met geavanceerde Gmail-filterquery's.

Wijzigingen in het account bewaken

U kunt de geschiedenis van accountacties van de afgelopen 30 dagen ophalen met de lijstgeschiedenis. U kunt dit gebruiken om een ​​postvakaccount gedeeltelijk te synchroniseren met uw toepassing en zelfs om meer te weten te komen over de voorkeuren van de gebruiker voor het filteren van berichten van een bepaald soort.

Labelbeheer

U kunt labels die zijn toegepast op berichten en discussielijnen toevoegen en verwijderen.

Volledige synchronisatie

U kunt een volledig account back-uppen van begin tot einde. Met de API kunt u door berichten in uw account bladeren met de berichtenlijstmethode.

Wat is het volgende?

In de volgende zelfstudie zal ik u helpen de API voor Gmail te gebruiken met uw op PHP gebaseerde toepassing.

Aarzel niet om uw vragen en opmerkingen hieronder te plaatsen. Je kunt me ook bereiken via Twitter @reifman of mij rechtstreeks een e-mail sturen. Volg mijn Tuts + -instructorpagina om toekomstige artikelen over de Gmail API te bekijken.

Gerelateerde Links

  • Overzicht van de Google Gmail API
  • Geavanceerde e-mailfuncties bouwen met IMAP en PHP (Tuts +)
  • JMAP: een betere manier om te e-mailen