Telegram Bot Geliştirme

Telegram botu oluştururken BotFather hangi özellikleri sunar?

Telegram Teknik Ekip
Telegram botu nasıl oluşturulur, BotFather ile bot yapma adımları, Telegram botu çalışmıyor ne yapmalı, Telegram botu güvenliği nasıl sağlanır, Telegram botu için API anahtarı alma, Bot komutları nasıl eklenir, Telegram botu hangi dillerle yazılır, Telegram botu yapılandırma ipuçları

BotFather Nedir ve Ne İşe Yarar?

Telegram botu geliştirmeye başlamanın ilk adımı, resmi @BotFather botuyla tanışmaktır. BotFather, Telegram'ın kendi geliştirdiği ve tüm bot yönetim işlemlerini gerçekleştiren bir ana bottur. Yeni bir bot oluşturmaktan, mevcut botunuzun adını, fotoğrafını, komut listesini, gizlilik ayarlarını değiştirmeye kadar pek çok özelliği tek bir arabirim üzerinden sunar. Bu kılavuzda, Telegram botu oluştururken BotFather'ın hangi özellikleri sunduğunu, bu özelliklerin hangi senaryolarda nasıl kullanılacağını ve her aşamada dikkat edilmesi gereken noktaları adım adım inceleyeceğiz.

BotFather Nedir ve Ne İşe Yarar?
BotFather Nedir ve Ne İşe Yarar?

BotFather'ın Temel Rolü

BotFather, Telegram Bot API'si üzerinden çalışan botların hayat döngüsünü yönetir. Yeni bot oluşturma (/newbot), mevcut botu düzenleme (/setname, /setdescription, /setabouttext), komut tanımlama (/setcommands) ve bot silme (/deletebot) gibi işlemleri doğrudan sohbet arabirimi üzerinden yapmanızı sağlar. BotFather'ı ilk kez kullanacak biri için en kritik komut /newbot'dur; bu komutla birlikte botunuza bir ad ve benzersiz bir kullanıcı adı (@ornek_bot formatında) belirlemeniz istenir. Başarılı oluşturma sonrasında BotFather size bot token'ı verir – bu token, botunuzu Bot API'ye bağlamak için kullandığınız gizli anahtardır.

Bireysel Kullanıcı: Hızlı Bot Kurulumu

Bireysel bir geliştirici veya hobi amaçlı bot oluşturuyorsanız, BotFather'ın sunduğu temel özellikler fazlasıyla yeterlidir. Süreç şöyle ilerler:

  1. BotFather'a başlatma: Telegram'da @BotFather'ı bulun ve /start komutunu gönderin. Karşınıza komut listesi çıkacaktır.
  2. Yeni bot oluşturma: /newbot yazın. BotFather sırasıyla bir ad (örneğin "Hava Durumu Robotum") ve ardından _bot ile biten bir kullanıcı adı (örneğin hava_durumu_robotum_bot) isteyecektir.
  3. Token alma: Kullanıcı adı onaylandıktan sonra BotFather, 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 formatında bir token gönderir. Bu tokenı güvenli bir yerde saklayın.
  4. Temel ayarlar: /setdescription ile botunuzun açıklamasını, /setabouttext ile hakkında metnini güncelleyebilirsiniz. /setuserpic ile bir profil fotoğrafı ekleyebilirsiniz (en fazla 640×640 piksel, JPEG/PNG).

💡 İpucu

Bot oluşturduktan sonra ilk testinizi doğrudan Telegram üzerinden yapmak için botunuzun kullanıcı adına tıklayıp bir mesaj gönderebilirsiniz. Eğer bot yanıt vermiyorsa, tokenınızı doğru kopyaladığınızdan ve bot kodunuzda getUpdates veya Webhook yapılandırmasını doğru yaptığınızdan emin olun.

Komut Tanımlama ve Otomatik Yanıtlar

BotFather'ın en çok kullanılan özelliklerinden biri /setcommands komutudur. Bu komutla botunuzun menüde görünecek komut listesini belirleyebilirsiniz. Örneğin bir hava durumu botu için:

  • /hava_ankara – Ankara için hava durumu
  • /hava_istanbul – İstanbul için hava durumu
  • /yardim – Yardım menüsünü göster

Komutların her biri en fazla 32 karakter olabilir ve Latin harfleri, rakam ile alt çizgi içerebilir. BotFather, komut listesini gönderdikten sonra onay ister; onay sonrası komutlar botunuzda anında görünür hale gelir. Bu özellik sayesinde kullanıcılar botla etkileşime geçmek için klavyede / tuşuna bastıklarında açılır menüde komutlarınızı görebilir.

Ekip İşbirliği: Botu Grup ve Kanalda Kullanma

Bir botu ekip içinde veya topluluk yönetiminde kullanmak için BotFather üzerinden yapılandırmanız gereken birkaç önemli ayar vardır. Bunların başında grup gizliliği (/setprivacy) gelir. Varsayılan olarak yeni bir bot gizli modda çalışır; yani bot yalnızca kendisine özel olarak gönderilen mesajları, komutları ve @mention içeren mesajları görür. Eğer botunuzun gruptaki tüm mesajları okuması gerekiyorsa (örneğin bir moderasyon botu), bu ayarı devre dışı bırakmalısınız.

⚠️ Uyarı

Grup gizliliğini kapatmak botunuzun gruptaki her mesajı işlemesine olanak tanır. Bu durum, özellikle yüksek trafikli gruplarda bot performansını etkileyebilir ve istenmeyen veri işleme riski doğurabilir. Yalnızca gerçekten gerekliyse bu ayarı değiştirin.

Botu Kanala Ekleme ve İzinler

BotFather üzerinden doğrudan botu kanala ekleyemezsiniz; bunun için botu kanalınızın yöneticisi olarak atamanız gerekir. Kanal ayarlarına gidin, Yöneticiler bölümünden botun kullanıcı adını ekleyin ve gerekli izinleri (mesaj gönderme, silme, sabitleme) verin. Bu işlem tamamen kullanıcı tarafından yapılır, BotFather bu aşamada yer almaz. Ancak botunuzun kanalda gönderdiği mesajları yönetmek için BotFather'ın /setjoingroups komutuyla botun gruplara eklenmesine izin verip vermediğinizi kontrol edebilirsiniz. Varsayılan olarak izinlidir.

Kurumsal Dağıtım ve Webhook Yapılandırması

Kurumsal ölçekte bir bot çalıştırıyorsanız, BotFather'ın sunduğu webhook yapılandırma özelliği hayati önem taşır. /setwebhook komutu doğrudan BotFather üzerinden değil, Bot API üzerinden yapılır. Ancak BotFather size webhook ile ilgili bilgileri /webhookinfo komutuyla sorgulama imkanı verir. Webhook, botunuzun sürekli olarak Telegram sunucularını sorgulamak yerine, yeni bir mesaj geldiğinde bot sunucunuza HTTP isteği göndermesi anlamına gelir. Bu, kaynak kullanımı açısından daha verimlidir.

Güvenlik Önlemleri: Token ve İzin Yönetimi

BotFather üzerinden bot token’ınızı /token komutuyla görüntüleyebilir veya /revoke komutuyla geçersiz kılabilirsiniz. Özellikle token’ın sızdırıldığı durumlarda /revoke komutu anında yeni bir token oluşturur ve eski token’ı devre dışı bırakır. Kurumsal ortamlarda token’ın yalnızca ihtiyaç duyan kişilerle paylaşılması ve düzenli aralıklarla yenilenmesi önerilir.

Komut İşlev Güvenlik Notu
/token Mevcut token’ı gösterir Yalnızca görüntüleme, değiştirmez
/revoke Yeni token oluşturur Eski token anında geçersiz olur
/mybots Tüm botlarınızı listeler Toplu yönetim için kullanışlı
Güvenlik Önlemleri: Token ve İzin Yönetimi
Güvenlik Önlemleri: Token ve İzin Yönetimi

Uyumluluk Değerlendirmeleri ve Sınırlamalar

BotFather, herhangi bir fiyatlandırma katmanı veya plan sınırlaması sunmaz; tüm özellikler tüm kullanıcılar için ücretsizdir. Ancak Telegram Bot API'sinin bazı kısıtlamaları vardır. Örneğin bir bot saniyede en fazla 30 mesaj gönderebilir (grup sohbetlerinde bu sınır daha düşüktür). BotFather üzerinden bu sınırlamaları değiştiremezsiniz; bot kodunuzda rate limiting mantığını uygulamanız gerekir. Ayrıca botunuzun kullanıcı adı, oluşturulduktan sonra /setusername ile değiştirilebilir, ancak bu işlemden sonra eski kullanıcı adı başka biri tarafından alınabilir.

Sıkça Sorulan Sorular

BotFather üzerinden bot oluşturduktan sonra bot kodumu nereye yazmalıyım?

BotFather yalnızca botunuzun yapılandırmasını yönetir; bot kodunu yazmak ve barındırmak size aittir. Python, Node.js, PHP veya herhangi bir dilde yazdığınız botunuzu kendi sunucunuzda veya bir bulut platformunda (Heroku, AWS, DigitalOcean vb.) çalıştırabilirsiniz. BotFather size verdiği token ile botunuzu API'ye bağlarsınız.

BotFather ile bir botun birden fazla token'ı olabilir mi?

Hayır, her botun yalnızca bir aktif token'ı vardır. /revoke komutu eski token'ı geçersiz kılar ve yenisini oluşturur. Aynı anda birden fazla token kullanmak mümkün değildir.

BotFather'dan aldığım bot token'ını başkasıyla paylaşabilir miyim?

Paylaşmamanız önerilir. Token, botunuzun kontrolünü tamamen ele geçirebilecek bir anahtardır. Güvenlik nedeniyle token'ı yalnızca botun çalıştığı sunucuda ve gerekli kişilerle paylaşın. Eğer sızıntı olursa hemen /revoke komutuyla yenileyin.

BotFather komut listesini değiştirdikten sonra ne zaman geçerli olur?

Değişiklik anında geçerlidir. Kullanıcıların bot menüsünde yeni komutları görmesi için botla tekrar etkileşime geçmeleri gerekebilir, ancak sunucu tarafında herhangi bir gecikme olmaz.

Sonuç ve Öneriler

Telegram botu oluştururken BotFather'ın hangi özellikleri sunduğunu bilmek, geliştirme sürecini hem hızlandırır hem de daha güvenli hale getirir. Bireysel projeler için temel komutlar yeterliyken, ekip ve kurumsal senaryolarda webhook yapılandırması, token yönetimi ve grup gizliliği ayarları ön plana çıkar. Unutmayın ki BotFather bir yönetim aracıdır; asıl bot mantığını siz yazarsınız. İlk botunuzu oluşturduktan sonra Bot API belgelerini inceleyerek botunuzu zenginleştirebilirsiniz.

Önerilen sonraki adım: BotFather üzerinden bir test botu oluşturun, /setcommands ile birkaç komut ekleyin ve Python ile basit bir echo botu yazarak token'ınızı test edin. Başarılı bir testin ardından botunuzu kanal veya gruplarda kullanmaya başlayabilirsiniz.