AlfyChat
Langage :

Introduction OAuth2

OAuth2

Intégrez AlfyChat dans vos applications tierces via le protocole OAuth2 Authorization Code Flow.

Vue d'ensemble

AlfyChat implémente le protocole OAuth2 Authorization Code Flow (RFC 6749). Vos applications peuvent demander à un utilisateur AlfyChat l'autorisation d'accéder à son compte — sans jamais connaître son mot de passe.

Chaque bot dispose d'un Client ID (son identifiant) et d'un Client Secret(secret connu seulement de votre serveur). Le flow produit un access_token de 30 jours que vous pouvez utiliser pour appeler l'API au nom de l'utilisateur.

Concepts clés

Client ID

L'identifiant public de votre bot (son id). À inclure dans les redirections OAuth2.

Client Secret

Secret généré à la création, visible une seule fois. Ne doit jamais être exposé côté client.

Redirect URI

URL de callback enregistrée sur votre bot. L'utilisateur y est redirigé après autorisation.

Authorization Code

Code temporaire (10 min) généré après consentement. À échanger contre un access_token.

Access Token

Jeton valide 30 jours, à inclure dans les requêtes API.

Scopes

Permissions demandées : bot (ajouter à un serveur), identify (profil), guilds (liste des serveurs).

Enregistrement d'une Redirect URI

Avant d'initier un flow OAuth2, ajoutez votre redirect URI dans la section OAuth2 de la page de gestion de votre bot. Les URIs doivent commencer par https:// (ou http://localhost pour le développement). Maximum 5 URIs.

# Exemples d'URIs valides
https://monapp.fr/callback
https://api.monapp.fr/oauth/alfychat
http://localhost:8080/callback

Endpoints OAuth2

EndpointDescription
GET /oauth2/authorizePage de consentement — redirigez l'utilisateur ici
POST /api/oauth2/authorizeBackend : génère le code d'autorisation
POST /api/oauth2/tokenBackend : échange le code contre un access_token
GET /api/bots/:id/oauth2Config OAuth2 de votre bot (owner uniquement)
POST /api/bots/:id/oauth2/regenerate-secretRégénère le client_secret
PATCH /api/bots/:id/oauth2/redirect-urisMet à jour les redirect URIs