A API Discord oferece uma infinidade de oportunidades para desenvolvedores se integrarem ao Discord, criarem bots, automatizarem servidores e aprimorarem comunidades usando Python. Neste guia abrangente com mais de 2000 palavras, nos aprofundaremos nos recursos da API Discord, pré-requisitos, autenticação, endpoints, bibliotecas, projetos de exemplo e técnicas avançadas – equipando você com tudo o que você precisa saber para começar.
Por que usar a API Discord com Python?
Antes de nos aprofundarmos no código, vale a pena destacar algumas das coisas interessantes que os desenvolvedores construíram usando a API Python Discord:
Mee6 – Um dos bots Discord mais populares, com mais de 250 milhões de usuários. Fornece moderação, nivelamento, música, Twitch, Reddit e outras integrações.
YAGDB – Bot repleto de recursos com mais de 100 comandos para moderação, registro, gerenciamento de funções, lembretes e muito mais. Usado em mais de 600,000 servidores Discord.
discórdia.py – Biblioteca wrapper de API proeminente que habilitou muitos dos primeiros bots Discord em Python. Oferece abstrações fáceis para bots e integrações.
disStream – Bot de streaming de música com fila de lista de reprodução, suporte para YouTube/Twitch e filtros de som como reforço de graves.
discordbot.py – Bot aproveitando aprendizado de máquina para moderação automatizada de conteúdo tóxico e spam. Apresenta integrações de IA.
feedback de discórdia – Bot de feedback do cliente, permitindo que os usuários enviem avaliações, classificações e feedback por meio de DMs do Discord de maneira conveniente.
E estes são apenas alguns exemplos: os desenvolvedores integraram o Discord de maneiras criativas com plataformas que vão do Reddit e GitHub a aplicativos como o Spotify usando a flexibilidade do Python.
Pré-requisitos para usar a API Discord
Antes de mergulhar em qualquer codificação, você desejará cobrir estas etapas de pré-requisito:
Crie uma conta no Discord
- Obviamente, preciso de uma conta Discord – inscreva-se gratuitamente em discórdia.com se você não tiver um.
Crie um servidor Discord
Crie um servidor no Discord para teste. Isso lhe dá acesso total de administrador em vez de depender de outro servidor.
Para bots públicos/de produção, mais tarde você desejará gerar links de convite para adicionar a outros servidores.
Ativar o modo de desenvolvedor
- No Discord, vá para Configurações do usuário > Avançado > Modo de desenvolvedor para desbloquear opções adicionais.
Instale o Python
Tenha o Python instalado e pronto para codificar. A API Discord suporta Python 3.8 ou superior.
Opcionalmente, configure um ambiente virtual para isolar dependências.
Obtendo credenciais da API Discord
Para fazer chamadas de API, precisamos gerar credenciais:
Crie um aplicativo Discord
No Portal do desenvolvedor Discord, Criar uma nova aplicação.
Isso registra o aplicativo e fornece opções de configuração.
Crie uma conta de bot
Na guia Bot do seu aplicativo, adicione uma nova conta de bot.
Você pode personalizar o nome de usuário, avatar etc.
Copie o token
Revele e copie o token do bot na guia Bot – isso é usado para autenticar solicitações de API.
Mantenha isso seguro como uma senha. Qualquer pessoa com o token pode controlar seu bot.
Obtenha IDs de canal
No servidor Discord, clique com o botão direito em um canal e selecione “Copiar ID” para obter o ID do canal.
Usaremos IDs de canal para especificar para onde enviar mensagens.
Autenticando com a API Discord
Com o token e os IDs do canal, agora podemos autenticar. Existem duas abordagens:
Tokens de bot
Usado para contas de bot autenticarem com permissões completas.
Passe o token no
Authorization
cabeçalho:
headers = {
‘Authorization‘: ‘Bot ‘ + bot_token
}
Tokens de usuário
Pode ser usado para contas de usuário, mas tem permissões limitadas.
Gerado na guia OAuth2 em seu aplicativo de desenvolvimento Discord.
Autentique de forma semelhante:
headers = {
‘Authorization‘: ‘Bearer ‘ + user_token
}
Os tokens de bot são mais comuns para acesso completo à API. Os tokens de usuário permitem interagir em nome do usuário.
Terminais comuns da API Discord
A API Discord expõe vários endpoints para diferentes entidades, como canais, mensagens, usuários, etc.
Alguns endpoints comuns incluem:
- Canais -
/channels/{channel.id}
- Mensagens -
/channels/{channel.id}/messages
- Reações -
/channels/{channel.id}/messages/{message.id}/reactions
- Guilds -
/guilds/{guild.id}
- Membros -
/guilds/{guild.id}/members
Realizamos operações como envio de mensagens fazendo solicitações a esses endpoints.
Bibliotecas de wrapper de API Discord
Embora possamos chamar a API bruta diretamente, as bibliotecas wrapper do Python podem simplificar as coisas:
- discórdia.py – A biblioteca mais popular com um design intuitivo orientado a objetos.
- disnaque – Um fork do discord.py atualizado para as alterações mais recentes da API.
- hikari – Wrapper focado em desempenho e focado em velocidade.
- próximo cabo – Wrapper de API assíncrona criado para Python 3.10+.
Eles fornecem abstrações fáceis para bots, comandos, eventos, etc., economizando tempo de desenvolvimento em comparação com solicitações brutas.
Envio de Mensagens
Vamos ver algum código para enviar uma mensagem usando o /channels/{channel.id}/messages
ponto final:
import requests
url = "https://discord.com/api/v9/channels/1234567890/messages"
data = {"content": "Hello world!"}
headers = {
"Authorization": "Bot OTI..."
}
response = requests.post(url, headers=headers, json=data)
Usamos uma solicitação POST com o content
carga útil do corpo para enviar nossa mensagem.
Recuperando Mensagens
Para recuperar mensagens, GET do mesmo endpoint e analisamos a resposta:
response = requests.get(url, headers=headers)
json_data = response.json()
for message in json_data:
print(message[‘content‘])
A resposta contém uma matriz de objetos de mensagem pelos quais podemos iterar.
Editando Mensagens
Para editar uma mensagem, precisamos do message.id
valor e use uma solicitação PATCH:
message_id = "876543234567891234"
url = f"https://discord.com/api/v9/channels/{channel_id}/messages/{message_id}"
data = {"content": "New message contents!"}
response = requests.patch(url, headers=headers, json=data)
Reagindo a mensagens
Podemos reagir usando o /reactions/{emoji}/@me
ponto final:
url = f"https://discord.com/api/v9/channels/{channel_id}/messages/{message_id}/reactions/👍/@me"
response = requests.put(url, headers=headers)
Isso adiciona uma reação positiva à mensagem do bot.
Exclusão de mensagens
Finalmente, podemos excluir com uma solicitação DELETE:
url = f"https://discord.com/api/v9/channels/{channel_id}/messages/{message_id}"
response = requests.delete(url, headers=headers)
O texto acima deve fornecer uma boa visão geral das operações comuns de mensagens. Agora vamos discutir como trabalhar com a API WebSocket.
Aproveitando a API WebSocket
A API Discord oferece duas opções de conectividade:
API REST – Usado para a maioria das operações, como envio de mensagens.
API WebSocket – Para ouvir eventos em tempo real, como mensagens.
WebSockets permitem a criação de bots orientados a eventos que reagem a eventos ao vivo em vez de pesquisar a API REST.
Por exemplo, aqui está um manipulador de eventos on_message simples:
import discord
class MyBot(discord.Client):
async def on_ready(self):
print(‘Logged in as {0}!‘.format(self.user))
async def on_message(self, message):
print(‘Message from {0.author}: {0.content}‘.format(message))
bot = MyBot()
bot.run(‘token‘)
Isso responde às mensagens imediatamente, em vez de aguardar o retorno de uma chamada de API.
Tratamento de erros de API
Ao chamar a API, devemos lidar com os erros normalmente:
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
except requests.exceptions.HTTPError as err:
print(err)
print(response.text)
Alguns erros comuns incluem:
- 50001 – Falta de acesso ao recurso
- 50035 – Corpo da solicitação inválido
- 429 – Taxa limitada
veja a docs para obter detalhes sobre erros.
Construindo um Discord Bot em Python
Vamos examinar um exemplo de bot para mostrar os principais recursos:
Recursos do bot:
- Enviar saudação na inicialização
- Responder a mensagens contendo "ajuda"
- Exclua mensagens com palavras proibidas
- Adicionar respostas de emoji de reação
- Responder com imagens/emojis
# Imports and initialization
import os
import discord
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv(‘DISCORD_TOKEN‘)
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
# Event handlers
@client.event
async def on_ready():
channel = client.get_channel(1234567890)
await channel.send("I‘m alive!")
@client.event
async def on_message(message):
if "help" in message.content:
await message.channel.send("Contact our support team for assistance!")
elif check_for_banned_words(message.content):
await message.delete()
# Reactions
emojis = ["👍", "❤️"]
for emoji in emojis:
await message.add_reaction(emoji)
# Run bot
client.run(TOKEN)
Isso mostra um bot Discord simples, mas funcional em Python, respondendo a eventos e comandos.
Dicas e truques avançados da API Discord
Vamos completar este guia com algumas dicas profissionais:
Use raspagem de membros com
LISTENER
pretende obter datas de adesão, aumentar o status, etc., que não estão nos dados padrão.Aproveite o processamento de linguagem natural e IA como o TensorFlow para moderação automatizada com base na semântica da mensagem versus palavras-chave.
Agende anúncios lucrativos, anúncios, etc. usando cron jobs ou agendadores como APScheduler para obter o tempo ideal.
Implemente uma lógica personalizada protegendo seu bot contra abusos, como limitação de taxa de usuários individuais.
Crie um painel da web com Flask ou FastAPI para controlar seu bot via HTTP em vez de apenas Discord.
Use multithreading para paralelizar tarefas computacionalmente intensivas, como gerar relatórios analíticos.
Crie funções auxiliares e abstrações em torno das chamadas de API que você usa com mais frequência.
Hackear alguns desses recursos mais avançados pode realmente separar seu bot da multidão.
Considerações finais sobre a API Discord
A API do Discord oferece oportunidades incríveis para criar bots e ferramentas que aprimoram a experiência do Discord para comunidades e servidores. Combinado com a versatilidade do Python, os desenvolvedores têm uma base incrível para trazer integrações criativas e automação para mais de 100 milhões de usuários do Discord.
Espero que este mergulho profundo de mais de 2000 palavras forneça a você os pré-requisitos, autenticação, conhecimento de endpoint, exemplos e técnicas necessárias para começar a aproveitar a API Discord em seus próprios projetos. As comunidades que usam suas criações vão agradecer!
Alguns recursos finais que valem a pena explorar à medida que você continua sua jornada:
- Portal do desenvolvedor Discord – Documentação oficial de referência da API
- discórdia.py – Biblioteca wrapper Python mantida pela comunidade
- top.gg – Diretório de listagem de bots para promover suas criações
Agora – vá em frente e codifique algo incrível! A comunidade Python Discord mal pode esperar para ver o que você construirá.