Python ile Discord Botu Yapmak

kusha · 03 Ağustos 2026 · 6 dk okuma

Discord botları, Telegram botlarına benzer bir mantıkla çalışır ama Discord'a özgü kavramları (sunucu, intent, gateway) barındırır. Bu derste discord.py ile temel, komutlara cevap veren bir bot yazacağız.

Discord Developer Portal'da Bot Oluşturmak

discord.com/developers/applications adresine gidip New Application ile yeni bir uygulama oluşturun. Sol menüden Bot sekmesine girip botu etkinleştirin ve Reset Token ile bir token alın — bu token'ı kimseyle paylaşmayın.

Bot İzinlerini (Intents) Açmak

Bot sekmesinde Privileged Gateway Intents altındaki üç seçeneği (Presence, Server Members, Message Content) etkinleştirin — özellikle Message Content Intent, botun kullanıcıların yazdığı mesajların içeriğini okuyabilmesi için zorunludur; kapalıysa bot mesajları görmez.

Botu Sunucunuza Eklemek

OAuth2 → URL Generator kısmından bot kutucuğunu işaretleyip gereken izinleri (ör. Administrator, test amaçlı) seçin. Oluşan URL'i tarayıcınızda açıp botu istediğiniz Discord sunucusuna ekleyin.

Kurulum

pip install discord.py

Temel Bot Kodu

import discord
from discord.ext import commands

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} olarak giriş yapıldı.")

@bot.command()
async def merhaba(ctx):
    await ctx.send("Merhaba! Nasıl yardımcı olabilirim?")

bot.run("BOT_TOKENINIZ")
  • command_prefix="!", komutların hangi karakterle başlayacağını belirtir — kullanıcı !merhaba yazdığında bot bunu bir komut olarak tanır.
  • @bot.event ile işaretlenen on_ready, bot Discord'a bağlandığında bir kez çalışır.
  • @bot.command(), altındaki async def fonksiyonunu bir komut olarak kaydeder; fonksiyon adı (merhaba) doğrudan komutun adı olur.

Yeni Bir Komut Eklemek

@bot.command()
async def fiyat(ctx, sembol: str):
    await ctx.send(f"{sembol} için fiyat sorgulanıyor...")

ctx parametresi (context), komutu kimin/hangi kanaldan gönderdiği gibi bilgileri taşır; sembol: str gibi ek parametreler, komuttan sonra yazılan kelimeleri otomatik olarak fonksiyona aktarır (!fiyat BTC yazıldığında sembol değişkeni "BTC" olur).

Sırada Ne Var?

Sırada, Selenium ile bir X (Twitter) hesabına otomatik giriş yaptırmayı göreceğiz — bu, giriş yapmadan görülemeyen güncel verilere erişmek için kullanışlı bir teknik.