Portal do Desenvolvedor
Experimental A plataforma de bots e apps está em desenvolvimento ativo. O suporte a servidores auto-hospedados chegou em 13/08/2026 com menos recursos que a nuvem. Veja o que é suportado.
← Documentação

Emojis do próprio app

Emojis enviados na sua aplicação podem ser usados em qualquer servidor onde o seu bot publique, sem ocupar uma vaga de emoji daquele servidor. Paridade com o Discord: mesmo formato de transporte, mesma sintaxe <:nome:id> no conteúdo da mensagem.

Limites

  • 2.000 emojis por aplicação (limite flexível, verificado na criação).
  • 256 KB de tamanho máximo de arquivo.
  • Tipos de conteúdo: image/png, image/jpeg, image/gif, image/webp.
  • Nome: 2 a 32 caracteres, conjunto [a-zA-Z0-9_]. Único por app, sem diferenciar maiúsculas: BotIcon e boticon conflitam.

Detecção de animação

A flag animated é definida no servidor a partir do tipo de conteúdo do envio. Tudo enviado como image/gif é considerado animado. O cliente não pode sobrepor isso. Ao referenciar um emoji animado no conteúdo da mensagem, use o prefixo <a:nome:id> (idêntico ao Discord).

Endpoints REST (lado do bot)

A API de bots oferece acesso somente leitura aos emojis da sua aplicação. Autentique-se com Authorization: Bot {token}.

GET /applications/{application.id}/emojis
GET /applications/{application.id}/emojis/{emoji.id}

Formato da resposta (itens da lista e GET individual usam o mesmo formato do Discord):

{
  "id": "1199283740192847360",
  "name": "thinking_orange",
  "animated": false,
  "user": { "id": "...", "username": "you" },
  "managed": false,
  "available": true
}

Criar, alterar e excluir não estão expostos na API de bots. As rotas do Discord POST /applications/{id}/emojis, PATCH e DELETE devolvem 404 no GameVox. Toda a gestão de emojis passa pelo portal (abaixo); pretendemos expor os endpoints de escrita no formato do Discord assim que o pipeline de moderação do portal estiver estável o bastante para rodar sem intervenção humana.

Usando emojis em mensagens

Referencie os emojis do app em content do mesmo jeito que os do servidor:

// Estático
"hello <:thinking_orange:1199283740192847360>"

// Animado (repare no `a:` inicial)
"thanks <a:wave_orange:1199283740192847361>"

Para reações, passe nome:id no caminho de emoji codificado em URL de PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me, igual ao Discord.

Fluxo de envio no portal

O portal envia emojis pelo mesmo pipeline de URL pré-assinada usado para avatares e ícones de app:

  1. POST /api/uploads/presign com purpose=bot_app_emoji e application_id.
  2. Envie o arquivo com PUT para a URL do S3 devolvida.
  3. POST /api/uploads/complete com o file_id devolvido.
  4. POST /developer-portal/applications/{id}/emojis com {name, file_id}.

O servidor verifica se o prefixo da s3_key do arquivo corresponde a bot-emojis/{application_id}/, então um file_id vazado de outro app não passa na vinculação.

Armazenamento

Armazenado em bot-emojis/{application_id}/{file_id}.{ext} no bucket público gamevox-files-prod. Linhas com exclusão lógica deixam o objeto no S3; objetos órfãos são recolhidos por um processo em segundo plano.

← Voltar para a documentação