Este documento puede ayudarte a migrar tu app de la API de Email Settings obsoleta a la API de Gmail.
Autoriza solicitudes
Al igual que la API de Email Settings, la API de Gmail usa el protocolo OAuth 2.0 para autorizar solicitudes. Una diferencia clave es que los permisos de la API de Gmail se limitan a un usuario individual, en lugar de a todo el dominio. Esto significa que autorizar una cuenta de administrador de dominio no te permite migrar el correo de otros usuarios del dominio. En su lugar, debes usar cuentas de servicio estándar con autoridad en todo el dominio que se agreguen a una lista de entidades permitidas en la Consola del administrador de Google para generar el token de autenticación adecuado.
La API de Email Settings usaba el permiso:
https://apps-apis.google.com/a/feeds/emailsettings/2.0/
Los permisos equivalentes en la API de Gmail son los siguientes:
https://www.googleapis.com/auth/gmail.settings.basic
https://www.googleapis.com/auth/gmail.settings.sharing
Cambios de protocolo
La API de Email Settings usa el protocolo GDATA basado en XML. La API de Gmail usa JSON. Dado que la configuración se compone principalmente de pares clave-valor, las cargas útiles son conceptualmente similares entre las versiones.
Ejemplo de creación de una etiqueta:
API de 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 de Gmail
POST https://www.googleapis.com/gmail/v1/users/{username}/labels
{
"name": "status updates"
}
Usa las bibliotecas cliente proporcionadas en lugar de implementar el protocolo directamente.
Administrar etiquetas
Para administrar etiquetas en la API de Gmail, usa el
labels recurso.
| Configuración anterior | Configuración nueva | Notas |
|---|---|---|
| labelId | id | |
| label | nombre | |
| unreadCount | messagesUnread | |
| visibilidad | labelListVisibility | SHOW ahora es labelShowHIDE ahora es labelHide. |
Otros cambios:
- Cuando se actualizan o borran etiquetas, la API de Gmail hace referencia a las etiquetas por ID en lugar de por nombre.
Administrar filtros
Para administrar filtros en la API de Gmail, usa el
settings.filters
recurso.
| Configuración anterior | Configuración nueva | Notas |
|---|---|---|
| de | criteria.from | |
| a | criteria.to | |
| asunto | criteria.subject | |
| hasTheWord | criteria.query | |
| doesNotHaveTheWord | criteria.negatedQuery | |
| hasAttachment | criteria.hasAttachment | |
| shouldArchive | action.removeLabelIds | Usa INBOX como el ID de la etiqueta. |
| shouldMarkAsRead | action.removeLabelIds | Usa UNREAD como el ID de la etiqueta. |
| shouldStar | action.addLabelIds | Usa STARRED como el ID de la etiqueta. |
| etiqueta | action.addLabelIds | Usa el ID de la etiqueta que deseas agregar. |
| forwardTo | action.forward | |
| shouldTrash | action.addLabelIds | Usa TRASH como el ID de la etiqueta. |
| neverSpam | action.removeLabelIds | Usa SPAM como el ID de la etiqueta. |
Otros cambios:
- Si aún no existe una etiqueta de usuario, se debe crear explícitamente
con el
labels.createmétodo.
Administra alias de enviar como
Para administrar alias de enviar como en la API de Gmail, usa el
settings.sendAs recurso.
| Configuración anterior | Configuración nueva |
|---|---|
| nombre | displayName |
| dirección | sendAsEmail |
| replyTo | replyToAddress |
| makeDefault | isDefault |
Administra clips web
La configuración de clips web no está disponible en la API de Gmail.
Administra el reenvío automático
Para administrar el reenvío automático en la API de Gmail, usa el
settings recurso.
| Configuración anterior | Configuración nueva | Notas |
|---|---|---|
| habilitar | habilitado | |
| forwardTo | emailAddress | |
| acción | disposition | KEEP ahora es leaveInInboxARCHIVE ahora es archiveDELETE ahora es trashMARK_READ ahora es markRead |
Otros cambios:
- Las direcciones de reenvío se deben crear y verificar antes de usarlas.
- Las direcciones de reenvío se pueden administrar con el
settings.forwardingAddressesrecurso.
Administra la configuración de POP
Para administrar el acceso POP en la API de Gmail, usa el
settings recurso.
| Configuración anterior | Configuración nueva | Notas |
|---|---|---|
| habilitar | accessWindow | Se inhabilita cuando se establece en disabled. |
| enableFor | accessWindow | ALL_MAIL ahora es allMailahora es MAIL_FROM_NOW_ONfromNowOn |
| acción | disposition | KEEP ahora es leaveInInboxARCHIVE ahora es archiveDELETE ahora es trashMARK_READ ahora es markRead |
Administra la configuración de IMAP
Para administrar el acceso IMAP en la API de Gmail, usa el
settings recurso.
| Configuración anterior | Configuración nueva |
|---|---|
| habilitar | habilitado |
Administra la configuración de respuesta automática de vacaciones
Para administrar la respuesta automática de vacaciones en la API de Gmail, usa el
settings recurso.
| Configuración anterior | Configuración nueva |
|---|---|
| contactsOnly | restrictToContacts |
| domainOnly | restrictToDomain |
| habilitar | enableAutoReply |
| endDate | endTime |
| mensaje | responseBodyHtml responseBodyPlainText |
| startDate | startTime |
| asunto | responseSubject |
Administra la configuración de firmas
Para administrar firmas de correo electrónico en la API de Gmail, usa el
settings.sendAs
recurso.
| Configuración anterior | Configuración nueva |
|---|---|
| firma | signature |
Otros cambios:
- Las firmas ahora se administran por alias.
Administra la configuración de idioma
Para administrar la configuración de idioma en la API de Gmail, usa el
settings recurso.
| Configuración anterior | Configuración nueva |
|---|---|
| idioma | displayLanguage |
Para obtener más información, consulta Administra la configuración de idioma.
Administrar la configuración de delegación
Para administrar la delegación en la API de Gmail, usa el
settings.delegates
recurso.
| Configuración anterior | Configuración nueva |
|---|---|
| dirección | delegateEmail |
| estado | verificationStatus |
Otros cambios:
- General
- Para usar cualquiera de los métodos de delegación (incluido
settings.delegates.create) el usuario delegador debe estar habilitado para Gmail. Esto significa, por ejemplo, que el usuario delegador no se puede suspender en Google Workspace. - No se puede usar un alias de correo electrónico como entrada de correo electrónico delegado para ninguno de los métodos nuevos. Se debe hacer referencia a un usuario delegado por su dirección de correo electrónico principal.
- Para usar cualquiera de los métodos de delegación (incluido
settings.delegates.create- Ahora se puede usar este método para crear relaciones de delegados en varios dominios que pertenecen a la misma organización de Google Workspace.
- Ahora se puede usar este método para los usuarios que requieren un cambio de contraseña en su próximo acceso.
- Si la respuesta es correcta, este método muestra un
settings.delegatesrecurso en el cuerpo de la respuesta, en lugar de un cuerpo de respuesta vacío. - Si alguno de los usuarios delegador o delegado está inhabilitado (por ejemplo, suspendido en Google Workspace), este método falla con un error HTTP 4XX en lugar de un error HTTP 500.
settings.delegates.delete- Ahora se puede usar este método para borrar delegados con cualquier
VerificationStatus, en lugar de solo delegados que seanacceptedoexpired.
- Ahora se puede usar este método para borrar delegados con cualquier
settings.delegates.get- Este es un método nuevo, que puede ser preferible al
settings.delegates.listmétodo según la necesidad.
- Este es un método nuevo, que puede ser preferible al
Administrar la configuración general
La configuración general no está disponible en la API de Gmail.