Pular para o conteúdo

Ligar o site da comunidade com a API

Do zero a um kill feed ao vivo no seu site, e depois a garagem e a loja pelo servidor do site. Este guia junta os passos; o detalhe de cada pedido está na página da API.

Antes de começar

Só o dono da licença cria chaves, em Onde fica:Integrações, API, e o texto de cada chave aparece uma vez só: guarde na hora. Plano: Só no Elder

Há dois tipos de chave, e cada parte do site usa a sua:

Chave pública

Para o que roda no navegador do visitante. Só lê dado que já é público no jogo, nunca escreve, e só funciona nos domínios que você listar, de 1 a 10.

Chave secreta

Para o servidor do seu site, numa variável de ambiente. Alcança toda permissão que você marcar, inclusive as que mudam o jogo, e é recusada no navegador.

Um kill feed no navegador

  1. 01Crie a chave pública

    Em Onde fica:Integrações, API, crie uma chave pública, marque killfeed:read e liste o domínio do seu site.

  2. 02Confira a chave

    Chame GET /v1/me com ela: a resposta diz de qual servidor ela é e se a API está pronta, e o campo api.status diz o que falta, em vez de um erro seco.

  3. 03Cole o widget

    A página da API tem um widget de kill feed inteiro, sem dependência, que consulta a cada 10 segundos. Troque a chave pela sua e cole no HTML.

O kill feed vem por cursor: guarde o valor que a resposta devolve e mande de volta, e cada consulta traz só as mortes novas.

Garagem, loja e o resto pelo servidor

O que é de um jogador ou mexe no jogo passa pela chave secreta, no servidor do seu site. Nunca no navegador: lá qualquer visitante copiaria a chave.

  • Guarde a chave numa variável de ambiente e, se quiser, trave em até 10 IPs ou faixas.
  • Marque só as permissões que o site usa. Um pedido sem a permissão responde 403 scopeMissing.
  • A chave secreta aguenta 120 pedidos por minuto, e toda resposta diz quanto sobra.
  • Para saber quem é o jogador no seu site, sem ele entrar no spiro.land e sem pedir SteamID digitado: verifique pela Steam.

Mexer no jogo sem repetir

O que mexe no jogo vira uma ordem para o painel do servidor, e a resposta espera o desfecho por até 8 segundos.

  • Mande Idempotency-Key em toda escrita: repetir o mesmo pedido acha a mesma ordem, e o jogo faz uma vez só. Onde mexe em moeda ou item, ele é obrigatório. Ele vale enquanto a central guarda a ordem: até 30 dias, e menos num servidor movimentado.
  • Se o painel demorar, a resposta traz o endereço da ordem: consulte até ela terminar.
  • Com o painel fora do ar, nada é enfileirado: a resposta diz isso, e o seu site tenta depois.

Antes de publicar o site

  • A chave secreta não está em nenhum arquivo que vai para o navegador, nem na URL: chave na query é recusada.
  • O site trata stale: true: com o painel sem sinal, o que ninguém sabe vem vazio, como quem está online.
  • O site espera o Retry-After quando passa do teto.
  • Uma chave revogada passa a ser recusada. O site mostra um aviso em vez de quebrar a página.

Confira

  • GET /v1/me responde com o seu servidor e a API pronta.
  • O kill feed do site mostra a morte mais recente do servidor em até 10 segundos.
  • Cada pedido, com o que ele lê ou faz e a permissão que pede, está na referência da API.