giriiş
Bu eğitim, bir Linux sunucusunda Discord botunun nasıl çalıştırılacağını açıklıyor. Bir Discord botu, arkadaşlarınızla eğlenirken web ve arka uç geliştirmenin temellerini öğrenmenin harika bir yoludur. Discord'un son zamanlarda genel kullanıma açılmasıyla birlikte, Discord botlarının nasıl oluşturulup çalıştırılacağını öğrenmek de eğlenceli bir ek iş haline gelebilir. Bir Discord botu oluşturmak zor değildir, ancak Discord botunuzu güvenli ve çalışır durumda tutmak için izlemeniz gereken bir dizi belirli adım gerektirir.
Discord botları kod çalıştırdığı ve Discord sunucularıyla oldukça karmaşık etkileşimler gerçekleştirebildiği için sunucularda barındırılmaları gerekir. Discord botunuzu internette barındıracak ücretli hizmetler bulabilmenize rağmen, burada öğreneceğiniz eğitimlerden sonra kendi Discord botunuzu barındırmak çok daha kolay olacaktır.
Bu eğitimde Python ve discord.py kütüphanesi kullanılmaktadır. Discord botları öncelikli olarak Python (discord.py kütüphanesi) veya JavaScript (discord.js kütüphanesi) ile yazılır; her ikisi de bu dilde yazılmış diğer tüm kütüphanelerle çalışabilen harika ekosistemlerdir. Sonuç olarak, her ikisi için de adımların çoğu aynıdır (dile özgü adımlar hariç). Ancak, Python kütüphanesiyle başlamak daha kolaydır, bu yüzden bu eğitim için seçilmiştir.
Bu kütüphanedeki Discord bot örneği, discord.py kütüphanesindeki en önemli komutlardan bazılarını size gösterecek basit bir yazım düzeltme botu olacaktır.
Ön koşullar
- VPS veya Sanal Özel Sunucu
Çok fazla kullanıcınız yoksa veya botunuz basit bir görevi yerine getiriyorsa, neredeyse hiçbir donanım gereksinimi yoktur ve yapmanız gereken tek şey Python'u çalıştırmaktır.
- Herhangi bir 64-bit Linux işletim sistemi (x86-64 veya Arm64)
Bu eğitim Ubuntu kullandığınızı varsayar, ancak aynı adımlar küçük değişikliklerle diğer Linux dağıtımlarında ve Windows'ta da işe yarayacaktır.
- Yönetici ayrıcalıklarına sahip olduğunuz bir Discord sunucusunda bir Discord hesabı.
Python'un temel veya orta düzeyde bilgisi
Adım 1 – Sanal bir ortam kurun
Başlamadan önce, her projenin yalnızca o projeye özel kütüphane sürümlerine sahip olmasını sağlayan ve projeler arasında belirli kütüphane sürümleri gerektirebilecek uyumsuzlukları önleyen virtualenv adlı bir Python sanal ortamı kullanmanız önerilir. Python üzerinde çalışan Discord botları için bu özellikle önerilir, çünkü botunuzun her zaman çalışacağından emin olabilir ve başka bir sunucuya kolayca taşıyabilirsiniz.
Linux'unuzdaki terminali açın veya sunucunuza SSH (güvenli kabuk) üzerinden bağlanın ve aşağıdaki komutları çalıştırın:
apt update && apt install python3.10-venv
mkdir discord-bot && cd discord-bot/
python3 -m venv discord-bot-env
source discord-bot-env/bin/activateBu, sanal ortamlar oluşturmak için gereken Python paketini yükleyecek, Discord botu için bir dizin oluşturacak ve Python sanal ortamını etkinleştirecektir. Terminaliniz artık şöyle görünmelidir: (discord-bot-ortamı) Kullanıcı adınız görüntülenmeden önce, discord.py kütüphanesini yükleyin.
python3 -m pip install --upgrade discord.pyمرحله 2 – ربات خود را با Discord ثبت کنید
Herhangi bir betiği çalıştırmadan önce, Discord botunuzu Discord'a kaydetmeniz ve botunuzun Discord'da kimlik doğrulaması için kullanacağı bir token almanız gerekir. Bu, basit ama uzun bir işlemdir. Şu adımları izleyin:
1_Bir web tarayıcısı açın.
2_Discord sitesine giriş yapın.
3_Discord geliştirici portalına girin.
4_Yeni başvuruya tıklayın.
5_"Uygulama oluştur" kısmında botunuza bir isim verin.
6_Bota tıklayın ve bot bölümüne gidin.
7_“Genel Bot” seçeneğinin seçili olduğundan ve “OAuth2 Kod İzni Gerektirir” seçeneğinin seçili olmadığından emin olun.
8_"Token'ı Sıfırla"ya tıklayın ve token'ınızı yazın. Bu token'ı kaybetmediğinizden emin olun. Kaybederseniz, düğmeye tekrar tıklamanız, yeni bir token almanız ve kodunuzdaki token'ı yeni token'a güncellemeniz gerekecektir.
9_Aşağı kaydırın ve bölümün tamamını okuyun "«Ayrıcalıklı Ağ Geçidi Amaçları» Açın. Bu, botun çalışmasına izin verecektir. Botunuzda henüz kod bulunmadığından, 100'den fazla sunucu için geçerli olan koşullar geçerli değildir.
10_OAuth2 bölümüne ve ardından URL Oluşturucu alt bölümüne gidin. URL, sizin ve botunuzu kullanmak isteyen herkesin, botunuzu yalnızca istedikleri izin ve işlevlerle sunucunuza kolayca eklemesini sağlar.
11_“Kapsamlar” bölümünde “bot”a tıklayın.
12_" bölümünde«Bot İzinleri», istediğiniz bota vermek istediğiniz tüm izinlere tıklayın. Bu, botunuzun ne yapabilmesini istediğinize bağlıdır. Bu örnekteki basit bot için aşağıdaki izinler yeterli olacaktır.
13_"Oluşturulan URL" bölümünde "Kopyala"ya tıklayın.
14_Bu URL'yi arama çubuğuna yazın ve bağlantıya gidin.
15_Botun neler yapabileceğine dair verilen bilgileri okuyun ve sunucuya ekleyin. Botu yalnızca yönetici ayrıcalıklarına sahip olduğunuz bir sunucuya ekleyebilirsiniz.
16_Roy“Devam etmek”"Tıklamak"
17_Botunuzun eklediğiniz sunucuda sahip olmasını istediğiniz izinleri seçin. Bota, hala tam işlevsel olan mümkün olan en az izni vermeye çalışın. Ek izinler vermek, birisi bot token'ınızı ele geçirirse güvenlik riski oluşturabilir.
Adım 3 - Bot kodunuzu yazın
Bot artık Discord'a kayıtlı olduğuna göre, kodunu yazmanız gerekiyor. Neyse ki, basit bir Discord botu oluşturmak kolaydır ve discord.py dosyaları bunun için idealdir.
"Adım 1"de komutları çalıştırdığınız klasörde, şu adlı bir dosya bulunur: discord_bot_script.py Favori metin düzenleyicinizle oluşturun. Bu örnekte nano kullanacağım.
nano discord_bot_script.pyAşağıdaki kodu kopyalayıp yapıştırın ve son satırdaki belirteci kendi belirtecinizle değiştirin:
import discord
intents = discord.Intents.default()
intents.message_content = True
client = discord.Client(intents=intents)
words = [["youre", "you're"], ["im", "i'm"], ["Im", "I'm"], ["hes", "he's"], ["shes", "she's"]]
@client.event
async def on_ready():
print("Bot successfully logged in as " + client.user)
@client.event
async def on_message(message):
if message.author == client.user:
return
for word in words:
if word[0] in message.content:
await message.channel.send(str(message.author) + ", you misspelled " + word[1] + " as " + word[0], reference=message)
client.run('<YOUR-TOKEN-HERE>')من خط به خط نمیروم، اما این ربات ساده بیشتر آنچه را که برای شروع ایجاد رباتهای Discord خود در پایتون باید بدانید را نشان میدهد. با اعلام مقاصد شروع می شود، که اساساً فیلترهایی هستند که ربات شما برای قضاوت در مورد رویدادهایی که ثبت می کند و به آنها پاسخ می دهد استفاده می کند. برای مثال، اگر یک ربات غلطگیر املا دارید، فقط به رویدادهای پیام پاسخ میدهید، اما رویدادهایی مانند پیوستن افراد به سرور یا انجام بازیهای خاص را نادیده میگیرید. میتوانید در صفحه مستندات discord.py درباره مقاصد بیشتر بخوانید.
Hazır, bot betiğinin yüklendiği ve botun sunucularına bağlandığı zamandır.AÇIK_MESAJ, botun bağlı olduğu herhangi bir sunucuda birisi yeni bir mesaj yazdığında. Bu olayın ayrıca, mesaj içeriğini ve meta verilerini fonksiyona ileten bir argümanı da vardır.
Fonksiyon için hazırKod, botun terminale bir mesaj yazmasını sağlar. Geliştirme sırasında olayları kaydetmek için print işlevini kullanabilirsiniz.
Fonksiyon için on_mesajKod, ilk olarak mesajın yazarının bot olup olmadığını kontrol eder ve eğer öyleyse, fonksiyondan geri döner. Bu kontrolü yapmazsa, bot yanlışlıkla kendi mesajlarına sonsuza dek yanıt verecek bir döngüye girebilir. Ardından, kod, listedeki kelimelerden herhangi birinin alınan mesajda bulunup bulunmadığını kontrol eder. Eğer varsa, gönderilen mesaja "send" fonksiyonunu kullanarak yanıt verir. Bu, discord.py'deki en önemli ve güçlü fonksiyonlardan biridir ve tüm potansiyelini kullanmayı öğrenmek, ilginç ve karmaşık botlar geliştirmenize olanak tanır.
Artık botunuzu yazdığınız için kodu kaydedin ve aşağıdaki fonksiyonla çalıştırın:
python3 discord_bot_script.py

















