A API usa OAuth 2.0 com PKCE para a autenticação.
AvisoA autenticação básica está obsoleta e será removida numa atualização futura. Migra para o OAuth 2.0.
client_idA maioria das bibliotecas cliente de OAuth 2.0 trata deste fluxo automaticamente quando as configuras com o endpoint de metadados do servidor /.well-known/oauth-authorization-server.
Todos os endpoints abaixo são relativos a https://api.attendium.com.
Cria uma aplicação OAuth no Attendium para obteres o teu client_id e, se for uma aplicação confidencial, o teu client_secret. Só precisas de o fazer uma vez por aplicação. Consulta Aplicações OAuth.
Os URIs de redirecionamento têm de usar https, ou http com um endereço de loopback (localhost, 127.0.0.1 ou ::1) para desenvolvimento local. Uma aplicação pública também pode usar um esquema de URI de uso privado em notação de domínio invertido, como com.example.app:/oauth/callback.
Ao criares uma aplicação OAuth — no Attendium ou através do registo dinâmico de clientes — aceitas os Termos para programadores na versão publicada nesse momento.
Gera um verificador de código e um desafio de código PKCE:
A-Z, a-z, 0-9, -, ., _, ~) — este é o teu code_verifiercode_challengeDepois, redireciona o utilizador para:
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
O utilizador inicia sessão no Attendium e é redirecionado de volta para o teu redirect_uri com um code de autorização e o teu 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
Uma aplicação confidencial também tem de se autenticar, quer com autenticação básica (client_secret_basic), quer com o envio do client_secret no corpo do pedido (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
A resposta inclui um access_token e um refresh_token.
Inclui o token de acesso no cabeçalho Authorization:
curl -H "Authorization: Bearer your-access-token" \
-H "Content-Type: application/json" \
-d '{"query": "{ me { id } }"}' \
https://api.attendium.com/graphql
A resposta do token inclui um campo expires_in, que indica durante quanto tempo o token de acesso é válido. Usa o token de atualização para obteres um novo token de acesso antes de este expirar:
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&client_id=your-client-id
&refresh_token=your-refresh-token
Uma aplicação confidencial autentica este pedido da mesma forma que na troca do código de autorização.
As aplicações que se configuram a partir dos metadados do servidor — incluindo assistentes de IA que se ligam através de MCP (consulta Configurar MCP) — registam-se com um pedido POST para /oauth2/register. Não precisas disto se criares a tua aplicação OAuth no Attendium.
POST /oauth2/register
Content-Type: application/json
{
"redirect_uris": ["https://yourapp.example.com/callback"],
"client_name": "A minha aplicação"
}
Uma aplicação registada desta forma não aparece em «Aplicações OAuth», por isso o nome, os URIs de redirecionamento e o segredo do cliente não podem ser alterados aí.