Salta el contingut

Gmail i Google OAuth2

Què és OAuth2?

OAuth2 és un protocol d'autorització que permet a una aplicació (n8n) accedir als teus recursos de Google (Gmail, Drive, Sheets...) sense que li donis la teva contrasenya.

El flux funciona així:

sequenceDiagram
    participant U as Tu (usuari)
    participant N as n8n
    participant G as Google

    U->>N: "Vull connectar Gmail"
    N->>G: "Necessito permisos per a Gmail"
    G->>U: "Confirmes que n8n pot accedir a Gmail?"
    U->>G: "Si, confirmo"
    G->>N: "Aqui tens un token d'acces"
    N->>N: Guarda el token (cifrat)
    N->>G: Peticions amb el token
    G->>N: Resposta amb les dades

Configuració de Google Cloud Console

Abans de configurar n8n, has de crear un projecte a Google Cloud Console i habilitar les APIs necessaries.

Pas 1: Crear un projecte a Google Cloud

  1. Ves a console.cloud.google.com
  2. Fes clic a "Seleccionar projecte""Nou projecte"
  3. Posa el nom: n8n-integracions-[el-teu-nom]
  4. Fes clic a "Crear"

Pas 2: Habilitar les APIs necessaries

  1. Ves a "API i serveis""Biblioteca"
  2. Cerca i habilita:
  3. Gmail API
  4. Google Sheets API (per a pràctiques futures)
  5. Google Drive API (necessaria per a Sheets)

Pas 3: Crear les credencials OAuth2

  1. Ves a "API i serveis""Credencials"
  2. Fes clic a "+ Crear credencials""ID de client OAuth"
  3. Si no tens configurat l'acord de consentiment, fes-ho primer:
  4. Tipus d'usuari: Extern
  5. Nom de l'aplicació: n8n Local
  6. Correu de suport: el teu correu
  7. Afegeix el teu correu als usuaris de prova

  8. Crea el client OAuth2:

  9. Tipus d'aplicació: aplicació web
  10. Nom: n8n OAuth Client
  11. URI de redireccionament autoritzat: http://localhost:5678/rest/oauth2-credential/callback

  12. Anota el Client ID i el Client Secret

URI de redireccionament

L'URI de redireccionament ha de coincidir exactament amb el que configures a n8n. Si n8n està a una URL diferent (ex: https://n8n.example.com), adapta l'URI.

Pas 4: Configurar la credencial a n8n

  1. A n8n, ves a Credentials+ Add Credential
  2. Cerca i selecciona Google OAuth2 API
  3. Emplena:
  4. Client ID: el que has copiat de Google Cloud
  5. Client Secret: el que has copiat de Google Cloud
  6. Fes clic a Connect my account
  7. Segueix el flux de Google per autoritzar n8n
  8. Un cop autoritzat, guarda la credencial amb el nom Google OAuth2 - [el teu nom]

Usar la credencial a un node Gmail

Un cop tens la credencial configurada:

  1. Afegeix el node Gmail al workflow
  2. Al camp Credential, selecciona la credencial que acabes de crear
  3. Escull la operació i configura els paràmetres

Exemple: Enviar un correu des d'n8n

flowchart LR
    A([Manual Trigger]) --> B[Code\nDades del correu] --> C[Gmail\nEnviar]

Configuració del node Gmail:

Credential: Google OAuth2 - [el teu nom]
Resource: Email
Operation: Send
From: el-teu-compte@gmail.com
To: destinatari@example.com
Subject: Test n8n - {{ $now.toLocaleString() }}
Message: Hola! Aquest correu s'ha enviat automaticament des d'n8n.

Exemple: Llegir correus no llegits

Credential: Google OAuth2 - [el teu nom]
Resource: Email
Operation: Get Many
Filters:
  Read Status: unread
  Received After: {{ $now.minus({ hours: 24 }).toISO() }}
Limit: 10

Permisos necessaris (Scopes)

Quan n8n demana autorització a Google, sol·licita uns permisos específics (scopes). Els principals per a Gmail:

Scope Descripció
gmail.readonly Llegir correus i etiquetes
gmail.send Enviar correus
gmail.modify Modificar, llegir, enviar
gmail.compose Crear esborranys i enviar

Principi de mínims privilegis

Demana només els permisos que necessites. Si el workflow només necessita llegir correus, no demanes permisos d'escriptura.

Renovació del token

Els tokens OAuth2 de Google expiren. n8n els renova automàticament usant el refresh token. Si la credencial deixa de funcionar:

  1. Ves a Credentials → edita la credencial
  2. Fes clic a Reconnect
  3. Segueix el flux de Google de nou

Miniactivitat ACN8N13

Configura la credencial Google OAuth2 a n8n i crea un workflow que: 1. Llegeixi els 5 correus més recents de la teva safata d'entrada 2. Mostri el remitent, assumpte i data de cada correu 3. Filtra i mostra només els que han arribat en les últimes 24 hores