As intents privilegiadas de gateway do Discord são três permissões de adesão voluntária (Presence, Server Members e Message Content) que o dono do bot precisa ativar no Developer Portal antes que o Discord envie esses dados pela gateway. Elas existem porque listas de membros e o texto das mensagens são dados sensíveis por padrão. Se uma delas faltar, o bot não gera um erro evidente: ele simplesmente deixa de receber os eventos de que precisa. Por isso, "meu bot está online, mas não faz nada" costuma se resolver com um interruptor de intent.

Two privileged intents stay switched on and let data through while a third stays off and blocks it. Developer Portal Server Members Message Content Presence Bot Welcome msgs ✓ Auto-responders ✓ Live presence ✗

O que é, de fato, uma intent de gateway

Quando um bot se conecta ao Discord, ele não recebe automaticamente todos os eventos de todos os servidores em que está. Ele assina categorias de eventos chamadas intents: eventos de mensagens, eventos de estado de voz, eventos de atualização do servidor e assim por diante. A maioria das intents pode ser declarada no código sem custo, e o Discord as concede sem perguntar. Três são diferentes. O Discord as chama de intents privilegiadas porque os dados por trás delas (exatamente quem está em um servidor e o que os membros digitam) são poderosos o bastante para que o Discord exija que o dono do bot faça uma adesão explícita pelo Developer Portal, e não apenas no código.

Se o código do bot solicita uma intent privilegiada, mas o dono não a ativou para aquela aplicação, o Discord recusa o login por completo. O bot não fica online em um estado degradado: ele simplesmente não conecta, e a gateway é fechada com um erro de "disallowed intents" (intents não permitidas).

As três intents privilegiadas

  • Presence Intent. Status online/ausente/offline e atividades personalizadas de cada membro. Usada por bots que mostram dados de presença ao vivo; a maioria dos bots de tickets, moderação e comércio, incluindo o Noxyr, não precisa dela.
  • Server Members Intent. A lista completa de membros, além dos eventos de entrada e saída, mudanças de cargo e atualizações de apelido. É a intent por trás das mensagens de boas-vindas, das contagens de membros e da detecção de raids.
  • Message Content Intent. O texto real de uma mensagem, e não apenas o fato de que uma mensagem foi enviada. Sem ela, um bot pode ver que alguém publicou em um canal, mas não o que foi digitado.

O código do Noxyr solicita duas das três: Server Members Intent e Message Content Intent. A Presence Intent não faz parte de nenhum recurso do Noxyr, então nunca é solicitada e nunca precisa ser ativada.

O que quebra sem a Server Members Intent

A Server Members Intent permite que o bot receba os eventos GUILD_MEMBER_ADD e GUILD_MEMBER_REMOVE, os eventos de entrada e saída de que quase todos os recursos ligados a membros dependem.

  • Mensagens de boas-vindas. A mensagem de boas-vindas é disparada na entrada. Sem a intent, o bot nunca recebe o evento de entrada, então nada é publicado e nenhum cargo automático é atribuído.
  • Contagem de membros. Um canal ou widget de contagem de membros se atualiza com os mesmos eventos de entrada e saída. Sem a intent, ele fica congelado no último número que viu.
  • Anti-nuke e proteção contra raids. Detectar uma invasão em massa ou monitorar alterações suspeitas de cargos e apelidos depende dos eventos de membros. Desative a intent e todo esse caminho de detecção deixa de funcionar.
  • Fluxos de verificação. Qualquer barreira que verifique a data de entrada, os cargos ou a idade da conta de um membro precisa do objeto de membro que a intent fornece.

O que quebra sem a Message Content Intent

A Message Content Intent controla o texto real das mensagens. Sem ela, o bot ainda consegue ver que um canal recebeu uma mensagem e quem a enviou; só não consegue ler o que foi dito.

  • Respostas automáticas. Reconhecer uma palavra-gatilho como "reembolso" ou "como faço para pagar" exige ler o texto da mensagem. Sem conteúdo, não há correspondência, e não há resposta.
  • Respostas de chat com IA. Um assistente de IA que responde perguntas em um canal ou quando é mencionado precisa da própria pergunta. Sem a intent, ele sabe que alguém falou, mas não tem o que enviar ao modelo.
  • Transcrições de tickets. Uma transcrição que registra o que a equipe e os membros realmente disseram em um ticket precisa do conteúdo das mensagens; sem ele, você teria uma lista de horários e nomes de usuário sem conteúdo.
  • Moderação baseada em prefixo. Qualquer recurso que analise mensagens em busca de palavras proibidas, links de convite ou padrões de spam lê o conteúdo da mesma forma que uma resposta automática.

Os comandos de barra não são afetados de nenhuma forma, já que o Discord entrega a entrada de comandos separadamente das mensagens comuns. Os recursos que dependem dessa intent são especificamente os que leem o que os membros digitam em mensagens normais.

Como ativar as intents no Developer Portal

  1. Abra o Discord Developer Portal e selecione a aplicação do bot.
  2. Clique em Bot na barra lateral esquerda.
  3. Role até Privileged Gateway Intents.
  4. Ative Server Members Intent e Message Content Intent (adicione Presence Intent apenas se um bot precisar especificamente de dados de status ao vivo).
  5. Salve as alterações e depois reinicie ou reconecte o bot para que ele carregue as novas intents no próximo login.

A alteração vale na próxima conexão com a gateway, e não de imediato para um bot que já está conectado. Um bot que estava em sessão quando uma intent foi desativada normalmente é desconectado pelo Discord e precisa ser reconectado depois que a intent for reativada.

A regra de verificação de 100 servidores

Ligar o interruptor no portal basta para um bot em menos de 100 servidores. Quando o número de instalações de um bot ultrapassa 100 servidores, o Discord exige que a aplicação passe pela verificação do bot, um processo de análise em que o dono envia o bot para aprovação, antes que ele possa usar intents privilegiadas nessa escala. Um bot não verificado que atinge o limite continua funcionando nos servidores em que já está, mas fica impedido de entrar em novos até que a verificação seja concedida ou que as intents privilegiadas que não são estritamente necessárias sejam removidas.

Essa é uma regra da plataforma Discord, não algo que qualquer hospedagem de bot controla. Ela existe para que intents sensíveis a dados, como Server Members e Message Content, não sejam distribuídas em escala sem a revisão do próprio Discord sobre o que o bot faz com elas.

Por que o Noxyr verifica as duas intents antes de aceitar um token

O recurso Custom Bot do Noxyr executa todo o conjunto de recursos sob um token de bot fornecido por você. Como mensagens de boas-vindas, contagens de membros, chat com IA, transcrições de tickets e respostas automáticas dependem das duas intents acima, o painel verifica se a Server Members Intent e a Message Content Intent estão ativadas antes de aceitar o seu token. Um token enviado com qualquer uma delas desativada é recusado de imediato, em vez de ser aceito e falhar silenciosamente depois com um erro de gateway confuso.

Se uma intent for desativada depois que o bot já está em execução (por exemplo, alguém a desmarca no portal meses depois), a gateway do Discord fecha a conexão com os códigos 4013 ou 4014. Os nós de hospedagem do Noxyr detectam esse código de fechamento específico, desligam o bot e publicam uma mensagem de status em linguagem simples dizendo exatamente qual configuração corrigir, em vez de deixá-lo preso em um ciclo silencioso de reconexão. A explicação completa desse erro e das outras causas comuns de offline está no nosso guia de solução de problemas do erro de gateway 4004/4014.

Perguntas frequentes

Preciso da Presence Intent para o Custom Bot do Noxyr? Não. O Noxyr solicita apenas a Server Members Intent e a Message Content Intent. A Presence Intent pode ficar desativada.

Por que meu bot mostra "disallowed intents" mesmo com os interruptores ligados? A gateway só lê o estado atual em um login novo. Reinicie o bot depois de salvar as configurações do portal para que ele se reconecte com as novas intents aplicadas.

Ativar a Message Content Intent dá ao Discord acesso ao histórico de mensagens do bot? Não. Ela afeta apenas as mensagens enviadas enquanto o bot está conectado e tem acesso àquele canal. Não concede acesso retroativo a mensagens antigas das quais o bot não fazia parte.

Meu bot pode ser banido por solicitar intents privilegiadas? Não. Solicitá-las e usá-las em recursos que precisam delas (mensagens de boas-vindas, respostas automáticas, respostas de IA) é exatamente para isso. A verificação existe para bots em grande escala, não como punição.

Veja o passo a passo completo de configuração na documentação do Custom Bot, ou adicione o Noxyr gratuitamente e evite as intents por completo, usando o bot principal em vez de um bot personalizado com token.