Ao usar um bot ou webhook personalizado para atribuir cargos no Discord, o registro de auditoria geralmente mostra uma fonte diferente da esperada. Em vez de listar o bot que realmente atribuiu o cargo, o registro pode exibir o desenvolvedor do bot ou uma entrada genérica do sistema. Essa inconsistência ocorre porque o registro de auditoria do Discord grava a entidade que acionou a alteração do cargo, não necessariamente o executor direto. Entender por que essas diferenças ocorrem ajuda administradores de servidor a auditar permissões corretamente e solucionar entradas inesperadas no registro.
Principais conclusões: por que os registros de auditoria de atribuição de cargo variam conforme o tipo de hook
- Tipo de integração da API do Discord: A fonte do registro de auditoria depende se o cargo foi atribuído via token de bot, webhook ou integração de assinatura do servidor.
- Dono da integração vs. aplicativo do bot: Quando um webhook ou integração atribui um cargo, o registro mostra o ID de usuário do dono da integração, não o ID do aplicativo do bot.
- Sincronização de cargos de assinatura do servidor: O sistema integrado de assinatura do servidor do Discord registra atribuições de cargo sob a própria integração do servidor, não sob nenhum bot externo.
Como o registro de auditoria do Discord grava atribuições de cargo
O registro de auditoria do Discord é um registro cronológico de ações administrativas, incluindo alterações de cargo. Cada entrada contém um alvo — o usuário que recebeu o cargo, um cargo — o cargo adicionado ou removido, e um usuário — a entidade que executou a ação. O campo usuário é onde as inconsistências aparecem.
Quando um bot atribui um cargo usando seu próprio token de bot por meio do endpoint da API Guild.add_member_role, o registro de auditoria lista o aplicativo do bot como o usuário. O nome e o avatar do bot aparecem no registro. No entanto, quando o mesmo bot usa um webhook para atribuir um cargo, o dono do webhook se torna o usuário no registro de auditoria. Isso acontece porque o webhook age sob a autorização de seu criador, não do aplicativo do bot.
Autorização de token de bot vs. token de webhook
A API do Discord autentica cada requisição usando um token de bot ou um token de webhook. Um token de bot está vinculado a um aplicativo específico e representa o próprio bot. Um token de webhook está vinculado a uma URL de webhook específica e representa o dono do webhook. Quando o webhook executa uma atribuição de cargo, o Discord registra o dono do webhook como o usuário responsável. Isso é proposital para evitar que bots se escondam atrás de webhooks e manter a responsabilidade.
Assinaturas do servidor e cargos de integração
O recurso de assinatura do servidor do Discord atribui automaticamente cargos a membros pagantes. Essas alterações de cargo são registradas sob o sistema de integração do servidor, não sob nenhum bot. O registro de auditoria mostra o nome da integração, como “Assinaturas do Servidor”, como o usuário. Isso é separado das atribuições de cargo feitas por bots ou webhooks externos.
Passos para identificar por que um registro de auditoria de atribuição de cargo mostra um usuário diferente
Para determinar por que uma entrada específica do registro de auditoria mostra um determinado usuário, siga estes passos. Você precisará do menu Configurações do Servidor e da página Registro de Auditoria.
- Abra Configurações do Servidor
Clique no nome do servidor no canto superior esquerdo da janela do Discord. Selecione Configurações do Servidor no menu suspenso. - Navegue até o Registro de Auditoria
Na barra lateral esquerda, clique em Registro de Auditoria. Isso mostra uma lista de ações administrativas recentes. - Filtre por alterações de cargo
Clique no botão Filtrar no canto superior direito. No menu suspenso, selecione Atualização de Cargo de Membro. Isso restringe a lista apenas a atribuições de cargo. - Inspecione uma entrada específica
Encontre a atribuição de cargo que deseja verificar. Observe a coluna Usuário. Ela mostrará um dos seguintes:- Nome do bot — O cargo foi atribuído por um bot usando seu próprio token de bot.
- Nome do dono do webhook — O cargo foi atribuído via um webhook. O usuário mostrado é a pessoa que criou o webhook.
- Nome da integração — O cargo foi atribuído por uma assinatura do servidor ou outra integração.
- Nome do membro do servidor — O cargo foi atribuído manualmente por um moderador ou administrador do servidor.
- Identifique o tipo de integração
Se o usuário não for um bot ou um membro, clique na entrada para expandi-la. Procure pelo campo Integração. Isso informa qual integração executou a ação. Por exemplo, Assinaturas do Servidor ou integração Twitch.
Se o Discord ainda mostrar usuários inesperados no registro de auditoria após a verificação
Mesmo após seguir os passos acima, você pode ver entradas que parecem incorretas. Aqui estão cenários comuns e suas causas.
Bot atribuiu um cargo, mas o registro de auditoria mostra o desenvolvedor do bot
Se o bot usa um webhook para atribuir cargos, o registro de auditoria mostra o dono do webhook. O dono do webhook é tipicamente o desenvolvedor do bot que criou a URL do webhook. Para evitar isso, o bot deve usar seu token de bot diretamente em vez de um webhook. Verifique o código ou a configuração do bot para ver se ele usa WebhookClient.send ou métodos similares de webhook para alterações de cargo.
Atribuição de cargo registrada sob um nome de integração desconhecido
Alguns bots de terceiros criam suas próprias integrações no seu servidor. Quando essas integrações atribuem cargos, o registro de auditoria mostra o nome da integração, não o bot. Para ver qual bot criou a integração, vá em Configurações do Servidor > Integrações. Encontre a integração na lista e clique em Gerenciar. Os detalhes da integração mostram o aplicativo do bot associado.
Alterações de cargo de assinatura do servidor não aparecem no registro de auditoria
As atribuições de cargo da assinatura do servidor do Discord sempre aparecem sob a integração Assinaturas do Servidor. Se você não vir essas entradas, certifique-se de ter o filtro correto. Limpe todos os filtros e procure por entradas com o campo de usuário definido como Assinaturas do Servidor. Se estiverem ausentes, seu registro de auditoria pode estar filtrado por tempo ou tipo de ação.
Fontes do registro de auditoria de atribuição de cargo no Discord: token de bot vs. webhook vs. integração
| Item | Token de Bot | Webhook | Integração de Assinatura do Servidor |
|---|---|---|---|
| Tipo de autorização | Token de bot do aplicativo | Token da URL do webhook | Token de integração do servidor |
| Usuário mostrado no registro de auditoria | Nome do aplicativo do bot | Nome do dono do webhook | Nome da integração, ex.: Assinaturas do Servidor |
| Pode atribuir cargos | Sim, se o bot tiver permissão Gerenciar Cargos | Sim, se o webhook tiver permissão Gerenciar Cargos | Sim, automaticamente pelo Discord |
| Entidade responsável | Desenvolvedor do bot via aplicativo | Criador do webhook | Dono do servidor via configurações de assinatura |
| Caso de uso comum | Bots de moderação personalizados | Mensagens de boas-vindas automatizadas com atribuição de cargo | Cargos de membros pagantes |
Agora você entende por que hooks de atribuição de cargo no Discord geram entradas diferentes no registro de auditoria. O fator principal é o método de autenticação usado pelo hook. Para garantir que o registro de auditoria mostre o bot correto, use tokens de bot para atribuições de cargo em vez de webhooks. Para assinaturas do servidor, lembre-se de que o Discord as registra sob o sistema de integração. Se você precisar rastrear todas as alterações de cargo com precisão, revise as chamadas de API do seu bot e verifique a página de Integrações nas Configurações do Servidor. Considere usar um bot de auditoria dedicado que registre alterações de cargo em um canal privado para um rastreamento mais detalhado.