Telegram botu oluşturmak için BotFather nasıl kullanılır?
BotFather ile Telegram botu oluşturma, komut ekleme, webhook kurulumu ve sorun giderme adımlarını kapsayan güncel bir rehber.

BotFather ile Telegram botu oluşturma, komut ekleme, webhook kurulumu ve sorun giderme adımlarını kapsayan güncel bir rehber.

Telegram botu oluşturmak için resmî olarak sunulan tek araç BotFather'dır. Telegram'ın kendi içindeki bu bot, geliştiricilerin yeni botlar kaydetmesine, mevcut botların özelliklerini yönetmesine ve API anahtarlarını almasına olanak tanır. BotFather olmadan Telegram botu oluşturmak mümkün değildir; tüm botların temel kimlik bilgileri buradan sağlanır.
BotFather'ın sağladığı temel hizmetler şunlardır:
Bu makalede, her adımı ayrıntılı olarak ele alacak, hem yeni başlayanların hem de deneyimli geliştiricilerin ihtiyaç duyduğu pratik bilgileri sunacağız. BotFather ile iletişim tamamen metin komutlarıyla gerçekleşir; herhangi bir grafik arayüz yoktur. Bu sayede işlemler oldukça hızlı ve otomatikleştirilebilir hâle gelir.
Telegram'da arama çubuğuna @BotFather yazın. Resmî bot, mavi onay işaretiyle doğrulanmıştır. /start komutunu gönderdiğinizde BotFather tüm mevcut komutları listeleyen bir karşılama mesajı gönderir. Bu andan itibaren asistanınız hazırdır.
BotFather yalnızca İngilizce komutları tanır. Türkçe dil desteği yoktur, ancak komutlar oldukça basit olduğu için dil engeli oluşturmaz. Tüm komutlar eğik çizgi ile başlar: /newbot, /mybots, /setdescription vb.
BotFather'a /newbot komutunu gönderin. Sırasıyla şu bilgileri isteyecektir:
bot ile biten bir kullanıcı adı. Örn. HavaDurumuAsistaniBot. Bu isim daha önce alınmamış olmalıdır.Başarılı olursa BotFather size bir token gönderir. Bu token, botunuzu Telegram API üzerinden kontrol etmek için kullanacağınız anahtardır. Token'ı güvenli bir yerde saklayın; herkese açık kodlara veya depolara eklemeyin. Token'ı kaybederseniz /mybots > botunuzu seçin > API Token bölümünden yeniden alabilirsiniz.
⚠️ Önemli
Token'ınızı asla paylaşmayın. Başkası token'ınıza erişirse botunuzu tamamen ele geçirebilir. BotFather üzerinden token'ı istediğiniz zaman iptal edip yenisiyle değiştirebilirsiniz.
BotFather, botunuzun profilini düzenlemek için bir dizi komut sunar:
/setname – Botun görünen adını değiştirir./setdescription – Botun kısa açıklamasını düzenler (sohbet listesinde görünür). En fazla 512 karakter./setabouttext – Bot profil sayfasında görünen "Hakkında" metnini ayarlar. En fazla 120 karakter./setuserpic – Botun profil fotoğrafını yükler. Fotoğraf kare formatında olmalıdır.Her komutu gönderdikten sonra BotFather hangi botu düzenlemek istediğinizi sorar. Birden fazla botunuz varsa listeden seçim yaparsınız. Ardından istenen yeni değeri yazarsınız (profil fotoğrafı için resim dosyası gönderirsiniz).
Botunuzun kullanıcılar tarafından görülebilen komut menüsünü oluşturmak için /setcommands komutunu kullanın. BotFather size bir liste beklediğini belirtir. Format:
Örneğin bir hava durumu botu için:
Komutlar / ile başlar ve boşluk içermez. Açıklamalar kısa olmalı (en fazla 256 karakter). Komut listesi botunuz için bir "menü" oluşturur; kullanıcılar sohbet kutusuna / yazdığında bu komutlar otomatik tamamlama olarak görünür.
Telegram botları varsayılan olarak gizlilik modu etkin şekilde çalışır. Bu modda bot, yalnızca kendisine doğrudan gönderilen mesajları veya komutları görür. Grup sohbetlerinde, bot bir komutla çağrılmadığı sürece (örneğin /komut) diğer mesajları alamaz. Bu, gizlilik ve veri minimizasyonu açısından önemlidir.
Gizlilik modunu kapatmak için BotFather'dan /mybots > botunuz > Bot Settings > Group Privacy seçeneğine gidin. Burada gizlilik modunu devre dışı bırakabilirsiniz. Mod devre dışıyken bot, gruptaki tüm mesajları görebilir. Bu, örneğin bir moderasyon botu için gereklidir. Ancak dikkatli olun: gereksiz yere tüm mesajları toplamak, kullanıcı gizliliği ve veri koruma yasaları açısından sorun yaratabilir.
💡 İpucu
Botunuz yalnızca belirli komutlara yanıt veriyorsa gizlilik modunu açık bırakın. Botun tüm mesajları okuması gerekiyorsa (örneğin bir sohbet istatistik botu) modu kapatın. Ancak unutmayın: gizlilik modu kapalıyken bot grup mesajlarını işleyebilir, ancak yine de mesaj içeriğini saklamamalı veya paylaşmamalısınız.
Polling, bot sunucusunun Telegram API'sine düzenli aralıklarla "yeni mesaj var mı?" diye sormasıdır. Bu yöntem basit ve düşük trafikli botlar için uygundur. Python'da python-telegram-bot kütüphanesi varsayılan olarak polling kullanır. Polling'in avantajı, statik bir IP veya alan adı gerektirmemesidir; bot sunucusu herhangi bir yerden çalışabilir. Dezavantajı ise gecikme olabilir (poll aralığına bağlı) ve yüksek trafikte verimsiz hale gelebilir.
Webhook, Telegram'ın botunuza doğrudan POST isteği göndermesidir. Bunun için bot sunucunuzun HTTPS üzerinden erişilebilir bir URL'si olmalı ve geçerli bir SSL sertifikasına sahip olmalıdır. Webhook ayarlamak için BotFather üzerinden doğrudan bir komut yoktur; bunun yerine Telegram Bot API'ındaki setWebhook metodunu kullanırsınız. Örnek bir Python kodu:
Webhook, polling'den daha hızlıdır çünkü mesajlar anında iletilir. Ayrıca sunucu kaynaklarını daha verimli kullanır. Ancak bir alan adı ve SSL sertifikası gerektirir. Geliştirme aşamasında polling kullanmak, canlıya geçerken webhook'a geçmek yaygın bir yaklaşımdır.
⚠️ Önemli Uyarı
Aynı anda hem polling hem webhook kullanılamaz. Webhook ayarlanmışsa polling çalışmaz; önce webhook'u kaldırmalısınız (deleteWebhook). Polling'e dönmeden önce webhook'u temizleyin.
Bir botu tamamen silmek için BotFather'a /mybots gönderin, ilgili botu seçin ve Delete Bot seçeneğini kullanın. Bu işlem geri alınamaz. Bot kullanıcı adı bir daha kullanılamaz. Yeni bir bot oluşturmak isterseniz farklı bir kullanıcı adı seçmelisiniz.
Token'ınızın sızdığını düşünüyorsanız hemen yenileyin. BotFather'da /mybots > botunuz > API Token > Revoke token seçeneğiyle eski token geçersiz kılınır ve yenisi oluşturulur. Eski token kullanan tüm bağlantılar anında kesilir. Botunuzun çalışmaya devam etmesi için yeni token'ı kodunuza güncellemelisiniz.
Belirti: Botunuza mesaj gönderiyorsunuz ancak hiçbir yanıt alamıyorsunuz.
Olası nedenler:
Doğrulama: Önce BotFather üzerinden token'ı kontrol edin. Ardından getMe API çağrısı yaparak botun erişilebilir olduğunu test edin:
Yanıt geliyorsa bot API ile iletişim kurabiliyordur. Sorun büyük olasılıkla kodda veya webhook'tadır. getWebhookInfo ile mevcut webhook durumunu kontrol edin.
Belirti: Webhook ayarlamaya çalışırken "Bad Request: can't parse webhook URL" hatası alıyorsunuz.
Olası neden: URL geçerli bir HTTPS bağlantısı değil veya sertifika sorunu var.
Çözüm: Webhook URL'sinin https:// ile başladığından emin olun. Kendi imzalı sertifika kullanıyorsanız parametre olarak sertifika dosyasını göndermelisiniz. Telegram test aşamasında resmi belgelerdeki adımları izleyin.
Belirti: Kullanıcılar / yazdığında komut listesi çıkmıyor.
Olası neden: Komut listesi BotFather üzerinden tanımlanmamış veya yanlış formatta girilmiş.
Çözüm: /setcommands komutunu kullanarak doğru formatta komutları yeniden girin. Boşluk ve özel karakter kullanmadığınızdan emin olun. Komut listesi genellikle 1-2 dakika içinde güncellenir.
BotFather, aynı Telegram hesabı altında birden fazla bot oluşturmanıza izin verir. /mybots komutu tüm botlarınızı listeler ve her birini yönetmenizi sağlar. Büyük projelerde bot sayısı arttıkça manuel yönetim zorlaşabilir. BotFather'ın API'si olmadığı için otomasyon mümkün değildir; her yeni bot için BotFather ile manuel etkileşim gereklidir.
Alternatif olarak, botlarınızı aynı kod tabanı üzerinde farklı token'lar ile çalıştırabilirsiniz. Her bot ayrı bir süreç veya thread olarak çalışır ve farklı bir token kullanır. Ortak bir kütüphane paylaşabilirler.
getWebhookInfo ile doğrulama yapın.Evet. Aynı Telegram hesabıyla sınırsız sayıda bot oluşturabilirsiniz. Her botun benzersiz bir kullanıcı adı olmalıdır.
Hayır, webhook ayarları doğrudan Bot API üzerinden yapılır. BotFather yalnızca token ve temel yapılandırma sağlar.
Hayır. Silinen botun kullanıcı adı kalıcı olarak kullanılamaz. Yeni bir bot oluştururken farklı bir isim seçmelisiniz.
Yalnızca kendisinden bahsedilen mesajları (/komut veya @botadı ile) görebilir. Tüm mesajları görmek için gizlilik modu kapatılmalıdır.
Hemen BotFather'dan ilgili bot seçip "Revoke token" ile eski token'ı iptal edin. Yeni token'ı kodunuza güncelleyin.
BotFather, Telegram bot ekosisteminin merkezinde yer alan basit ama güçlü bir araçtır. Bu rehberde, bot oluşturmadan komut eklemeye, gizlilik ayarlarından webhook yapılandırmasına kadar tüm temel işlemleri adım adım ele aldık. Artık kendi botunuzu oluşturup Telegram'da yayınlamak için ihtiyacınız olan tüm bilgiye sahipsiniz.
Unutmayın: BotFather yalnızca bir başlangıç noktasıdır. Botunuzun asıl değeri, arkasındaki kod ve sunduğu işlevsellikle ortaya çıkar. Geliştirme sürecinde Telegram Bot API belgelerini düzenli olarak takip edin ve en iyi güvenlik uygulamalarına dikkat edin.