L’API utilise OAuth 2.0 avec PKCE pour l’authentification.
AvertissementL’authentification de base est obsolète et sera supprimée dans une prochaine mise à jour. Passe à OAuth 2.0.
client_idLa plupart des bibliothèques clientes OAuth 2.0 gèrent ce flux automatiquement quand tu leur indiques le point de terminaison des métadonnées du serveur /.well-known/oauth-authorization-server.
Tous les points de terminaison ci-dessous sont relatifs à https://api.attendium.com.
Crée une application OAuth dans Attendium pour obtenir ton client_id, ainsi que ton client_secret s’il s’agit d’une application confidentielle. Tu n’as besoin de le faire qu’une fois par application. Voir Applications OAuth.
Les URI de redirection doivent utiliser https, ou http avec une adresse de bouclage (localhost, 127.0.0.1 ou ::1) pour le développement local. Une application publique peut aussi utiliser un schéma d’URI à usage privé en notation de domaine inversé, comme com.example.app:/oauth/callback.
En créant une application OAuth, que ce soit dans Attendium ou par inscription dynamique de clients, tu acceptes les Conditions pour les développeurs dans la version publiée à ce moment-là.
Génère un vérificateur de code et un défi de code PKCE :
A-Z, a-z, 0-9, -, ., _, ~) : c’est ton code_verifiercode_challengeRedirige ensuite l’utilisateur vers :
GET /oauth2/authorize?response_type=code
&client_id=your-client-id
&redirect_uri=https://yourapp.example.com/callback
&code_challenge=your-code-challenge
&code_challenge_method=S256
&state=random-state-value
L’utilisateur se connecte à Attendium et est redirigé vers ton redirect_uri avec un code d’autorisation et ta valeur state.
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&client_id=your-client-id
&redirect_uri=https://yourapp.example.com/callback
&code=the-authorization-code
&code_verifier=your-code-verifier
Une application confidentielle doit aussi s’authentifier, soit avec l’authentification de base (client_secret_basic), soit en envoyant client_secret dans le corps de la requête (client_secret_post) :
POST /oauth2/token
Authorization: Basic base64(your-client-id:your-client-secret)
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&redirect_uri=https://yourapp.example.com/callback
&code=the-authorization-code
&code_verifier=your-code-verifier
La réponse contient un access_token et un refresh_token.
Inclus le jeton d’accès dans l’en-tête Authorization :
curl -H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{"query": "{ me { id } }"}' \
https://api.attendium.com/graphql
La réponse du jeton contient un champ expires_in qui indique la durée de validité du jeton d’accès. Utilise le jeton d’actualisation pour obtenir un nouveau jeton d’accès avant son expiration :
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id=your-client-id
&refresh_token=your-refresh-token
Une application confidentielle authentifie cette requête de la même façon que lors de l’échange du code d’autorisation.
Les applications qui se configurent à partir des métadonnées du serveur, y compris les assistants d’IA qui se connectent via MCP (voir Configurer MCP), s’inscrivent elles-mêmes en envoyant une requête POST à /oauth2/register. Tu n’en as pas besoin si tu crées ton application OAuth dans Attendium.
POST /oauth2/register
Content-Type: application/json
{
"redirect_uris": ["https://yourapp.example.com/callback"],
"client_name": "Mon application"
}
Une application inscrite de cette façon n’apparaît pas dans « Applications OAuth », donc son nom, ses URI de redirection et son secret client ne peuvent pas y être modifiés.