Contexte : Je développe une plateforme qui crée et gère des workflows n8n dynamiquement via l’API publique (/api/v1/). Les modèles de workflow intègrent des nœuds Google (Drive, Sheets, Gmail).
Situation actuelle (UI) :Dans l’interface web de n8n, la configuration d’un credential OAuth Google est simple :
-
Création du credential avec les clientId/clientSecret de mon app Google.
-
Un clic sur le bouton “Connect” dans le nœud ouvre le flux OAuth de Google.
-
L’utilisateur final s’authentifie sur son compte Google.
-
n8n gère le callback et stocke les tokens d’accès/rafraîchissement spécifiques à cet utilisateur dans le credential partagé. Plusieurs utilisateurs peuvent ainsi lier leur compte au même credential de base.
Mon défi (API) :Je parviens à créer le credential via POST /api/v1/credentials. Cependant, je ne trouve pas dans l’API publique de méthode pour initier le flux d’autorisation OAuth pour un utilisateur final, équivalente au bouton “Connect” de l’UI. Le workflow créé via l’API reste donc dans l’état “Credential not set up”.
Questions :
-
Ce flux OAuth “utilisateur final” est-il exposé via l’API n8n ? Existe-t-il un endpoint (ex: POST /api/v1/credentials/{id}/oauth-init) qui retournerait l’URL d’autorisation Google ?
-
Si oui, comment gérer le callback OAuth ? L’URL de redirection (redirect_uri) doit-elle pointer vers mon instance n8n (ex: https://mon-n8n.com/rest/oauth2-credential/callback) ? Mon application backend peut-elle intercepter et transmettre le code d’autorisation à n8n via API ?
-
Si ce n’est pas exposé, des workarounds existent-ils ?
Ressources techniques :
-
API utilisée : n8n Public API (/api/v1)
-
Type de credential : OAuth2 (Google)
-
Objectif : Lier un compte Google utilisateur à un workflow créé et exécuté via l’API.
Toute piste, documentation ou expérience partagée serait d’une grande aide. Merci !