Ustvarjanje vašega prvega Discord bota je lažje, kot si mislite. Ne potrebujete diplome iz računalništva ali let programerskih izkušenj. Leta 2026, izgradnja in uvedba funkcionalnega bota traja vikend, če ste osredotočeni.
Ta vodnik vas vodi skozi celoten postopek: registracijo vašega bota, pisanje vašega prvega ukaza, lokalno testiranje in uvedbo v živo. Na koncu boste imeli bota, ki deluje na vašem strežniku.
Razumevanje, kaj je Discord Bot
Discord bot je program, ki se poveže z Discordom prek API-ja in se odziva na dogodke: ko nekdo vnese ukaz, se odzove na sporočilo, se pridruži strežniku itd.
Ključni koncepti:
- Aplikacija proti Botu: Vaša "aplikacija" je registrirana v Discord Developer Portalu. "Bot" je uporabniški račun, povezan s to aplikacijo. Ena aplikacija ima enega bota.
- Žetoni (Tokens): Skrivni ključ, ki overi vašega bota. Nikoli ga ne delite. Je kot geslo za vašega bota.
- Nameni (Intents): Dovoljenja, ki vašemu botu omogočajo, da vidi določene dogodke (sporočila, odzive, spremembe stanja članov itd.). Omogočite samo tisto, kar potrebujete.
- Ukazi (Commands): Boti se odzivajo na ukaze. Sodobni boti uporabljajo poševne ukaze (
/ukaz) namesto ukazov s predpono (!ukaz). Poševni ukazi so uradno podprti in priporočeni. - Dogodki (Events): Vaš bot posluša Discord dogodke (poslano sporočilo, dodan odziv, pridružen član) in se nanje odziva.
1. korak: Registrirajte svojega bota v Discord Developer Portalu
Tukaj vaš bot uradno obstaja v Discordovem sistemu.
Postopek:
- Pojdite na Discord Developer Portal
- Prijavite se s svojim Discord računom
- Kliknite "New Application"
- Poimenujte ga (npr. "Moj Prvi Bot")
- Kliknite "Create"
- Zdaj ste v nastavitvah vaše aplikacije
Zdaj ustvarite uporabnika bota:
- Pojdite na razdelek "Bot" (leva stranska vrstica)
- Kliknite "Add Bot"
- Pod uporabniškim imenom bota boste videli gumb "TOKEN"
- Kopirajte žeton — tako se vaš bot overi. Hranite to skrivnost. Nikoli ga ne delite javno ali ga ne shranjujte v GitHub brez šifriranja.
Konfigurirajte nastavitve bota:
- Omogočite "Message Content Intent" (omogoča botu branje besedila sporočila)
- Omogočite "Server Members Intent" (omogoča botu, da vidi, kdo je na strežniku)
- Pomaknite se navzdol do razdelka "OAuth2"
2. korak: Ustvarite povezavo za povabilo vašega bota
Potrebujete posebno povezavo za povabilo, da dodate bota na strežnik.
V Developer Portalu:
- Pojdite na "OAuth2" → "URL Generator"
- Pod "SCOPES" preverite:
bot - Pod "PERMISSIONS" izberite, kaj lahko vaš bot počne:
Send Messages(bistveno za vsakega bota)Manage Messages(če moderirate)Add Reactions(če se bot odziva na stvari)Connect+Speak(če je to glasbeni/glasovni bot)- Za učenje izberite samo
Send Messages+Read Messages(najmanjša možna izvedba)
- Kopirajte ustvarjen URL na dnu
- Delite ta URL z lastniki strežnikov (ali ga uporabite sami, da ga dodate na svoj testni strežnik)
Ne uporabljajte dovoljenja Administrator, razen če je to nujno potrebno. Prekomerno dovoljenje je varnostno tveganje.
3. korak: Izberite svoj jezik in ogrodje
Dve glavni možnosti za začetnike:
JavaScript (discord.js)
Discord.js je najbolj priljubljeno ogrodje za Discord bote. Ogromna skupnost, veliko vadnic in odlična dokumentacija.
Prednosti:
- Največja skupnost in največ vadnic na spletu
- Dokumentacija discord.js je odlična
- Node.js se široko uporablja in ga je enostavno naučiti
- Enostavna uvedba na večino platform za gostovanje
Slabosti:
- JavaScript ima posebnosti (krivulja učenja async/await)
- Node.js dodaja pomnilniško obremenitev v primerjavi s Pythonom
Začetek:
- Namestite Node.js (v18+)
- Ustvarite mapo projekta
npm init -ynpm install discord.js
Python (discord.py)
Enostavnejša sintaksa, odlična za začetnike, odlična za učenje osnov.
Prednosti:
- Najlažja sintaksa za učenje
- Intuitivno za začetnike
- Dokumentacija discord.py je dobra
- Python se uporablja povsod (znanost o podatkih, splet, avtomatizacija)
Slabosti:
- Manjša skupnost kot discord.js (vendar še vedno velika)
- Manj vadnic kot JavaScript
- Nekoliko večja poraba pomnilnika
Začetek:
- Namestite Python 3.10+
- Ustvarite mapo projekta
pip install discord.py
Priporočilo za začetnike: Če poznate Python, uporabite discord.py. Če poznate JavaScript, uporabite discord.js. Če ne poznate nobenega, se je Python lažje naučiti, vendar ima JavaScript več virov na spletu. Izberite enega in se zavežite.
4. korak: Napišite svojega prvega bota (primer Python)
Tukaj je minimalni delujoči Discord bot v Pythonu, ki se odziva na ukaz:
import discord
from discord.ext import commands
# Ustvarite bota s predpono ukaza in nameni
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.event
async def on_ready():
print(f'{bot.user} se je povezal z Discordom!')
@bot.command(name='hello', help='Pozdravi')
async def hello(ctx):
await ctx.send(f'Pozdravljen {ctx.author.name}!')
@bot.command(name='ping', help='Odgovori s pong')
async def ping(ctx):
await ctx.send('Pong!')
bot.run('VAŠ_ŽETON_TUKAJ')
Kaj to počne:
- Poveže se z Discordom
- Posluša ukaze
!helloin!ping - Odgovori s sporočilom, ko je sprožen
Za zagon:
- Zamenjajte
'VAŠ_ŽETON_TUKAJ'z vašim dejanskim žetonom iz 1. koraka - Shranite kot
bot.py - Zaženite:
python bot.py - V Discordu vnesite
!hellov katerem koli kanalu - Bot odgovori: "Pozdravljen [VašeIme]!"
5. korak: Lokalno testiranje
Pred uvedbo testirajte svojega bota lokalno (na vašem računalniku).
Nastavite testni strežnik:
- Ustvarite zasebni Discord strežnik za testiranje
- Dodajte svojega bota vanj s povezavo za povabilo iz 2. koraka
- Zaženite kodo svojega bota lokalno
- Vnesite ukaze v testni strežnik
- Bodite pozorni na napake v vašem terminalu; popravite jih
Pogoste napake:
- "Invalid token" — Žeton ste kopirali narobe ali pa je potekel. Ponovno ustvarite v Developer Portalu.
- "Missing permissions" — Bot nima dovoljenja za izvedbo tega dejanja v tem kanalu. Dodajte dovoljenja ali uporabite kanal, kjer ima bot več pravic.
- "Intents are not enabled" — V Developer Portalu morate omogočiti namene (Message Content Intent, Server Members Intent itd.)
Temeljito testirajte. Bot z napakami v produkciji je sramoten.
6. korak: Dodajte več ukazov
Zdaj, ko razumete osnove, razširite z več funkcijami.
Primer Python — preprost ekonomski ukaz:
@bot.command(name='balance', help='Preverite stanje svojih kovancev')
async def balance(ctx):
# V pravem botu bi to poizvedovalo po bazi podatkov
# Za zdaj samo vrnite lažno vrednost
await ctx.send(f'{ctx.author.name}, imate 100 kovancev!')
@bot.command(name='roll', help='Vrzi kocko (1-6)')
async def roll(ctx):
import random
result = random.randint(1, 6)
await ctx.send(f'{ctx.author.name} je vrgel: **{result}**')
Vsak ukaz je preprosta funkcija. Dodajte jih toliko, kot želite.
7. korak: Uvedite svojega bota
Lokalno gostovanje deluje za testiranje, vendar se vaš bot ustavi, ko zaprete prenosnik. Uvedite na strežnik, da bo deloval 24/7.
Brezplačne možnosti gostovanja
Replit (najlažji za začetnike):
- Pojdite na Replit.com
- Ustvarite nov Repl → Python (ali Node.js)
- Prilepite kodo svojega bota
- Kliknite "Run"
- Replit ga gosti brezplačno (z omejitvami: lahko zaspi po nedejavnosti)
Railway.app (sodobno, zanesljivo):
- Pojdite na Railway.app
- Povežite GitHub (ali naložite datoteke neposredno)
- Ustvarite nov projekt → izberite svojega bota
- Railway se samodejno uvede
- Brezplačna raven vključuje 5 $ mesečnega kredita
Glitch (podobno kot Replit):
- Pojdite na Glitch.com
- Ustvarite nov projekt
- Prilepite kodo
- Glitch ga ohranja delujočega (znotraj omejitev brezplačne ravni)
Pomembno: Ne kodirajte trdo svojega žetona v kodo, ki jo potisnete v GitHub. Uporabite spremenljivke okolja:
import os
from dotenv import load_dotenv
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
bot.run(TOKEN)
Lokalno ustvarite datoteko .env (dodajte v .gitignore, da se ne shrani):
DISCORD_TOKEN=vaš_dejanski_žeton_tukaj
Na Replit/Railway nastavite žeton kot skrivno spremenljivko okolja v nastavitvah platforme (ne v kodi).
Pogoste napake začetnikov
Napaka 1: Trdo kodiranje žetona Nikoli ne vstavljajte svojega žetona v kodo, ki jo potisnete v GitHub. Boti z uhajanimi žetoni so takoj ogroženi. Uporabite spremenljivke okolja.
Napaka 2: Ne obravnavanje napak Vaš bot se zruši ob nepričakovanem vnosu. Dodajte obravnavo napak:
@bot.command()
async def divide(ctx, a: int, b: int):
try:
result = a / b
await ctx.send(result)
except ZeroDivisionError:
await ctx.send('Ne morem deliti z nič!')
except ValueError:
await ctx.send('Vnesite veljavne številke!')
Napaka 3: Ne spoštovanje omejitev hitrosti Discord omejuje, kako hitro lahko pošiljate sporočila. Ne pošiljajte neželene pošte API-ju. Dodajte zamude med množičnimi dejanji.
Napaka 4: Ignoriranje namenov Mnogi začetni boti ne uspejo, ker ne omogočijo potrebnih namenov v Developer Portalu. Preverite namene, ki jih vaš bot potrebuje, preden ga uvedete.
Napaka 5: Preveč ambiciozen obseg Ne poskušajte zgraditi ekonomskega sistema, moderiranja, glasbe in 50 ukazov v svojem prvem botu. Začnite s 3-5 preprostimi ukazi. Razširite, ko vam bo udobno.
Naslednji koraki
Zdaj, ko imate osnovnega bota:
- Razširite funkcionalnost: Dodajte več ukazov, uporabite baze podatkov za trajno shranjevanje podatkov, implementirajte kompleksno logiko
- Uporabite poševne ukaze: Sodobna sintaksa
/ukaznamesto ukazov s predpono - Dodajte odzive: Uporabnikom omogočite, da kliknejo gumbe ali se odzovejo z emojiji
- Povežite bazo podatkov: Shranite uporabniške podatke, kovance, nastavitve (SQLite za začetnike, PostgreSQL za obseg)
- Pridružite se skupnostim: Skupnosti razvijalcev Discord botov (reddit.com/r/discordbots, Discord.js support server) imajo odgovore na vsako vprašanje
Viri
- dokumentacija discord.js: https://discord.js.org
- dokumentacija discord.py: https://discordpy.readthedocs.io
- Dokumentacija Discord API: https://discord.com/developers/docs/intro
- YouTube vadnice: Poiščite "[discord.js/discord.py] tutorial" — ogromna količina vsebine
Vaš prvi Discord bot je vikend projekt. Vaš prvi dober Discord bot je mesec vadbe. Vaš prvi bot, ki ga uporablja 1.000 strežnikov, je mesecev ponavljanja, razvoja funkcij in gradnje skupnosti. Začnite zdaj, nenehno ponavljajte in ne razmišljajte preveč.