Como Calcular o Inteiro de Permissão do Discord para URL de Autorização do Bot
🔍 WiseChecker

Como Calcular o Inteiro de Permissão do Discord para URL de Autorização do Bot

Ao criar um bot do Discord e gerar uma URL de autorização, você precisa especificar as permissões que o bot requer. As permissões são representadas como um único inteiro, não uma lista de caixas de seleção. Esse inteiro é a soma de valores de permissão específicos definidos pelo Discord. Se você definir o inteiro errado, seu bot pode não ter acesso a canais, mensagens ou recursos de gerenciamento do servidor. Este artigo explica como calcular o inteiro de permissão do Discord manualmente e usando ferramentas.

Principais Conclusões: Como Construir o Inteiro de Permissão Correto do Bot

  • Portal do Desenvolvedor Discord > Bot > Permissões > Gerar Inteiro: Ferramenta integrada que adiciona valores de permissão automaticamente.
  • Operação bitwise OR no código: Use o operador bitwise OR (|) para combinar flags de permissão em JavaScript, Python ou outras linguagens.
  • Adição manual dos valores de permissão: Some os valores decimais de cada permissão necessária da lista oficial do Discord.

ADVERTISEMENT

O que é o Inteiro de Permissão do Discord e Como é Calculado

O Discord usa um campo de bits (bitfield) para representar permissões de bot. Cada permissão recebe um valor específico de potência de dois. Por exemplo, a permissão para enviar mensagens tem valor 2048, enquanto a permissão para gerenciar mensagens é 8192. Quando você soma esses valores, obtém um único inteiro que codifica todas as permissões concedidas. A URL de autorização OAuth2 do Discord inclui o parâmetro permissions com esse inteiro.

O mecanismo subjacente é uma máscara de bits. Cada bit em um inteiro de 64 bits representa uma permissão. Se o bit estiver definido como 1, a permissão é concedida. Se for 0, a permissão é negada. O inteiro que você vê na URL é a representação decimal dessa máscara de bits binária. Entender isso ajuda a verificar se o inteiro corresponde às permissões que você pretendia conceder.

Tabela de Valores de Permissão

O Discord define valores de permissão para permissões gerais, de texto, de voz e avançadas. Aqui estão as mais comuns:

  • Criar Convite Instantâneo: 1
  • Expulsar Membros: 2
  • Banir Membros: 4
  • Administrador: 8
  • Gerenciar Canais: 16
  • Gerenciar Servidor: 32
  • Adicionar Reações: 64
  • Ver Registro de Auditoria: 128
  • Orador Prioritário: 256
  • Transmitir: 512
  • Ler Mensagens / Ver Canais: 1024
  • Enviar Mensagens: 2048
  • Enviar Mensagens TTS: 4096
  • Gerenciar Mensagens: 8192
  • Inserir Links: 16384
  • Anexar Arquivos: 32768
  • Ler Histórico de Mensagens: 65536
  • Mencionar @everyone: 131072
  • Usar Emojis Externos: 262144
  • Ver Insights do Servidor: 524288
  • Conectar (Voz): 1048576
  • Falar (Voz): 2097152
  • Silenciar Membros: 4194304
  • Ensurdecer Membros: 8388608
  • Mover Membros: 16777216
  • Usar VAD: 33554432
  • Alterar Apelido: 67108864
  • Gerenciar Apelidos: 134217728
  • Gerenciar Cargos: 268435456
  • Gerenciar Webhooks: 536870912
  • Gerenciar Emojis e Figurinhas: 1073741824

A permissão Administrador (8) concede todas as permissões e substitui qualquer outro cálculo de inteiro. Se você definir o inteiro como 8, o bot terá acesso total, independentemente de outros bits definidos.

Passos para Calcular o Inteiro de Permissão Manualmente

Você pode calcular o inteiro de permissão somando os valores de cada permissão que deseja conceder. Este método funciona para conjuntos pequenos de permissões. Para conjuntos grandes, use a ferramenta do Portal do Desenvolvedor ou código.

  1. Liste todas as permissões necessárias
    Anote cada permissão que seu bot precisa. Por exemplo: Enviar Mensagens (2048), Ler Mensagens (1024), Gerenciar Mensagens (8192) e Inserir Links (16384).
  2. Consulte o valor decimal de cada permissão
    Use a tabela acima ou a documentação oficial do Discord. Escreva o valor ao lado de cada permissão.
  3. Some todos os valores
    Some os números: 2048 + 1024 + 8192 + 16384 = 27648. Este é o seu inteiro de permissão.
  4. Teste o inteiro na URL de autorização
    Construa a URL: https://discord.com/api/oauth2/authorize?client_id=SEU_CLIENT_ID&permissions=27648&scope=bot. Substitua SEU_CLIENT_ID pelo ID do cliente do seu bot.

ADVERTISEMENT

Usando a Calculadora de Permissão do Portal do Desenvolvedor Discord

O Portal do Desenvolvedor Discord inclui uma calculadora visual de permissões. Essa ferramenta elimina a adição manual e reduz erros.

  1. Abra o Portal do Desenvolvedor Discord
    Acesse https://discord.com/developers/applications e selecione sua aplicação.
  2. Navegue até a seção Bot
    Clique em Bot na barra lateral esquerda.
  3. Role até a seção de Permissões
    Abaixo da área do token do bot, encontre a seção Permissões. Ela mostra uma lista de caixas de seleção.
  4. Marque as permissões necessárias
    Clique nas caixas de seleção para cada permissão que você precisa. O valor inteiro é atualizado automaticamente no campo Inteiro Gerado abaixo da lista.
  5. Copie o inteiro gerado
    Clique no botão Copiar ao lado do inteiro. Use esse valor na sua URL de autorização.

Calculando o Inteiro de Permissão com Código

Se você gerencia permissões programaticamente, use uma operação bitwise OR. Este método é preciso e escalável.

Exemplo em JavaScript

const Permissions = {
  SEND_MESSAGES: 2048,
  READ_MESSAGES: 1024,
  MANAGE_MESSAGES: 8192,
  EMBED_LINKS: 16384
};

const permissionInteger = Permissions.SEND_MESSAGES | Permissions.READ_MESSAGES | Permissions.MANAGE_MESSAGES | Permissions.EMBED_LINKS;
console.log(permissionInteger); // Output: 27648

Exemplo em Python

from enum import IntFlag

class Permissions(IntFlag):
    SEND_MESSAGES = 2048
    READ_MESSAGES = 1024
    MANAGE_MESSAGES = 8192
    EMBED_LINKS = 16384

permission_integer = Permissions.SEND_MESSAGES | Permissions.READ_MESSAGES | Permissions.MANAGE_MESSAGES | Permissions.EMBED_LINKS
print(permission_integer)  # Output: 27648

ADVERTISEMENT

Erros Comuns ao Definir o Inteiro de Permissão

Incluir Acidentalmente a Permissão de Administrador

Definir a permissão Administrador (8) concede todas as permissões. Isso geralmente não é intencional e pode ser um risco de segurança. Sempre verifique se o inteiro não inclui 8, a menos que você queira explicitamente acesso total.

Usar o Valor Errado para a Permissão de Ver Canais

A permissão para ver canais é 1024. Alguns usuários usam 1024 erroneamente para enviar mensagens. Enviar mensagens é 2048. Misturar esses valores faz com que o bot não consiga ler ou enviar mensagens nos canais.

Esquecer de Incluir Permissões Essenciais

Um bot que precisa ler o histórico de mensagens deve incluir 65536. Sem isso, o bot não consegue ver mensagens passadas. Da mesma forma, um bot de música deve incluir Conectar (1048576) e Falar (2097152) para entrar em canais de voz.

Usar o Inteiro do Gerador de URL OAuth2 em Vez da Seção Bot

O Portal do Desenvolvedor tem duas calculadoras de permissão: uma na seção Bot e outra no Gerador de URL OAuth2. Ambas produzem o mesmo inteiro. No entanto, o Gerador de URL OAuth2 também inclui escopos e URIs de redirecionamento. Se você só precisa do inteiro, use a seção Bot para simplificar.

Calculadora de Inteiro de Permissão: Manual vs Portal do Desenvolvedor vs Código

Item Adição Manual Portal do Desenvolvedor Código (Bitwise OR)
Precisão Propensa a erro humano Alta Alta
Tempo necessário Lento para muitas permissões Rápido Rápido
Requer internet Não Sim Não
Melhor para Conjuntos pequenos de permissões Usuários visuais Automação e scripts

O inteiro de permissão do Discord é uma máscara de bits que combina valores individuais de permissão. Você pode calculá-lo somando valores decimais, usando a ferramenta do Portal do Desenvolvedor ou realizando um bitwise OR no código. A adição manual funciona para poucas permissões, mas arrisca erros. O Portal do Desenvolvedor é o método mais fácil para a maioria dos usuários. O cálculo baseado em código é melhor para desenvolvedores que geram URLs dinamicamente. Sempre verifique se o inteiro corresponde às permissões que seu bot precisa para funcionar.

ADVERTISEMENT