Telegram Türkçe logoTelegramTürkçe İndirme Merkezi
Bot Oluşturma··Telegram Teknik Ekip

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.

#Bot Oluşturma#BotFather#API#Komut Ekleme#Webhook#Sorun Giderme
Telegram botu nasıl oluşturulur, BotFather komutları, Telegram botu ayarları, Telegram botu yanıt vermiyor nasıl düzeltilir, Webhook ve polling farkı, Telegram botuna komut ekleme

BotFather Nedir ve Neden Kullanılır?

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:

  • Yeni bot oluşturma ve isimlendirme
  • Bot API token'ı oluşturma ve yenileme
  • Bot profilini düzenleme (açıklama, profil fotoğrafı, hakkında)
  • Komut listesini tanımlama
  • Gizlilik modu ayarları
  • Webhook ve polling ayarlarını yönetme
  • Botu silme

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.

BotFather Nedir ve Neden Kullanılır?
BotFather Nedir ve Neden Kullanılır?

BotFather'a Erişim ve İlk Adımlar

BotFather'ı Bulma ve Başlatma

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.

Yeni Bir Bot Oluşturma

BotFather'a /newbot komutunu gönderin. Sırasıyla şu bilgileri isteyecektir:

  1. Bot adı: Kullanıcıların sohbet listesinde göreceği görünen ad. Örn. "Hava Durumu Asistanı"
  2. Bot kullanıcı adı: Benzersiz, 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.

Bot Profilini Yönetme

İsim, Açıklama ve Hakkında Değişiklikleri

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).

Komut Listesi Tanımlama

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:

komut1 - Açıklama\nkomut2 - Açıklama

Örneğin bir hava durumu botu için:

hava - Şu anki hava durumunu göster\ntahmin - 5 günlük tahmin\nuyari - Hava uyarıları

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.

Bot Gizlilik Modu ve Ayarları

Gizlilik Modu Ne İşe Yarar?

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.

Webhook ve Polling: Veri Alma Yöntemleri

Polling (Çekme) Yöntemi

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 Yöntemi

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:

import requests\nTOKEN = "your_token"\nurl = f"https://api.telegram.org/bot{TOKEN}/setWebhook"\ndata = {"url": "https://yourdomain.com/webhook"}\nrequests.post(url, data=data)

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.

Botu Silme ve Token Yenileme

Botu Kalıcı Olarak Silme

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 Yenileme

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.

Sorun Giderme

Bot Yanıt Vermiyor

Belirti: Botunuza mesaj gönderiyorsunuz ancak hiçbir yanıt alamıyorsunuz.
Olası nedenler:

  • Token yanlış veya eski olabilir.
  • Webhook yapılandırması hatalı olabilir.
  • Bot sunucunuz kapalı veya kodda hata var.
  • Bot gizlilik modu etkin ve mesaj doğrudan gönderilmemiş olabilir.

Doğrulama: Önce BotFather üzerinden token'ı kontrol edin. Ardından getMe API çağrısı yaparak botun erişilebilir olduğunu test edin:

curl https://api.telegram.org/botYOUR_TOKEN/getMe

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.

Webhook Hataları

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.

Webhook Hataları
Webhook Hataları

Komutlar Görünmüyor

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.

İleri Düzey: Birden Fazla Bot Yönetimi ve Otomasyon

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.

Uygulanabilir ve Uygulanamaz Senaryolar

BotFather Hangi Durumlarda Vazgeçilmezdir?

  • Herhangi bir Telegram botu oluştururken ilk adım.
  • Bot token'ı almak veya yenilemek.
  • Botun temel profil bilgilerini (isim, açıklama, fotoğraf) ayarlamak.
  • Komut listesini tanımlamak.
  • Gizlilik modunu değiştirmek.

BotFather'in Yetersiz Kaldığı Durumlar

  • Botun karmaşık mantığını yönetmek (BotFather sadece yapılandırma sağlar).
  • Webhook ayarlarını değiştirmek (bot API'si üzerinden yapılır).
  • Bot istatistiklerini görüntülemek.
  • Botun verilerini yedeklemek veya dışa aktarmak.
  • Birden fazla botu toplu olarak yönetmek.

En İyi Uygulamalar

  • Token'ınızı asla doğrudan kod içine yazmayın; ortam değişkeni veya yapılandırma dosyası kullanın.
  • Bot geliştirirken polling ile başlayın, canlıya geçerken webhook'a geçin ve SSL sertifikasını doğru yapılandırın.
  • Komut listesini kısa ve açıklayıcı tutun; her komut net bir işleve sahip olmalı.
  • Gizlilik modunu yalnızca gerekliyse kapatın. Veri minimizasyonu ilkesine uyun.
  • BotFather üzerinden bot sildikten sonra kullanıcı adını bir daha kullanamazsınız; silmeden önce emin olun.
  • Webhook ayarlarken mutlaka getWebhookInfo ile doğrulama yapın.
  • Birden fazla bot yönetiyorsanız her bot için ayrı log tutun ve token'ları güvenli bir şekilde saklayın.

Sıkça Sorulan Sorular

Birden fazla bot oluşturabilir miyim?

Evet. Aynı Telegram hesabıyla sınırsız sayıda bot oluşturabilirsiniz. Her botun benzersiz bir kullanıcı adı olmalıdır.

BotFather ile webhook ayarlayabilir miyim?

Hayır, webhook ayarları doğrudan Bot API üzerinden yapılır. BotFather yalnızca token ve temel yapılandırma sağlar.

Bot silindikten sonra kullanıcı adı tekrar alınabilir mi?

Hayır. Silinen botun kullanıcı adı kalıcı olarak kullanılamaz. Yeni bir bot oluştururken farklı bir isim seçmelisiniz.

Gizlilik modu açıkken bot grup mesajlarını görebilir mi?

Yalnızca kendisinden bahsedilen mesajları (/komut veya @botadı ile) görebilir. Tüm mesajları görmek için gizlilik modu kapatılmalıdır.

Token'ım çalındı, ne yapmalıyım?

Hemen BotFather'dan ilgili bot seçip "Revoke token" ile eski token'ı iptal edin. Yeni token'ı kodunuza güncelleyin.

Sonuç

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.