Hola a todos,
Estoy construyendo un asistente de correo electrónico con IA autohospedado con n8n para pequeñas empresas y actualmente me estoy preparando para la verificación de OAuth de Google.
El flujo de trabajo:
- Lee mensajes de Gmail sin leer
- Filtra correos electrónicos automatizados
- Envía el contenido a Claude
- Crea borradores de Gmail
- Marca el mensaje como leído solo después del procesamiento exitoso
- Envía un resumen de ejecución
La aplicación nunca elimina permanentemente correos electrónicos.
Lo que encontré
Después de investigar, descubrí que la credencial nativa de Gmail OAuth2 API tiene sus alcances codificados.
Siempre solicita:
- gmail.labels
- gmail.addons.current.action.compose
- gmail.addons.current.message.action
- mail.google.com
- gmail.modify
- gmail.compose
La propiedad Scope está oculta, por lo que no hay forma de personalizarla desde la interfaz de usuario.
También encontré discusiones comunitarias que muestran que simplemente restringir los alcances en Google Cloud causa que la autorización de OAuth falle con HTTP 403 porque la credencial de Gmail sigue solicitando la lista de alcances codificados completa.
También hay una solicitud de función abierta pidiendo que el nodo de Gmail admita la credencial genérica de Google OAuth en lugar de la credencial de Gmail fija.
Mi pregunta
¿Ha completado alguien aquí la verificación de OAuth de Google mientras mantiene el nodo nativo de Gmail?
Si es así:
- ¿Google aceptó los alcances codificados predeterminados?
- ¿Tuvo que justificar
mail.google.com? - ¿Google solicitó algún cambio?
¿O terminó reemplazando los nodos de Gmail con nodos de HTTP Request utilizando una credencial genérica de Google OAuth2 y la API REST de Gmail?
No estoy buscando consejos teóricos: me gustaría mucho recibir comentarios de alguien que haya completado exitosamente el proceso de verificación de Google con una aplicación n8n en producción.
¡Gracias!
Comparte tu flujo de trabajo
(Selecciona los nodos en tu lienzo y usa los atajos de teclado CMD+C/CTRL+C y CMD+V/CTRL+V para copiar y pegar el flujo de trabajo.)
Comparte el resultado devuelto por el último nodo
Información sobre tu configuración de n8n
- versión de n8n: “localhost”
- Base de datos (predeterminada: SQLite):
- Configuración EXECUTIONS_PROCESS de n8n (predeterminada: own, main):
- Ejecutando n8n a través de (Docker, npm, n8n cloud, aplicación de escritorio): DOCKER
- Sistema operativo: