Visão geral
Leia e escreva numa conta do uloggd a partir do seu próprio código, com uma chave que nunca pode mais do que o dono dela.
Uma chave resolve para a conta que a criou, e toda requisição roda como essa conta. As regras que decidem o que o site pode fazer decidem o que a chave pode fazer, porque são as mesmas regras: elas vivem no banco, não nos handlers.
O desenho inteiro cabe numa frase. Uma chave nunca pode fazer algo que o dono dela não poderia.
Criar uma chave
Toda chave pertence a um aplicativo. No portal do desenvolvedor, crie um aplicativo, marque em Permissões o que ele precisa e, em Chaves, crie a chave. O token aparece uma vez e é guardado só como hash, então, se você perdê-lo, cria outro em vez de recuperá-lo.
Prefira uma expiração a nunca. Uma chave que expira é uma chave que deixa de importar quando você esquece dela.
A primeira requisição
curl https://uloggd.com/api/v1/me \
-H "Authorization: Bearer ulg_live_..."/api/v1/me não exige escopo, então responde para qualquer chave viva e diz o
que ela está segurando:
{
"key": { "id": "...", "scopes": ["catalog.read", "library.read"] },
"owner": { "id": "...", "username": "ada", "display_name": "Ada" }
}Ler outras pessoas
A sua chave lê qualquer perfil pelo nome, não só o seu. Tudo que fica em
/api/v1/profiles/{username}/… aceita o nome de outra pessoa: perfil, resumo,
biblioteca, estatísticas, avaliações, listas, capturas, jornadas e o ano.
curl "https://uloggd.com/api/v1/profiles/ada/library?playing=true&games=1" \
-H "Authorization: Bearer ulg_live_..."A resposta é o que essa pessoa mostra para você, o dono da chave: tudo numa biblioteca pública, nada numa privada, e uma só para seguidores apenas se você segue. Ninguém precisa criar chave para ser consultado, e um bot que mostra a biblioteca de quem pediu só precisa do nome dessa pessoa.
O formato de uma resposta
Uma coleção responde { data, page }. Um recurso único responde { data }.
Toda falha responde { error }, inclusive no 500. Nada além disso.
Mudanças aditivas entram na v1; o que remove um campo ou muda o que ele significa espera a v2 (veja Versionamento).
Arcade
Para levar um jogo web que você hospeda aos jogadores do uloggd, leia os guias do Arcade. As rotas de desenvolvedor e de jogador do Arcade são só para sessão, então nenhuma chave as alcança nesta fase; o diretório, as páginas da loja e as chaves de identidade dele são públicos.