Erstellen eines Discord-Bots in wenigen Minuten mit Python

Du willst deinen eigenen Discord-Bot erstellen und hosten? Es ist ziemlich einfach und wir zeigen Ihnen, wie.

December 14, 2023 4 Min Lesezeit
Erstellen eines Discord-Bots in wenigen Minuten mit Python
Erstellen eines Discord-Bots in wenigen Minuten mit Python

Codesphere

From everyone in the Codesphere Team:)

Wenn es eine Plattform gibt, die sich zum Liebling der Online-Communities entwickelt hat, dann ist es Discord. Die intuitive Benutzeroberfläche, die lebendigen Communities und die vielfältigen Funktionen haben in den letzten 6 Jahren zu einem rasanten Wachstum geführt.

Zumindest unter Entwicklern ist Discord vor allem wegen seiner hohen Programmierbarkeit beliebt. In diesem Tutorial werden wir einen einfachen Discord-Bot mit Python erstellen, den Sie zu Ihren Servern hinzufügen können.

Einrichten Ihres Bots im Entwicklerportal

Um loszulegen, gehen Sie zunächst zu

Discord-Entwicklerportal - API-Docs für Bots und EntwicklerIntegrieren Sie Ihren Dienst in Discord - egal, ob es sich um einen Bot oder ein Spiel handelt oder was auch immer Sie sich in Ihrer kühnsten Fantasie ausdenken können.Discord-Entwicklerportal

Und eine neue Anwendung erstellen

Gehen Sie von dort aus zur Registerkarte "Bot" und erstellen Sie einen neuen Bot.

Um unseren Bot zu einem Server hinzuzufügen, gehen Sie auf die Registerkarte oAuth2, scrollen Sie nach unten zu den Bereichen, aktivieren Sie Bot und besuchen Sie die generierte URL.

Wählen Sie dann den Server aus, zu dem Sie den Bot hinzufügen möchten, und Sie sollten ihn auf Ihrem Server unter Offline-Benutzer sehen

Das ist alles, was wir auf der Discord-Seite tun müssen!

Projekt einrichten

Nun wollen wir unseren Bot programmieren.

Installieren Sie zunächst discord.py mit:

pip install discord

Und erstellen Sie eine neue Datei namens main.py

Wir können dann unsere Absprache wie folgt authentifizieren:

from discord.ext import commands
TOKEN = "FIND YOUR TOKEN IN THE BOT TAB IN DISCORD DEVELOPER PORTAL"

# Initialize Bot and Denote The Command Prefix
bot = commands.Bot(command_prefix="!")

# Runs when Bot Succesfully Connects
@bot.event
async def on_ready():
    print(f'{bot.user} succesfully logged in!')

bot.run(TOKEN)

Sie finden Ihr Authentifizierungstoken auf der Registerkarte Bot in Ihrem Entwicklerportal

Beantwortung von Nachrichten

Lesen und beantworten wir nun die Nachrichten, die andere in den Kanälen senden

from discord.ext import commands
TOKEN = "INSERT-TOKEN"

bot = commands.Bot(command_prefix="!")

@bot.event
async def on_ready():
    print(f'{bot.user} succesfully logged in!')

@bot.event
async def on_message(message):
    # Make sure the Bot doesn't respond to it's own messages
    if message.author == bot.user: 
        return
    
    if message.content == 'hello':
        await message.channel.send(f'Hi {message.author}')
    if message.content == 'bye':
        await message.channel.send(f'Goodbye {message.author}')

    await bot.process_commands(message)

bot.run(TOKEN)

Wir müssen die bot.process_commands am Ende einfügen, um sicherzustellen, dass der Bot auch überprüft, ob die Nachricht ein gültiger Befehl ist.

Und hier können Sie sehen, wie es funktioniert:

Befehle erstellen

Fügen wir nun Befehle hinzu. Befehle sind nur Antworten, die speziell aufgerufen werden. Wir haben zu Beginn festgelegt, dass jeder Befehl mit '!' beginnen muss, was als "Alexa" fungiert, um auf einen Befehl zu warten.

Wir werden zwei Befehle hinzufügen, einen, der das Quadrat einer Zahl liefert, und einen, der uns die Scrabble-Punkte für ein bestimmtes Wort angibt.

from discord.ext import commands
TOKEN = "INSERT TOKEN"

bot = commands.Bot(command_prefix="!")

@bot.event
async def on_ready():
    print(f'{bot.user} succesfully logged in!')

@bot.event
async def on_message(message):
    if message.author == bot.user:
        return
    
    if message.content == 'hello':
        await message.channel.send(f'Hi {message.author}')
    if message.content == 'bye':
        await message.channel.send(f'Goodbye {message.author}')

    await bot.process_commands(message)


# Start each command with the @bot.command decorater
@bot.command()
async def square(ctx, arg): # The name of the function is the name of the command
    print(arg) # this is the text that follows the command
    await ctx.send(int(arg) ** 2) # ctx.send sends text in chat

@bot.command()
async def scrabblepoints(ctx, arg):
    # Key for point values of each letter
    score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2,
         "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3,
         "l": 1, "o": 1, "n": 1, "q": 10, "p": 3, "s": 1,
         "r": 1, "u": 1, "t": 1, "w": 4, "v": 4, "y": 4,
         "x": 8, "z": 10}
    points = 0
    # Sum the points for each letter
    for c in arg:
        points += score[c]
    await ctx.send(points)


bot.run(TOKEN)

Und hier können wir sehen, wie es funktioniert!

Deployment des Bots

Natürlich möchten Sie Ihr Skript nicht rund um die Uhr von Ihrem lokalen Rechner aus ausführen. Deshalb ist es wichtig, dass Sie Ihr Skript in der Cloud deployen.

In Codesphere dauert das nur Minuten - siehe Speedrun: Deployment einer Anwendung

Über den Autor

Erstellen eines Discord-Bots in wenigen Minuten mit Python

Codesphere

From everyone in the Codesphere Team:)

Wir bauen die nächste Generation der Cloud auf, indem wir Infrastruktur und IDE an einem Ort vereinen, einen nahtlosen DevEx ermöglichen und den Bedarf an DevOps-Spezialisten eliminieren.

Weitere Beiträge

Deploy Ollama + Open WebUI on Codesphere

Deploy Ollama + Open WebUI on Codesphere

Step-by-step guide to deploy Ollama and Open WebUI on Codesphere. Learn how to set up a private, cloud-based LLM environment using the official GitHub repo.

CI Profiles

CI Profiles

Codesphere's CI Profiles allows you to create and manage multiple pipeline setups for different needs, like staging, production, or testing. It brings flexibility and clarity to your CI/CD workflows.

Öffentliche API

Öffentliche API

Verbinden Sie jedes Tool eines Drittanbieters, das HTTP-Anfragen an Codesphere stellen kann, über unsere öffentliche API.

Deploying Landscapes on Codesphere

Deploying Landscapes on Codesphere

Learn how to deploy and run multiple services that can independently scale vertically and horizontally within a single workspace. Suitable for hosting entire application landscapes.