Telegram BotFather Komutlarına Kapsamlı Bakış

Telegram üzerinde bot geliştirmenin kalbinde, resmi bot yöneticisi BotFather ve sağladığı komutlar yer alır. Bu makalede, bot oluşturma sürecinde ihtiyaç duyacağınız tüm BotFather komutlarını, her birinin kullanımını, hangi durumlarda devreye girdiğini ve sınırlamalarını adım adım inceleyeceğiz. İster ilk botunuzu geliştiriyor olun ister mevcut bir botu yönetiyor olun, bu rehber size hem temel hem de ileri düzey komut setini sunacak.

Makalenin sonunda, bot güvenliği, token yönetimi ve komut yapılandırmasıyla ilgili en iyi uygulamaları da bulacaksınız. Bilgiler, bu yazının hazırlandığı tarihteki en son Telegram sürümü ve BotFather davranışı esas alınarak derlenmiştir.

Telegram BotFather Komutlarına Kapsamlı Bakış
Telegram BotFather Komutlarına Kapsamlı Bakış

1. BotFather Nedir ve Nerede Bulunur?

BotFather, Telegram üzerindeki resmi bot oluşturma ve yönetim aracıdır. Kullanıcı adı @BotFather olan bu bot, tüm Telegram istemcilerinde (Android, iOS, Desktop) aynı şekilde çalışır. Erişmek için arama çubuğuna @BotFather yazıp sohbete başlamanız yeterlidir; herhangi bir ek kurulum gerektirmez.

BotFather, botunuzun tüm yaşam döngüsünü yönetmenizi sağlar: oluşturma, yeniden adlandırma, profil fotoğrafı yükleme, komut listesi belirleme, token iptali ve hatta botu silme gibi işlemler. Her komut, aslında doğrudan Telegram sunucularına gönderilen API çağrılarına karşılık gelir. Bu yazıda her komutu tek tek ele alacağız.

2. Temel Bot Oluşturma ve Yönetim Komutları

BotFather ile etkileşime geçmek için /start komutunu gönderin. Bot, size tüm ana komutların listesini içeren bir karşılama mesajı döndürecektir. Aşağıda, en sık kullanılan komutları ve açıklamalarını bulabilirsiniz.

2.1 /newbot — Yeni Bot Oluşturma

Bu komut, bir bot oluşturma sihirbazını başlatır. BotFather sırayla sizden iki bilgi ister: botun görünen adı ve kullanıcı adı. Görünen ad istediğiniz gibi olabilir (örneğin, "Hava Durumu Botu"). Kullanıcı adı ise bot ile bitmeli ve daha önce alınmamış olmalıdır (örneğin, hava_durumu_bot). Başarılı olursa BotFather size HTTP API token'ını ve botunuzun bağlantısını (t.me/...) gönderir.

Bu adım kritiktir; çünkü her botun benzersiz bir token'ı vardır ve bu token, botunuzu Telegram'a bağlayan anahtardır. Token asla herkese açık kodlara veya depolara eklenmemelidir.

Uyarı: Bot oluşturma işlemi geri alınamaz değildir ancak token'ı başkalarıyla paylaşmak botunuzun kontrolünü kaybetmenize yol açabilir. Token sızdırılırsa hemen /revoke komutuyla iptal edin.

2.2 /mybots — Botlarınızın Listesi

/mybots komutu, BotFather hesabınızla ilişkili tüm botları listeleyen bir menü açar. Her botun yanında API Token, Edit Bot, Bot Settings gibi sekmeler bulunur. Buradan botunuzun token'ını kopyalayabilir, adını değiştirebilir veya botu silebilirsiniz.

Birden fazla bot yöneten geliştiriciler için hızlı erişim sağlayan bu özellik, her botu ayrı ayrı arama zahmetini ortadan kaldırır.

2.3 /token — Bot Token'ını Görüntüleme

Belirli bir botun token'ını görmek için /token yazabilir veya /mybots içinden ilgili botu seçip "API Token" butonuna tıklayabilirsiniz. Token, bot ile sunucu arasındaki tüm iletişimin temelini oluşturur.

İpucu: Geliştirme ortamınızda token'ı bir ortam değişkeninde (environment variable) saklamak, yanlışlıkla açığa çıkmasını engellemenin en iyi yoludur.

2.4 /revoke — Token İptali

Token'ınız sızdırıldıysa veya güvenlik ihlali şüphesi varsa /revoke komutuyla mevcut token'ı iptal edip yenisini alabilirsiniz. Bu işlem, eski token'ı kullanan hiçbir istemcinin botunuza erişememesini garanti eder.

Ancak unutulmamalıdır ki token iptal edildikten sonra botunuz çalışmayı durdurur. Yeni token'ı kodunuza ekleyip botu yeniden başlatmalısınız. Bu nedenle, acil durumlar dışında sık sık iptal yapmak önerilmez.

3. Botun Görünümünü ve Bilgilerini Değiştirme Komutları

Botunuzun kullanıcıya nasıl göründüğü, kullanıcı deneyimi üzerinde büyük etkiye sahiptir. BotFather, botun adı, açıklaması, profil fotoğrafı ve hakkında metnini değiştirmenize olanak tanır.

3.1 /setname — Bot Adını Değiştirme

Komutu çalıştırdıktan sonra BotFather size bot listesini gösterir; hangi botu düzenlemek istediğinizi seçin ve ardından yeni adı girin. Ad en fazla 64 karakter olabilir.

3.2 /setdescription ve /setabouttext

/setdescription botunuzun başlangıç mesajının altında görünen kısa açıklamayı (maksimum 512 karakter) belirler. /setabouttext ise daha kısa (120 karakter) bir "hakkında" metnidir ve botun profil sayfasında gösterilir. Örneğin bir restoran botu için açıklama "Menü, sipariş ve rezervasyon işlemleri", hakkında metni ise "Hızlı ve lezzetli" olabilir.

3.3 /setuserpic — Profil Fotoğrafı Yükleme

Botunuzun profil fotoğrafını değiştirmek için /setuserpic komutunu kullanın. BotFather sizden bir resim göndermenizi ister. Resim en fazla 200 KB boyutunda ve JPEG/PNG formatında olmalıdır; tavsiye edilen boyut 640×640 pikseldir.

4. Komut Listesi Yönetimi: /setcommands

Bir botun en önemli yapısal özelliklerinden biri, sohbet menüsünde görünen komut listesidir. /setcommands komutuyla bu listeyi tanımlarsınız.

BotFather, komutları komut1 - açıklama biçiminde, her satıra bir komut gelecek şekilde girmenizi bekler. Örneğin:

start - Botu başlat
help - Yardım menüsü
menu - Bugünün menüsü

En fazla 100 komut tanımlayabilirsiniz. Her komutun adı yalnızca İngilizce küçük harf, rakam ve alt çizgi içerebilir, en fazla 32 karakter olabilir. Açıklama ise 256 karakterle sınırlıdır. Komut listesi, kullanıcıların botunuzun yeteneklerini keşfetmesini ve botla etkileşimini kolaylaştırdığı gibi, botunuzu daha kullanıcı dostu ve profesyonel gösterir.

Dikkat: Komut listesini değiştirdikten sonra botunuzu yeniden başlatmanıza gerek yoktur; değişiklikler hemen tüm kullanıcılar için geçerli olur. Ancak Telegram istemcisi önbelleği nedeniyle bazı kullanıcılar eski listeyi bir süre daha görebilir.

5. Bot Davranışını ve Gizlilik Ayarlarını Yönetme

BotFather, botunuzun hangi tür mesajları alacağını, gruplara eklenip eklenemeyeceğini ve inline modu çalıştırıp çalıştırmayacağını ayarlamanızı sağlar.

5.1 /setprivacy — Gizlilik Modu

Gizlilik modu etkin olduğunda (varsayılan), botunuz yalnızca kendisine özel gönderilen mesajları, komutları ve bahsedildiği mesajları alır. Devre dışı bırakıldığında (Disable) ise bot gruptaki tüm mesajları görebilir. Bu ayar, botunuzun grup içi moderasyon veya dinleme yapması gerekiyorsa devre dışı bırakılmalıdır. Örneğin bir trivia botu, grup sohbetindeki her mesajı okumak zorunda olduğu için gizlilik modunu devre dışı bırakmalıdır. Ancak yalnızca /haber komutuna yanıt verecek bir haber botu için gizlilik modu açık kalabilir.

5.2 /setjoingroups — Gruba Ekleme İzni

Bu komut, kullanıcıların botunuzu bir gruba ekleyip ekleyemeyeceğini kontrol eder. "Enable" seçeneği herkesin botu gruba eklemesine izin verirken, "Disable" seçeneği yalnızca sizin eklemenize olanak tanır.

5.2 /setjoingroups — Gruba Ekleme İzni
5.2 /setjoingroups — Gruba Ekleme İzni

5.3 /setinline — Inline Mod

Inline mod, kullanıcıların herhangi bir sohbette @bot_adiniz yazarak botu çağırabilmesini sağlar. Bu özelliği etkinleştirmek için /setinline komutuyla inline placeholder metni belirlemeniz gerekir. Örneğin, bir çeviri botu için "Bir metin girin" yazabilirsiniz. Inline modun çalışması için kod tarafında answerInlineQuery API'sini uygulamalısınız.

6. Bot Silme ve Pasifleştirme

Bir botu tamamen silmek veya geçici olarak devre dışı bırakmak isterseniz BotFather size iki seçenek sunar.

6.1 /deletebot — Bot Silme

Bu komut, seçili botu ve tüm mesaj geçmişini kalıcı olarak siler. İşlemi onayladıktan sonra bot kullanılamaz hale gelir ve aynı kullanıcı adı tekrar kullanılabilir.

Uyarı: Silme işlemi geri alınamaz. Botun token'ı da geçersiz olur. Emin değilseniz önce /mybots içinde botu durdurarak test edin (ayrı bir komut yoktur, botun kodunu durdurmanız gerekir).

6.2 /cancel — İşlemi İptal Etme

Herhangi bir sihirbazın ortasında kaldıysanız /cancel yazarak mevcut işlemi iptal edip ana menüye dönebilirsiniz.

7. İleri Düzey Komutlar ve İntegrasyon

BotFather ayrıca oyun puanı, hediye ve özel başlık gibi daha az bilinen ayarları da destekler.

  • /setgamescore — Bot oyunları için yüksek puan gönderme yetkisi verir.
  • /setgift — Kullanıcılara hediye (sticker gibi) gönderme iznini yönetir.
  • /setcustomtitle — Grup yöneticilerine özel başlık verme yetkisini açar (botun grup yönetici hakları olmalı).

Bu komutlar çoğu bot için gerekli olmasa da oyun veya e-ticaret botları gibi özel durumlarda işe yarar.

8. BotFather Komutlarını Kullanırken Sık Yapılan Hatalar

Ampirik gözlemlere dayanarak, yeni başlayanların en çok karşılaştığı sorunlar şunlardır:

  • Token paylaşımı: Token'ı GitHub gibi açık repolara eklemek en yaygın hatadır. Token sızdırıldığında botunuz kötüye kullanılabilir.
  • Komut listesinde yazım hatası: Komut adında boşluk veya büyük harf kullanmak (ör. "/Merhaba") komutun çalışmamasına yol açar. Yalnızca küçük harf, rakam ve alt çizgi kullanın.
  • Gizlilik modunu yanlış ayarlamak: Gruptaki her mesajı okuması gereken bir botun gizlilik modu açık bırakılırsa, bot sadece bahsedildiğinde çalışır. Bu durum bir moderasyon botunun tamamen işlevsiz kalmasına neden olur.
  • Bot silme işlemini acele yapmak: Onay adımını geçtikten sonra iptal mümkün değildir. Silmeden önce botu yedekleyin veya token'ı not alın.

9. En İyi Uygulamalar ve Öneriler

Aşağıdaki kontrol listesi, BotFather ile yeni bir bot oluşturup yapılandırırken size rehberlik edebilir.

  • Token yönetimi: Token'ı .env dosyasında veya sunucu ortam değişkenlerinde saklayın, asla istemci tarafı koduna eklemeyin.
  • Komut listesini güncel tutun: Botunuza yeni özellik ekledikçe /setcommands ile komut listesini güncelleyin. Eski, çalışmayan komutları kaldırın.
  • Gizlilik modunu kontrol edin: Botunuz gruba özel mesajlara yanıt verecekse (ör. /yardım) mod kapalı olmalı, yalnızca komutlara yanıt verecekse açık bırakılabilir.
  • Inline mod için anlamlı placeholder: Kullanıcıların botu ne için kullanacağını açıklayan kısa bir metin girin (ör. "Şehir adı yazın").
  • Periyodik güvenlik kontrolü: Ayda bir /revoke ile token'ı yenileyerek güvenliği artırabilirsiniz. Bu, eski token'ın sızdırılmış olma riskini azaltır.
  • Bot bilgilerini eksiksiz doldurun: /setdescription, /setabouttext ve profil fotoğrafı eklemek botunuzun güvenilirliğini artırır.

10. SSS (Sıkça Sorulan Sorular)

BotFather komutlarını nereden öğrenebilirim?

BotFather ile sohbete başladığınızda /start komutunu göndererek tüm ana komutların listesini alabilirsiniz. Ayrıca herhangi bir komutun ardından /help yazarsanız, o komut hakkında kısa bir açıklama görürsünüz.

Botumun token’ını kaybettim, ne yapmalıyım?

/mybots komutundan botunuzu seçip "API Token" butonuna tıklayarak token’ı tekrar görebilirsiniz. Eğer token geçersizse /revoke ile yeni token alın.

Komut listesinde kaç komut tanımlayabilirim?

En fazla 100 komut ekleyebilirsiniz. Her komut adı en fazla 32 karakter (küçük harf, rakam, alt çizgi) ve açıklaması 256 karakter olabilir.

Bot oluşturduktan sonra adını değiştirebilir miyim?

Evet, /setname komutuyla botun görünen adını istediğiniz zaman değiştirebilirsiniz. Kullanıcı adını (username) değiştirmek mümkün değildir; yeni bir bot oluşturmanız gerekir.

Botumu sildikten sonra aynı kullanıcı adını kullanabilir miyim?

Evet, bot silindikten sonra kullanıcı adı serbest kalır ve yeni bir bot oluştururken aynı adı kullanabilirsiniz. Ancak eski token geçersiz olur.

11. Sonuç ve Sonraki Adımlar

Bu makalede Telegram BotFather komutlarını kapsamlı bir şekilde inceledik: temel oluşturma ve yönetim komutlarından, bot görünümünü değiştirme, komut listesi ekleme, gizlilik ayarları ve ileri düzey özelliklere kadar. Artık kendi botunuzu sıfırdan oluşturabilir, token güvenliğini sağlayabilir ve botunuzu kullanıcı dostu hale getirebilirsiniz.

Sonraki adım olarak, botunuzu gerçek bir kod tabanına bağlamak için Telegram Bot API belgelerini inceleyebilir, Python veya Node.js gibi dillerde basit bir echo bot yazarak test edebilirsiniz. Unutmayın: BotFather yalnızca botunuzu kaydetmenizi ve yapılandırmanızı sağlar; asıl işlevsellik sizin kodunuzla gelir.