Autenticação

Formato do token do bot e como enviá-lo na REST e no Gateway.

Toda a API de bot — REST e Gateway — usa um único token por aplicação. Não há API key separada nem escopos: o token é a identidade do bot.

Formato do token

nexbot_<token_id>.<segredo>, gerado na aba Bot e mostrado uma única vez. O NEX guarda apenas um hash do segredo, então não existe "ver o token de novo".

REST

Envie o token no cabeçalho Authorization com o esquema Bearer.

Cabeçalho HTTP
Authorization: Bearer nexbot_SEU_TOKEN
Atenção
O esquema Bot (como no Discord) não é aceito: Authorization: Bot … responde 401.

Gateway

No socket.io o token vai no objeto auth do handshake:

socket.io-client
const socket = io('https://nexapp.online', {
  auth: { token: 'nexbot_SEU_TOKEN' },
});

Rotas só de bot e rotas só de humano

  • Tudo em /api/bot/* exige token de bot — uma sessão humana recebe 403.
  • Rotas de conta humana (DMs, amigos, grupos, chamadas, pagamentos, Pulse, loja, stories, segurança, conta) e o gerenciamento de aplicações (/api/applications, /api/oauth2) recusam token de bot com 403.
  • As rotas de servidor (/api/servers/:serverId/…) aceitam o token de bot e aplicam as mesmas regras de membro e permissão que valem para humanos. É assim que um bot lista mensagens, reage ou fixa — veja Mensagens.

Rotacionar o token

Pelo portal (aba Bot) ou com a sessão do dono em POST /api/applications/:id/bot/token/rotate (20 por hora). Todos os tokens anteriores param de funcionar na hora para novas chamadas REST e novos handshakes.

Nota
Um socket que já estava conectado antes da rotação continua conectado até cair — a verificação acontece no handshake. Reconecte seu bot depois de rotacionar.

Erros

SituaçãoResposta
Cabeçalho ausente ou esquema diferente de Bearer401 Não autenticado
Token desconhecido, revogado ou rotacionado401 Token inválido ou expirado
Aplicação suspensa401 na REST; o Gateway recusa o handshake e derruba sockets abertos
Token de bot numa rota só de humano403
Sessão humana numa rota /api/bot/*403
Gateway sem token / token inválidoconnect_error "Sem token" / "Token inválido"