OAuth2 e permissões
Como montar o link de convite do bot, quais permissões existem e o que acontece quando o bot é adicionado a um servidor.
Bots entram em servidores por um link de autorização OAuth2 com scope=bot. A aba OAuth2 do aplicativo no Portal do Desenvolvedor monta o link para você.
Link de convite#
O link aponta para o site (não para a API):
https://vsync.lat/oauth2/authorize?client_id=ID_DO_APP&scope=bot&permissions=VIEW_CHANNEL,SEND_MESSAGES&guild_id=ID_DO_SERVIDOR| Parâmetro | Obrigatório | Descrição |
|---|---|---|
client_id | sim | Id do aplicativo (aba Geral → ID do aplicativo) |
scope | recomendado | Precisa conter bot para adicionar um bot. Os escopos identify, email e guilds são do Entrar com vsync e não se misturam com bot |
permissions | não | Lista separada por vírgulas com os nomes abaixo. Sem ela, o bot entra sem permissões extras |
guild_id | não | Pré-seleciona o servidor na tela de autorização |
Links colados no chat de um servidor abrem o modal "Adicionar bot" dentro do app (só funcionam links do site oficial ou da origem configurada). Fora do app, a página /oauth2/authorize faz o mesmo e pede login se necessário. O gerador da aba OAuth2 monta o link para você.
O que acontece ao adicionar#
- O bot vira membro do servidor e recebe um cargo gerenciado com o nome do aplicativo. Adicionar de novo (já membro) só atualiza as permissões desse cargo.
- As permissões são limitadas às de quem adiciona. Se a pessoa pede
BAN_MEMBERSmas não o tem, o bot não ganha.ADMINISTRATORsó é concedido por administradores e donos. O cargo fica abaixo do cargo mais alto de quem adicionou. - Além do cargo, valem as permissões de
@everyonedo servidor e as regras de cada canal (um canal que nega "Ver canal" fica invisível para o bot). - Fica registrado no registro de auditoria (
bot.addebot.update). Remover o bot (expulsar, banir ou excluir o aplicativo) apaga o cargo gerenciado e registrabot.remove. - Um bot banido do servidor não pode ser adicionado de novo até ser desbanido.