Oversigt over Gmail API
Gmail API er et RESTful API, der kan bruges til at få adgang til Gmail-postkasser og til at sende post. For de fleste webapplikationer (herunder mobilapps) er Gmail API det bedste valg til autoriseret adgang til en brugers Gmail-data.
Gmail API giver dig fleksibel, RESTful-adgang til brugerens indbakke med en naturlig grænseflade tilThreads
,Messages
,Labels
,Drafts
,History
og.Settings
.Fra det moderne sprog efter eget valg kan din app bruge API’et til at tilføjeGmail funktioner som f.eks:
- Læse meddelelser fra Gmail
- Sende e-mail-meddelelser
- Modificere de etiketter, der anvendes på meddelelser og tråde
- Søge efter bestemte meddelelser og tråde
- Opret filtre til automatisk at mærke, videresende eller arkivere meddelelser
Det eneste, du skal bruge for at bruge Gmail API’et, er klientbiblioteket til det sprog, du vælger, og en app, der kan godkende dig som Gmail-bruger.
Typiske anvendelsestilfælde
Gmail API’et kan bruges i en række forskellige applikationer, herunder,typisk:
- Udtrækning, indeksering og sikkerhedskopiering af post med skrivebeskyttet læsning
- Mærkestyring (tilføj/fjern etiketter)
- Automatiseret eller programmatisk afsendelse af meddelelser
- Migrering af e-mail-konti fra andre udbydere
- Sæt standardiserede e-mail-signaturer for brugere i et domæne
Hvordan får jeg mere at vide?
Brug denne dokumentation til at begynde at bygge en Gmail-app i dag:
- Klientbibliotekerne kan downloades på flere sprog og gør det nemmere at foretage API-forespørgsler.
- Temaerne i udviklervejledningen hjælper dig med at forstå bedre, hvordan du implementerer bestemte anvendelsestilfælde.
- API-referencen giver dig oplysninger om alle ressourcer og metoder i Gmail API.
API-oversigt
Gmail API er en webtjeneste: den bruger et RESTful API med en JSON-nytelast.Dette afsnit giver en generel oversigt over API-funktionerne og deres anvendelse. Fordetaljerede oplysninger om API’ets ressourcer og metoder henvises til GmailAPI-referencen.
Nøgle ressourcetyper
Gmail-API’en indeholder flere ressourcetyper:
- Messages
- Labels
- Drafts
- History
- Threads
- Settings
Messages og labels er de grundlæggende enheder i en postkasse. Kladder, historik og tråde indeholder alle en eller flere meddelelser med yderligere metadata.
Meddelelser er uforanderlige: de kan kun oprettes og slettes. Ingen beskedegenskaber kan ændres, bortset fra de etiketter, der anvendes på en given besked.
Etiketter tjener som det primære middel til at kategorisere og organisere meddelelser og tråde. En etiket har et mange-til-mange-forhold til meddelelser og tråde: en enkelt meddelelse kan have flere etiketter anvendt på den, og en enkelt etiket kan anvendes på flere meddelelser eller tråde. Etiketter findes også i to typer: system
og user
. Systemetiketter, f.eks. INBOX
, TRASH
eller SPAM
, er internt oprettet og kan ikke oprettes, slettes eller ændres. Nogle systemetiketter, f.eks. INBOX
, kan dog anvendes på eller fjernes fra meddelelser og tråde. Brugermærker kan tilføjes, slettes eller ændres af brugeren eller et program.
Drafts repræsenterer ikke afsendte meddelelser. Selve meddelelserne kan ikke ændres, når de først er oprettet, men den meddelelse, der er indeholdt i kladden, kan erstattes.Afsendelse af en kladde sletter automatisk kladden og opretter en meddelelse med SENT
systemmærket.
Historik er en samling af nyligt ændrede meddelelser i kronologisk rækkefølge.Selvom historikken er tænkt som en letvægtsmetode til synkronisering af en klient, indeholder den typisk kun registreringer af ændringer inden for de seneste 30 dage. I nogle tilfælde, f.eks. når en klient bliver for forældet, bør klienten synkronisere manuelt.
Threads er samlinger af meddelelser, der repræsenterer en samtale. Ligesom meddelelser kan tråde også have etiketter påført dem. Men i modsætning til meddelelser kan tråde ikke oprettes, men kun slettes. Meddelelser kan dog indsættes i en tråd.
Indstillinger styrer, hvordan funktioner i Gmail opfører sig for en bruger. Der findes indstillinger for POP- og IMAP-adgang, e-mail-videresendelse, filtre, automatisk feriesvar, send-as-aliaser, signaturer, delegater og sprog.
Auth og Gmail API
Lige andre Google REST API’er bruger Gmail API’etOAuth 2.0til at håndtere godkendelse og autorisering. Din app angiver et eller flere anvendelsesområder: strenge, der identificerer de ressourcer, som den har brug for at få adgang til. Disse scopes bruges sammen med et sæt tokens til at sikre en brugers adgang til ressourcer.Et scope repræsenterer f.eks. en bestemt form for adgang til en enkelt ressource eller til en gruppe af ressourcer:
- Læs en besked fra Gmail (
https://www.googleapis.com/auth/gmail.readonly
) - Ændre etiketter, der er anvendt på en tråd eller besked(
https://www.googleapis.com/auth/gmail.modify
) - Sende en besked på vegne af en bruger(
https://www.googleapis.com/auth/gmail.compose
)
Og selv om du kan kode webtjenestens godkendelseskald eksplicit, bør du normalt forenkle din app ved at bruge Google API-klientbibliotekerne, der er tilgængelige for mange programmeringssprog.
For mere om brug af auth med Gmail-API, seAutorisering af din app med Gmail.
Skoper
Gmail-API understøtter en række finkornede autorisationsskoper for kun at tillade det nødvendige adgangsniveau. Ved at anmode om det minimumsniveau af adgang, der kræves, føler brugerne sig mere trygge ved at give adgang til deres postkasse.
Eksempel på brugssituation
Opnå følgende brugssituation: Udskrivning af en side med tråde for den aktuelt autentificerede bruger (f.eks. i et panel med seneste meddelelser).For at opnå dette vil din app udføre følgende trin:
- Autentificer dig som brugeren ved hjælp af
https://www.googleapis.com/auth/gmail.readonly
-området. - Kald API-metoden.
GET https://www.googleapis.com/gmail/v1/users/<userId>/threads
- Behandl den returnerede liste over tråde i din app.
For egentlig eksempelkode henvises til Quickstart for det sprog, du vælger.
Fælles anvendelser
Dette afsnit giver et meget højt niveau overblik over, hvordan nogle almindelige anvendelsestilfælde kanimplementeres. Du kan finde flere oplysninger i udviklerguiderne.
Sendelse af Gmail-meddelelser
E-mails sendes som base64url-kodede strenge inden for raw
egenskaben for en meddelelse. Sådan oprettes og sendes en meddelelse:
- Opret e-mailindholdet på en praktisk måde, hvilket kan afhænge af det programmeringssprog, du bruger.
- Opret en base64url-kodet strengrepræsentation af dette indhold.
- Opret en ny messageresource, og indstil dens
raw
-egenskab til den base64url-streng, du lige har oprettet. - Kald
messages.send
for at sende meddelelsen.
Henter modtagne e-mails
Givet ID’et for en e-mail kan du hente indholdet ved hjælp af get
metoden for Users.messages
-ressourcen.
Når du henter en meddelelse, kan du angive payload-formatet for svaret.FULL
-formatet (standardformatet) returnerer hele den analyserede meddelelse i payload
-feltet.MINIMAL
-formatet returnerer kun metadata som f.eks. identifikatorer og etiketter.RAW
-formatet returnerer dataene som en base64url-kodet streng i raw
-egenskaben.
Mailændringshistorik
Meddelelsesændringer repræsenteres afHistory objects
. Med egenskabenstart_history_id
kan du indstille, fra hvilket tidspunkt du vil have ændringer returneret. Nogle ændringer kan påvirke mere end én meddelelse, og så vil den historik, der repræsenterer den pågældende ændring, indeholde flere meddelelser.
Mærkathåndtering
Mærker, der anvendes på en tråd, anvendes også på alle meddelelser i tråden.Hvis en etiket slettes, fjernes den fra alle tråde og meddelelser, den blev anvendt på. Egenskaben messageListVisibility
bruges til at bestemme, om meddelelser med denne etiket vises på listen over meddelelser. På samme måde bruges egenskaben labelListVisibility
til at bestemme, om etiketten vises på etiketlisten. Du kan bruge metodenmessages.modify
ellerthreads.modify
til at ændre de etiketter, der anvendes på henholdsvis meddelelser eller tråde.
Leave a Reply