BotFather ile Telegram Botu Oluşturma Rehberi
Telegram botları, mesajlaşma platformunda otomasyon, bilgi sağlama ve etkileşimli hizmetler sunmak için güçlü araçlardır. Bu makalede, Telegram'ın resmi bot yönetim aracı olan BotFather'ı kullanarak sıfırdan bir bot oluşturmayı, yapılandırmayı ve yönetmeyi adım adım öğreneceksiniz. Rehber, yeni başlayanlardan ileri düzey kullanıcılara kadar herkesin ihtiyaç duyacağı pratik bilgileri, yaygın hataları ve en iyi uygulamaları kapsar.
İpucu:
BotFather, Telegram sürümünden bağımsız olarak aynı arayüzü sunar. İster mobil (Android/iOS) ister masaüstü Telegram istemcisi kullanın, adımlar aynıdır. Doğrudan @BotFather kullanıcı adına mesaj göndererek erişebilirsiniz.
BotFather Nedir ve Neden Gereklidir?
BotFather, Telegram'ın resmi botudur ve tüm botların oluşturulması, yönetilmesi ve silinmesi için tek yetkili arayüzdür. Herhangi bir Telegram botu oluşturmak için önce BotFather ile iletişime geçmeniz, botunuza bir ad ve benzersiz bir kullanıcı adı vermeniz gerekir. BotFather size bir API token sağlar; bu token, botunuzu programatik olarak kontrol etmek için kullanacağınız anahtardır. Token olmadan botunuzu Telegram sunucularına bağlayamaz ve mesaj gönderemezsiniz.
Bu süreç, Telegram'ın bot ekosisteminin temelini oluşturur: BotFather, botların kaydını tutar, varsayılan ayarlarını belirler ve gerektiğinde token iptali gibi güvenlik işlemlerini sağlar. Üçüncü taraf bir hizmete gerek kalmadan, tamamen Telegram içinde bot yönetimini mümkün kılar.
Adım 1: BotFather'a Erişim ve Yeni Bot Oluşturma
BotFather'ı Bulma ve Başlatma
Telegram arama çubuğuna BotFather yazın veya doğrudan t.me/botfather bağlantısını kullanın. Karşınıza mavi tikli (doğrulanmış) bir bot çıkacaktır. Sohbeti başlatın ve karşılama mesajını göreceksiniz. BotFather size mevcut komutların bir listesini sunar. Yeni bir bot oluşturmak için /newbot komutunu gönderin.
Örnek bir kullanım senaryosu: Bir hava durumu botu oluşturmak istiyorsunuz. /newbot yazdıktan sonra BotFather sırasıyla şunları isteyecektir:
- Bot adı (örn. "Hava Durumu Botu") – kullanıcıların botunuzu listede göreceği isim.
- Bot kullanıcı adı (örn.
HavaDurumuBot) – benzersiz olmalı vebotile bitmelidir. Telegram'da @ ile aranabilir.
Kullanıcı adı alınmamışsa BotFather size bir başarı mesajı ve API token gönderecektir. Token yaklaşık 40 karakterlik bir dizedir ve 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 formatındadır. Bu tokeni güvenli bir yerde saklayın; herkese açık kod depolarında paylaşmaktan kaçının.
Uyarı:
Token, botunuz üzerinde tam kontrole sahiptir. Tokeni başkalarıyla paylaşırsanız botunuzu ele geçirebilirler. Kesinlikle GitHub, Pastebin gibi herkese açık platformlara token koymayın.
Adım 2: Bot Temel Yapılandırması
Bot Profili ve Açıklama
Bot oluşturulduktan sonra kullanıcıların botunuzu tanıması için açıklama ve hakkında metni eklemelisiniz. BotFather şu komutları sağlar:
/setdescription– botunuzla sohbet başlatıldığında görünen kısa açıklama (maksimum 512 karakter)./setabouttext– bot profili sayfasında görünen daha kısa metin (maksimum 120 karakter)./setuserpic– botunuz için bir profil fotoğrafı yükler. Bu, güvenilirlik ve tanınabilirlik için önerilir./setcommands– bot komut listesini tanımlar. Kullanıcılar '/' yazdığında bu komutlar menü olarak görünür.
Örneğin hava durumu botu için komutlar şöyle olabilir:
hava - Güncel hava durumunu gösterir
yarin - Yarının tahminini gösterir
ayarlar - Bildirim ayarlarını yönet
Bu komutları /setcommands ile ekledikten sonra, kullanıcılar '/' yazdığında bu listeyi görür. Komut isimleri küçük harfli, kısa ve açıklayıcı olmalıdır.
Adım 3: Gelişmiş Ayarlar ve Kısıtlamalar
Inline Mod ve Grup Ayarları
BotFather, botunuzun çalışma şeklini değiştiren birkaç gelişmiş ayar sunar:
/setinline– Inline modu etkinleştirir. Kullanıcılar sohbet içinde @botkullaniciadi yazarak botunuzdan sonuç alabilir. Örneğin bir alışveriş listesi botu, @listebot süt al yazdığınızda size sütü hatırlatabilir./setjoingroups– Botun gruplara eklenip eklenemeyeceğini belirler. Varsayılan olarak botlar gruplara eklenebilir; ancak yalnızca özel sohbet için tasarlanmış botlarda bu kapatılabilir./setprivacy– Grup gizlilik modu. Açıkken (varsayılan) bot yalnızca kendisine yöneltilen mesajları ve komutları görür; gruptaki tüm mesajları görmek istiyorsa kapatılmalıdır.
Örnek: Bir yedekleme botu, gruptaki tüm mesajları okuyup arşivlemek için gizlilik modunu kapatmalıdır (/setprivacy kullanılarak). Bu durumda kullanıcıların, botun gönderilmeyen mesajları da gördüğünü bilmesi gerekir.
Adım 4: Token Yönetimi ve Güvenlik
Token Doğrulama ve İptal
BotFather, token ile ilgili iki temel komut sunar:
/token– Mevcut tokeni görüntüler. Botu geliştirirken tokeni unuttuysanız kullanışlıdır./revoke– Mevcut tokeni iptal eder ve yeni bir token oluşturur. Token sızdırıldıysa veya eski bir istemci hala bağlıysa kullanılmalıdır.
Ampirik gözlem: Token /revoke edildikten sonra eski token ile yapılan API istekleri hemen reddedilir. Yeni token almak için botla tekrar sohbet başlatmanız gerekmez; aynı bot üzerinde çalışmaya devam edebilirsiniz.
Webhook ve Polling: API Düzeyinde Ayarlar
BotFather Dışındaki Yapılandırma
BotFather, güncellemeleri almak için kullanılan webhook veya polling yöntemini doğrudan ayarlamaz. Bu ayarlar, botunuzun API tokeni kullanılarak Telegram API'ye yapılan isteklerle gerçekleştirilir. Popüler bot geliştirme kütüphaneleri (python-telegram-bot, node-telegram-bot-api gibi) genellikle polling tabanlıdır; webhook için ayrı bir sunucu kurulumu gerekir.
Webhook kullanmak istiyorsanız, botunuzun çalıştığı sunucunun genel IP adresine gelen HTTPS isteklerini kabul etmesi gerekir. Telegram API'ye setWebhook metoduyla bildirim yapılır. Bu ayar BotFather üzerinden yapılmaz, ancak tokeninizle doğrudan API'ye erişerek gerçekleştirilir.
İpucu:
Webhook kullanırken SSL sertifikası zorunludur. Test aşamasında Telegram'ın kendi kendine imzalanan sertifika desteğini kullanabilirsiniz. Polling ise yerel geliştirme için daha basit bir seçenektir.
Bot Silme ve Geri Alma
Bir Botu Kalıcı Olarak Silme
BotFather'da /deletebot komutu, bir botu kalıcı olarak siler. Bu işlem geri alınamaz; botun kullanıcı adı ve tokeni tamamen iptal edilir. Silme işleminden önce BotFather sizden onay ister ve botun kullanıcı adını yazmanızı bekler. Dikkatli kullanın: botu silmek yerine geçici olarak devre dışı bırakmak isterseniz tokeni iptal edip botu pasif hale getirebilirsiniz.
Uygulanabilir ve Uygulanamaz Senaryolar
BotFather'ın Güçlü Olduğu Durumlar
- Basit bir bot prototipi oluşturmak: Örneğin bir anket botu, hatırlatma botu veya RSS besleme takip botu için BotFather yeterlidir. Token alıp komut listesini tanımladıktan sonra istemci tarafında kod yazmaya başlayabilirsiniz.
- Eğitim ve demo amaçlı botlar: Öğrencilere bot geliştirmeyi öğretirken BotFather ile hızlca bir bot kaydı yapılabilir.
- Küçük ekipler için dahili araçlar: Geliştirme ekibi içinde kullanılan bir hata raporlama botu veya CI/CD bildirim botu.
BotFather'ın Yetersiz Kaldığı Durumlar
- Çok kullanıcılı, karmaşık iş akışları: BotFather yalnızca bot kaydını ve temel ayarları yönetir. Botun davranışını, veritabanı entegrasyonunu veya kullanıcı verilerini saklamayı sağlamaz. Bunlar için ayrı bir sunucu tarafı kod gerekir.
- Webhook yönetimi: Webhook ayarları doğrudan BotFather üzerinden yapılamaz. API çağrıları gerekir.
- Çoklu bot yönetimi: Birden çok botunuz varsa her biri için ayrı ayrı BotFather'a komut göndermeniz gerekir. Toplu yönetim aracı yoktur.
En İyi Uygulamalar Kontrol Listesi
- Tokeni çevre değişkenlerinde saklayın: Kod içinde düz metin olarak gömülü token asla göndermeyin. Python için
os.getenv('BOT_TOKEN')kullanın. - Komutları anlaşılır ve kısa tutun: Uzun komut isimleri kullanıcı deneyimini bozar. /hava_durumu_bugun_istasyon yerine /hava yeterlidir.
- Bot profili resmi ekleyin: Kullanıcıların botu tanımasını kolaylaştırır. Yükledikten sonra değiştirmek için
/setuserpickullanabilirsiniz. - Botu test ederken tokeni sık sık yenilemeyin:
/revokesonrası tüm aktif bağlantılar kesilir. Üretim ortamında token değişikliği planlı bakım ile yapılmalıdır. - Grup gizlilik ayarını ihtiyaca göre ayarlayın: Botun yalnızca komutları işlemesi yeterliyse varsayılan (açık) bırakın. Tüm mesajları okuması gerekiyorsa kapatın ve kullanıcıları bilgilendirin.
- Botu silmeden önce tokeni iptal edin:
/revokeile tokeni geçersiz kılmak, bot silindikten sonra olası yetkisiz erişimi engeller.
Sıkça Sorulan Sorular
Bot oluşturduktan sonra tokenimi kaybettim, ne yapmalıyım?
BotFather ile sohbet açın ve /token komutunu gönderin. Mevcut tokeninizi size geri gönderecektir. Eğer tokenin sızdırıldığından şüpheleniyorsanız /revoke kullanarak yeni bir token alın.
Botumu silmek istiyorum, geri alınabilir mi?
/deletebot komutu botu kalıcı olarak siler, geri alınamaz. Silmeden önce tokeni iptal etmeniz ve bot kodlarınızı yedeklemeniz önerilir. Geçici olarak devre dışı bırakmak için tokeni iptal edip botu pasif bırakabilirsiniz.
Komut listesini güncelledikten sonra ne zaman etkinleşir?
Değişiklikler anında etkinleşir. Kullanıcılar '/' tuşuna bastığında yeni komut listesini görür. Ancak bot istemci tarafında önbellekleme yapıyorsa yeniden başlatma gerekebilir. Genellikle birkaç saniye içinde güncellenir.
Inline mod nedir, ne zaman kullanmalıyım?
Inline mod, kullanıcıların herhangi bir sohbet içinde @botkullaniciadi yazarak botunuzdan hızlı sonuç almasını sağlar. Örneğin bir döviz kuru botu, @kurBot 100 USD yazdığınızda anlık kuru gösterebilir. Botunuzun bu özelliğe ihtiyacı varsa /setinline ile etkinleştirin.
BotFather herhangi bir ücret talep eder mi?
Hayır, BotFather tamamen ücretsizdir. Telegram bot oluşturma ve yönetim hizmeti için herhangi bir ödeme gerekmez. Yalnızca botunuzu çalıştırmak için kendi sunucu altyapınızı (varsa) sağlamanız gerekir.
Sonuç ve Sonraki Adımlar
Bu rehberde, BotFather kullanarak Telegram botu oluşturmanın her aşamasını inceledik: bot kaydı, temel ve gelişmiş yapılandırma, token güvenliği, webhook/polling farkı, silme işlemi ve en iyi uygulamalar. Artık kendi botunuzu oluşturmak için ihtiyacınız olan tüm bilgilere sahipsiniz.
Bir sonraki adım, botunuzu gerçek kodla hayata geçirmek. Python, JavaScript, Go veya sevdiğiniz herhangi bir dilde bir bot istemcisi yazabilirsiniz. Resmi Telegram Bot API dokümantasyonu, core.telegram.org/bots/api adresinde tüm metotları detaylı şekilde açıklar. Başlangıç için python-telegram-bot kütüphanesini öneririz; hem polling hem webhook desteği sunar ve geniş bir topluluğa sahiptir.
Unutmayın: İyi bir bot, yalnızca iyi çalışan değil, aynı zamanda kullanıcı deneyimini düşünen bottur. Komutlarınızı net tutun, hata mesajlarını anlaşılır yazın ve token güvenliğine özen gösterin.
