English | Deutsch

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

Deployment von Landscapes auf Codesphere

Deployment von Landscapes auf Codesphere

Lernen Sie, wie Sie mehrere Dienste, die unabhängig voneinander vertikal und horizontal skaliert werden können, innerhalb eines einzigen Workspace deployen und runen können. Geeignet für das Hosting ganzer Anwendungslandschaften.

Monitoring & Alerting

Monitoring & Alerting

Erfahren Sie, wie Sie auf das in Codesphere integrierte Ressourcen Monitoring zugreifen und die Betriebszeit Ihrer Anwendungen überprüfen können.

Pfadbasiertes Routing

Pfadbasiertes Routing

Erfahren Sie, wie Sie mehrere unabhängige Anwendungen mit einer einzigen Domäne verbinden, indem Sie verschiedene Pfade mit unterschiedlichen Workspaces verknüpfen