API:et använder OAuth 2.0 med PKCE för autentisering.
Obs: Basic-autentisering är föråldrad och kommer att tas bort i en framtida uppdatering. Byt till OAuth 2.0.
client_idTips: De flesta klientbibliotek för OAuth 2.0 hanterar det här flödet automatiskt. Peka biblioteket mot serverns metadataendpoint
/.well-known/oauth-authorization-serverför automatisk konfiguration.
Alla endpoints nedan är relativa till https://api.attendium.com.
Skapa en OAuth-applikation i Attendium för att få ditt client_id, och din client_secret om det är en konfidentiell applikation. Du behöver bara göra det en gång per applikation. Se OAuth-applikationer.
Omdirigerings-URI:er måste använda https, eller http med en loopback-adress (localhost, 127.0.0.1 eller ::1) för lokal utveckling. En offentlig applikation kan också använda ett privat URI-schema i omvänd domännotation, till exempel com.example.app:/oauth/callback.
Genom att skapa en OAuth-applikation – i Attendium eller via dynamisk klientregistrering – godkänner du utvecklarvillkoren i den version som var publicerad vid tillfället.
Generera en PKCE-kodverifierare och en kodutmaning:
A-Z, a-z, 0-9, -, ., _, ~) – det här är din code_verifiercode_challengeOmdirigera sedan användaren till:
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
Användaren loggar in på Attendium och omdirigeras tillbaka till din redirect_uri med en auktoriseringskod (code) och ditt state-värde.
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
En konfidentiell applikation måste också autentisera sig, antingen med Basic-autentisering (client_secret_basic) eller genom att skicka client_secret i anropets brödtext (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
Svaret innehåller en access_token och en refresh_token.
Skicka med åtkomsttoken i headern Authorization:
curl -H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{"query": "{ me { id } }"}' \
https://api.attendium.com/graphql
Tokensvaret innehåller fältet expires_in, som anger hur länge åtkomsttoken är giltig. Använd uppdateringstoken för att hämta en ny åtkomsttoken innan den nuvarande löper ut:
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id=your-client-id
&refresh_token=your-refresh-token
En konfidentiell applikation autentiserar det här anropet på samma sätt som vid utbytet av auktoriseringskoden.
Applikationer som konfigurerar sig själva utifrån servermetadata – bland annat AI-assistenter som ansluter via MCP, se Konfigurera MCP – registrerar sig genom att skicka ett POST-anrop till /oauth2/register. Det behöver du inte om du skapar din OAuth-applikation i Attendium.
POST /oauth2/register
Content-Type: application/json
{
"redirect_uris": ["https://yourapp.example.com/callback"],
"client_name": "Min applikation"
}
En applikation som registrerats på det här sättet visas inte under ”OAuth-applikationer”, så dess namn, omdirigerings-URI:er och klienthemlighet kan inte ändras där.