Salta ai contenuti

Conectar Gmail

Questi contenuti non sono ancora disponibili nella tua lingua.

Esta guía te lleva —al administrador del tenant— por todo lo que hay que hacer en Google antes de conectar un buzón de Gmail desde OpenDome. Al terminar tendrás dos valores, un Client ID y un Client secret, que pegarás en la consola de OpenDome. Todo el trabajo de aquí se hace en la consola de Google Cloud, fuera de OpenDome.

Esto se hace una sola vez por organización. Hay dos formas de conectar, y la guía cubre ambas:

  • Iniciar sesión con Google (recomendada para empezar): un conector sincroniza el buzón de la cuenta que autoriza. Es el camino principal de esta guía.
  • Service account, para toda la organización (avanzada): un conector sincroniza una lista de buzones de tu Google Workspace, con una aprobación única del admin de Workspace y sin login por usuario. Ver Sincronizar toda la organización con una service account.

Antes de empezar: ¿Workspace o Gmail personal?

Sección titulada «Antes de empezar: ¿Workspace o Gmail personal?»

Es la decisión más importante y condiciona todos los pasos siguientes. El conector funciona en ambos casos —es la misma API de Gmail—, pero cómo registras la app cambia mucho.

Tu cuenta de Google Tipo de app a crear ¿Verificación de Google? ¿Caduca el acceso? Recomendado
Google Workspace (dominio corporativo) Interna No No
Gmail personal, en pruebas Externa · Testing No Sí, a los 7 días ⚠️ Solo pruebas
Gmail personal, publicada Externa · In production Sí — auditoría de seguridad (CASA) No ❌ Desaconsejado
Google Cloud Console
┌─────────────────────────────────────────────────────────────────────┐
│ 1. Crear/elegir un proyecto │
│ 2. Habilitar la API de Gmail │
│ 3. Configurar la pantalla de consentimiento (Interna vs Externa) │
│ 4. Crear las credenciales de cliente OAuth ──► Client ID + Secret │
└─────────────────────────────────────────────────────────────────────┘
OpenDome ── pegas Client ID + Secret ── pulsas "Conectar" ── eliges etiquetas

El Client secret es una contraseña: trátalo como tal (ver Seguridad).

  • Una cuenta de Google con permiso para crear proyectos en Google Cloud.
    • Para el camino recomendado (app Interna), esa cuenta debe pertenecer a una organización de Google Workspace y tener rol suficiente (normalmente Propietario o Editor del proyecto).
  • La URL de redirección (redirect URI) que te da OpenDome (la necesitarás en el paso 4). Es la dirección a la que Google devolverá el navegador tras autorizar: https://<tu-consola-de-tenant>/v1/oauth/callback. OpenDome te muestra la URL exacta en la pantalla de conexión del conector — cópiala de ahí.
  • Opcionalmente, qué etiquetas de Gmail quieres sincronizar (las eliges después, dentro de OpenDome; en blanco sincroniza Recibidos y Enviados).

Paso 1 — Crear (o elegir) un proyecto en Google Cloud

Sección titulada «Paso 1 — Crear (o elegir) un proyecto en Google Cloud»

Un proyecto de Google Cloud es el contenedor donde vive tu app OAuth.

  1. Entra en console.cloud.google.com.
  2. Arriba, en el selector de proyectos, pulsa New Project (Nuevo proyecto).
  3. Ponle un nombre reconocible (p. ej. opendome-gmail-connector) y, si te lo pide, elige tu organización de Workspace. Pulsa Create.
  4. Espera a que se cree y selecciónalo en el selector de arriba antes de seguir.

La app solo puede llamar a APIs que estén habilitadas en el proyecto.

  1. Menú lateral → APIs & ServicesLibrary (Biblioteca).
  2. Busca Gmail API.
  3. Ábrela y pulsa Enable (Habilitar).

Paso 3 — Configurar la pantalla de consentimiento de OAuth

Sección titulada «Paso 3 — Configurar la pantalla de consentimiento de OAuth»

Es la ventana que verá quien autorice (“OpenDome quiere acceder a tu Gmail”). Hay que configurarla una vez antes de poder crear credenciales.

  1. Menú lateral → APIs & ServicesOAuth consent screen.
  2. User Type / Tipo de usuario:
    • Elige Internal (Interna) si tu cuenta es de Google Workspace ← recomendado. Solo podrán autorizar personas de tu organización y Google no exigirá verificación.
    • Elige External (Externa) si usas Gmail personal (es la única opción).
  3. Rellena los datos: App name (p. ej. OpenDome – Gmail connector), User support email y Developer contact. Logo y enlaces son opcionales.
  4. Scopes (permisos): pulsa Add or remove scopes y añade el permiso de solo lectura de Gmail:
    https://www.googleapis.com/auth/gmail.readonly
    Es el único que OpenDome necesita: leer, nunca enviar, modificar ni borrar. Guarda.
  5. Solo si elegiste Externa: en Test users, pulsa Add users y añade la dirección de Google que va a autorizar la conexión. Sin esto, la autorización falla con un error de “app no verificada”.
  6. Guarda. No hace falta pulsar “Publish app” para el camino recomendado (Interna), ni para probar con una Externa en modo pruebas.

Paso 4 — Crear las credenciales de cliente OAuth

Sección titulada «Paso 4 — Crear las credenciales de cliente OAuth»

Aquí es donde salen el Client ID y el Client secret.

  1. Menú lateral → APIs & ServicesCredentials (Credenciales).
  2. Pulsa + Create CredentialsOAuth client ID.
  3. Application type / Tipo de aplicación: elige Web application (Aplicación web).
  4. Name: algo reconocible (p. ej. opendome-gmail-web).
  5. Authorized redirect URIs: pulsa + Add URI y pega la URI de redirección de OpenDome (la de Requisitos previos). Debe coincidir exactamente —protocolo, host, puerto y ruta—; un solo carácter de diferencia hace que Google rechace la conexión.
    https://<tu-consola-de-tenant>/v1/oauth/callback
  6. Pulsa Create. Google te muestra un cuadro con el Client ID y el Client secret.

Paso 5 — Copiar el Client ID y el Client secret

Sección titulada «Paso 5 — Copiar el Client ID y el Client secret»
  • Client ID — una cadena larga que termina en .apps.googleusercontent.com. No es secreto, pero cópialo tal cual.
  • Client secret — empieza por GOCSPX-…. Es una contraseña. Cópialo a un sitio seguro; si lo pierdes puedes generar otro desde la misma pantalla.
  1. Entra en tu tenant → ConectoresNuevo conectorGmail.
  2. Pega el Client ID y el Client secret en sus campos.
  3. Pulsa Conectar. Se abre la ventana de Google: elige la cuenta cuyo buzón quieres sincronizar y acepta el permiso de solo lectura. Volverás a OpenDome automáticamente.
  4. Ajusta si quieres el campo Etiquetas: en blanco sincroniza Recibidos y Enviados; puedes listar etiquetas concretas (p. ej. Facturas), o usar all para todo el buzón salvo Spam, Papelera y Borradores.
  5. Guarda. El conector queda listo para su primera sincronización.

Sincronizar toda la organización con una service account (avanzado)

Sección titulada «Sincronizar toda la organización con una service account (avanzado)»

Un solo conector puede sincronizar muchos buzones de tu Google Workspace — sin login por usuario — usando una service account con delegación a nivel de dominio (domain-wide delegation). Requiere aprobación de un superadministrador de Workspace y sustituye al flujo de inicio de sesión de arriba (sigues necesitando los pasos 1–2: un proyecto con la API de Gmail habilitada).

  1. En el proyecto: IAM & AdminService Accounts+ Create service account. Ponle nombre (p. ej. opendome-gmail-org); no necesita roles. Crea.
  2. Abre la service account → KeysAdd keyCreate new keyJSON. Se descarga un fichero .jsones una contraseña, guárdalo a buen recaudo.
  3. Copia el Client ID de la service account (el Unique ID numérico largo de su página de detalle).
  4. Como superadmin de Workspace, entra en admin.google.comSeguridadAcceso y control de datosControles de APIDelegación de todo el dominioAñadir nueva:
    • ID de cliente: el ID numérico del paso anterior.
    • Ámbitos de OAuth: exactamente
      https://www.googleapis.com/auth/gmail.readonly
    • Autoriza.
  5. En OpenDome, en el paso de conexión del conector de Gmail, elige la opción de service account, pega el fichero JSON completo en su campo y rellena Buzones a sincronizar con las direcciones, separadas por comas (p. ej. ana@acme.com, luis@acme.com).
Síntoma Causa y solución
redirect_uri_mismatch al Conectar La URI de redirección de la app no coincide exactamente con la de OpenDome. Revisa protocolo (http/https), host, puerto y ruta (/v1/oauth/callback), sin barra final de más.
“Access blocked: app no verificada” App Externa y no añadiste tu correo como usuario de prueba (paso 3.5), o autorizas con una cuenta que no está en la lista. Añade el usuario, o —si tienes Workspace— cambia a app Interna.
El conector deja de sincronizar tras ~1 semana App Externa en modo pruebas: Google caduca el acceso a los 7 días. Solución real: Workspace + app Interna.
invalid_client Client ID o Client secret mal copiados (espacios, recortes). Vuelve a copiarlos del paso 5.
“Etiqueta no encontrada” en la sincronización El nombre de etiqueta del conector no existe en ese buzón. Los nombres son los de Gmail tal cual (sin distinguir mayúsculas); una etiqueta anidada es su ruta completa, p. ej. Facturas/2026.
unauthorized_client con service account Falta la delegación de dominio o está mal: el ID de cliente numérico en admin.google.com debe ser el de la service account, y el ámbito exactamente https://www.googleapis.com/auth/gmail.readonly. Los cambios de delegación pueden tardar unos minutos en aplicarse.
“Refresh token no recibido” Ocurre si reautorizas sin forzar el consentimiento. Nuestra app ya pide access_type=offline + prompt=consent, así que vuelve a pulsar Conectar y acepta de nuevo.
  • Solo lectura. El único permiso que pedimos es gmail.readonly. OpenDome no puede enviar, modificar ni borrar nada del buzón.
  • Tus credenciales no salen de tu entorno. El Client secret y el token —o la clave de la service account— viven en un Secret de tu celda; el intercambio del token OAuth ocurre dentro de tu celda. El plano de control global de OpenDome nunca los ve y nunca contacta con Google en tu nombre.
  • Egress mínimo. El conector solo puede salir hacia los dominios de Google estrictamente necesarios (accounts.google.com, oauth2.googleapis.com, gmail.googleapis.com, www.googleapis.com); cualquier otra salida está bloqueada por defecto.
  • Revocable en cualquier momento. Retira el acceso desde la cuenta de Google (myaccount.google.com/permissions), elimina el cliente OAuth en Google Cloud o —con service account— quita la entrada de delegación en admin.google.com; el conector pierde el acceso de lectura inmediatamente.
  • Rotación del secret. Para rotar, genera un nuevo Client secret (o una nueva clave de service account) en Google Cloud y vuelve a conectarlo en OpenDome; el anterior queda invalidado.