La API usa OAuth 2.0 con PKCE para la autenticación.
AdvertenciaLa autenticación básica está obsoleta y se eliminará en una actualización futura. Migra a OAuth 2.0.
client_idLa mayoría de las bibliotecas cliente de OAuth 2.0 gestionan este flujo automáticamente si les indicas el endpoint de metadatos del servidor /.well-known/oauth-authorization-server.
Todos los endpoints siguientes son relativos a https://api.attendium.com.
Crea una aplicación OAuth en Attendium para obtener tu client_id y, si es una aplicación confidencial, tu client_secret. Solo tienes que hacerlo una vez por aplicación. Consulta Aplicaciones OAuth.
Los URI de redirección deben usar https, o http con una dirección de loopback (localhost, 127.0.0.1 o ::1) para el desarrollo local. Una aplicación pública también puede usar un esquema de URI de uso privado en notación de dominio inverso, como com.example.app:/oauth/callback.
Al crear una aplicación OAuth, ya sea en Attendium o mediante el registro dinámico de clientes, aceptas los Términos para desarrolladores en la versión publicada en ese momento.
Genera un verificador de código y un desafío de código PKCE:
A-Z, a-z, 0-9, -, ., _, ~): este es tu code_verifiercode_challengeDespués, redirige al usuario a:
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
El usuario inicia sesión en Attendium y se le redirige de vuelta a tu redirect_uri con un código de autorización (code) y tu valor de 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
Una aplicación confidencial también debe autenticarse, ya sea con autenticación básica (client_secret_basic) o enviando client_secret en el cuerpo de la solicitud (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 respuesta incluye un access_token y un refresh_token.
Incluye el token de acceso en el encabezado Authorization:
curl -H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{"query": "{ me { id } }"}' \
https://api.attendium.com/graphql
La respuesta del token incluye un campo expires_in que indica durante cuánto tiempo es válido el token de acceso. Usa el token de actualización para obtener un nuevo token de acceso antes de que expire:
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id=your-client-id
&refresh_token=your-refresh-token
Una aplicación confidencial autentica esta solicitud de la misma forma que en el intercambio del código de autorización.
Las aplicaciones que se configuran a partir de los metadatos del servidor —incluidos los asistentes de IA que se conectan mediante MCP (consulta Configurar MCP)— se registran enviando una solicitud POST a /oauth2/register. No lo necesitas si creas tu aplicación OAuth en Attendium.
POST /oauth2/register
Content-Type: application/json
{
"redirect_uris": ["https://yourapp.example.com/callback"],
"client_name": "Mi aplicación"
}
Una aplicación registrada de esta forma no aparece en “Aplicaciones OAuth”, por lo que su nombre, sus URI de redirección y su secreto de cliente no se pueden cambiar allí.