Migrazione dall'API Email Settings

Questo documento illustra le principali differenze tra l'API Email Settings e l'API Gmail. Puoi utilizzare questa guida per eseguire la migrazione della tua app all'API Gmail.

Autorizzazione delle richieste

Come l'API Email Settings, l'API Gmail utilizza il protocollo OAuth 2.0 per autorizzare le richieste. Una differenza fondamentale è che le autorizzazioni API Gmail sono limitate a un singolo utente, anziché all'intero dominio. Ciò significa che l'autorizzazione di un account amministratore di dominio non ti consente di eseguire la migrazione della posta per altri utenti del dominio. Devi invece utilizzare service account standard con autorità a livello di dominio inseriti nella lista consentita della Console di amministrazione per generare il token di autenticazione appropriato.

L'API Email Settings utilizzava l'ambito:

https://apps-apis.google.com/a/feeds/emailsettings/2.0/

Gli ambiti equivalenti nell'API Gmail sono:

https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/gmail.settings.sharing

Modifiche del protocollo

L'API Email Settings utilizza il protocollo GDATA basato su XML. L'API Gmail utilizza JSON. Poiché le impostazioni sono costituite principalmente da coppie chiave/valore, i payload sono concettualmente simili tra le versioni.

Esempio di creazione di un'etichetta:

API Email Settings

POST https://apps-apis.google.com/a/feeds/emailsettings/2.0/{domain name}/{username}/label
<?xml version="1.0" encoding="utf-8"?>
<atom:entry xmlns:atom="http://www.w3.org/2005/Atom" xmlns:apps="http://schemas.google.com/apps/2006">
  <apps:property name="label" value="status updates" />
</atom:entry>

API Gmail

POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
   "name": "status updates"
}

Utilizza le librerie client fornite anziché implementare direttamente il protocollo.

Gestione delle etichette

Per gestire le etichette nell'API Gmail, utilizza la risorsa Etichette.

Vecchia impostazione Nuova impostazione Note
labelId id
etichetta nome
unreadCount messagesUnread
visibilità labelListVisibility SHOW è diventato labelShow
HIDE è diventato labelHide

Altre modifiche:

  • Quando aggiorni o elimini le etichette, l'API Gmail fa riferimento alle etichette per ID anziché per nome.

Gestire i filtri

Per gestire i filtri nell'API Gmail, utilizza la risorsa Filtri.

Vecchia impostazione Nuova impostazione Note
da criteria.from
a criteria.to
oggetto criteria.subject
hasTheWord criteria.query
doesNotHaveTheWord criteria.negatedQuery
hasAttachment criteria.hasAttachment
shouldArchive action.removeLabelIds Utilizza INBOX come ID etichetta
shouldMarkAsRead action.removeLabelIds Utilizza UNREAD come ID etichetta
shouldStar action.addLabelIds Utilizza STARRED come ID etichetta
etichetta action.addLabelIds Utilizzare l'ID dell'etichetta da aggiungere
forwardTo action.forward
shouldTrash action.addLabelIds Utilizza TRASH come ID etichetta
neverSpam action.removeLabelIds Utilizza SPAM come ID etichetta

Altre modifiche:

  • Se l'aggiunta di un'etichetta utente non esiste già, deve essere creata esplicitamente utilizzando il metodo labels.create.

Gestire gli alias Invia come

Per gestire gli alias Invia come nell'API Gmail, utilizza la risorsa SendAs.

Vecchia impostazione Nuova impostazione
nome displayName
indirizzo sendAsEmail
replyTo replyToAddress
makeDefault isDefault

Gestire i web clip

Le impostazioni dei clip web non sono più disponibili tramite l'API.

Gestire le impostazioni di inoltro automatico

Per gestire l'inoltro automatico nell'API Gmail, utilizza la risorsa Impostazioni.

Vecchia impostazione Nuova impostazione Note
attiva attivato
forwardTo emailAddress
azione disposizione KEEP è ora leaveInInbox
ARCHIVE è ora archive
DELETE è ora trash
MARK_READ è ora markRead

Altre modifiche:

  • Gli indirizzi di inoltro devono essere creati e verificati prima dell'uso
  • Gli indirizzi di inoltro possono essere gestiti tramite la risorsa ForwardingAddresses.

Gestire le impostazioni POP

Per gestire l'accesso POP nell'API Gmail, utilizza la risorsa Settings.

Vecchia impostazione Nuova impostazione Note
attiva accessWindow Disattivato se impostato su disabled
enableFor accessWindow ALL_MAIL è diventato allMail
MAIL_FROM_NOW_ON è diventato fromNowOn
azione disposizione KEEP è ora leaveInInbox
ARCHIVE è ora archive
DELETE è ora trash
MARK_READ è ora markRead

Gestire le impostazioni IMAP

Per gestire l'accesso IMAP nell'API Gmail, utilizza la risorsa Settings.

Vecchia impostazione Nuova impostazione
attiva attivato

Gestire le impostazioni della risposta automatica per le ferie

Per gestire la risposta automatica per le ferie nell'API Gmail, utilizza la risorsa Settings.

Vecchia impostazione Nuova impostazione
contactsOnly restrictToContacts
domainOnly restrictToDomain
attiva enableAutoReply
endDate endTime
messaggio responseBodyHtml
responseBodyPlainText
startDate startTime
oggetto responseSubject

Gestire le impostazioni della firma

Per gestire le firme email nell'API Gmail, utilizza la risorsa SendAs.

Vecchia impostazione Nuova impostazione
firma firma

Altre modifiche:

  • Ora le firme vengono gestite per alias.

Gestire le impostazioni della lingua

Per gestire le impostazioni della lingua nell'API Gmail, utilizza la risorsa Settings.

Vecchia impostazione Nuova impostazione
language displayLanguage

Per ulteriori informazioni, consulta la Guida alla gestione delle impostazioni della lingua.

Gestire le impostazioni di delega

Per gestire la delega nell'API Gmail, utilizza la risorsa Delegates.

Vecchia impostazione Nuova impostazione
indirizzo delegateEmail
stato verificationStatus

Altre modifiche:

  • Generale
    • Per utilizzare uno qualsiasi dei metodi di delega (incluso delegates.create) l'utente delegante deve essere abilitato per Gmail. Ciò significa, ad esempio, che l'utente delegante non può essere sospeso in .
    • Un alias email non può essere utilizzato come input email delegato per nessuno dei nuovi metodi. Un utente delegato deve essere indicato con il suo indirizzo email principale.
  • delegates.create
    • Questo metodo ora può essere utilizzato per creare relazioni di delega in più domini appartenenti alla stessa organizzazione.
    • Questo metodo ora può essere utilizzato per gli utenti che richiedono una modifica della password al prossimo accesso.
    • In caso di esito positivo, questo metodo restituisce una risorsa Users.settings.delegates nel corpo della risposta, anziché un corpo della risposta vuoto.
    • Se uno dei due utenti, il delegante o il delegato, è disattivato (ad esempio, sospeso in ), questo metodo non va a buon fine e restituisce un errore HTTP 4XX anziché un errore HTTP 500.
  • delegates.delete
    • Questo metodo ora può essere utilizzato per eliminare i delegati con qualsiasi verificationStatus, anziché solo i delegati con stato accepted o expired.
  • delegates.get
    • Si tratta di un nuovo metodo, che potrebbe essere preferibile al metodo delegates.list a seconda delle esigenze.

Gestire le impostazioni generali

Le impostazioni generali non sono più disponibili tramite l'API.