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.
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.
- 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). - 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. - Some todos os valores
Some os números: 2048 + 1024 + 8192 + 16384 = 27648. Este é o seu inteiro de permissão. - 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.
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.
- Abra o Portal do Desenvolvedor Discord
Acesse https://discord.com/developers/applications e selecione sua aplicação. - Navegue até a seção Bot
Clique em Bot na barra lateral esquerda. - 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. - 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. - 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
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.