Giriş: Neden Bot Kullanmalısınız?
Telegram, gruplar ve kanallar üzerinden kitlesel iletişim kurmak için popüler bir platformdur. Ancak binlerce aboneye sahip bir kanalı manuel olarak güncellemek, özellikle düzenli duyurular, haftalık bültenler veya anlık bildirimler söz konusu olduğunda verimsizleşir. Bu noktada Telegram kanalına otomatik mesaj göndermek için bot nasıl oluşturulur sorusu devreye girer. Bir bot, API üzerinden kanalınıza zamanlanmış veya tetiklenmiş mesajlar gönderebilir; böylece el emeğini ortadan kaldırır ve tutarlılık sağlar. Bu makalede, sıfırdan bir bot oluşturmayı, onu kanalınıza eklemeyi ve otomatik mesaj gönderme altyapısını kurmayı adım adım anlatacağız. İster küçük bir topluluk yöneticisi olun ister büyük bir medya kanalı işletiyor olun, bu kılavuz size zaman kazandıracak pratik çözümler sunacaktır.
Temel Kavramlar: Bot, API ve Kanal
Telegram Bot Nedir?
Telegram botları, kullanıcı etkileşimleri olmadan programatik olarak mesaj gönderebilen, medya paylaşabilen ve çeşitli görevleri yerine getirebilen otomatik hesaplardır. Botlar Telegram Bot API aracılığıyla çalışır ve her biri kendine özgü bir API token ile kimlik doğrulaması yapar. Tıpkı insan kullanıcılar gibi kanallara üye olabilir ve yönetici izinlerine sahipse mesaj gönderebilir.
Kanal Türleri ve Bot İzinleri
Telegram kanalları iki tiptir: genel kanallar (herkesin katılabildiği) ve özel kanallar (davetiye gerektiren). Bir botun kanala mesaj gönderebilmesi için kanalda yönetici olarak atanması ve Mesaj Gönderme iznine sahip olması gerekir. Bu izin, kanal ayarlarından veya bot eklenirken atanabilir. Dikkat edilmesi gereken bir nokta: botun Gizlilik Modu varsayılan olarak etkindir. Bu mod, botun yalnızca kendisine gönderilen komutları görmesine izin verir. Ancak bot kanalda admin olduğu sürece herhangi bir kısıtlama olmadan mesaj gönderebilir; bu nedenle kanala otomatik mesaj göndermek için gizlilik modunu kapatmanız gerekmez.
Adım 1: BotFather ile Bot Oluşturma
BotFather Nedir ve Nasıl Bulunur?
BotFather, Telegram'ın resmi bot yöneticisidir; tüm botlar burada oluşturulur ve yönetilir. BotFather'a @BotFather kullanıcı adıyla Telegram arama çubuğundan ulaşabilirsiniz. Hem mobil hem de masaüstü uygulamalarda aynı şekilde çalışır. İlk adım olarak BotFather ile bir sohbet başlatarak işe koyulun.
Bot Oluşturma Komutları
BotFather'a aşağıdaki komutları sırayla gönderin:
- /newbot – yeni bir bot oluşturma sürecini başlatır.
- BotFather size botunuz için bir isim sorar. Görünen adı Türkçe veya istediğiniz dilde yazabilirsiniz (örn. "Haber Botu").
- Ardından bir kullanıcı adı belirlemeniz istenir. Kullanıcı adı _bot ile bitmeli ve benzersiz olmalıdır (örn.
HaberBotu2026_bot). - Başarılı olursa BotFather size API token gönderir. Bu token’ı güvenli bir yerde saklayın; botunuzu yönetmek için kullanılacaktır.
İsteğe bağlı olarak /setdescription ve /setabouttext komutlarıyla botunuzun açıklamasını ve hakkında metnini düzenleyebilirsiniz. Ayrıca /setuserpic ile bir profil fotoğrafı ekleyebilirsiniz.
İpucu: Oluşturduğunuz bot hemen kullanıma hazırdır. Token’ı kimseyle paylaşmayın, aksi halde botunuzu başkaları kontrol edebilir.
Adım 2: Botu Kanalınıza Yönetici Olarak Ekleme
Kanal Ayarlarına Erişim
Botunuzu kanalınıza eklemek için kanalın yöneticisi olmalısınız. Kanalınızın bilgi sayfasına gidin (mobilde sağ üstteki üç nokta, masaüstünde kanal adına tıklayın). Ardından Yöneticiler seçeneğine girin.
Bot Ekleme Adımları
- Yönetici Ekle butonuna tıklayın.
- Arama alanına botunuzun kullanıcı adını (
@HaberBotu2026_bot) yazın ve listeden seçin. - Açılan izin ekranında Mesaj Gönderme (Send Messages) seçeneğini işaretleyin. Diğer izinleri (dosya gönderme, sabitleme vb.) ihtiyacınıza göre ayarlayabilirsiniz.
- Değişiklikleri kaydedin. Artık bot kanalınızda yönetici olarak görünecektir.
Not: Botu kanala ekledikten sonra herhangi bir onay mesajı gelmez. Doğrudan kanal üyeleri listesinde botu yönetici simgesiyle görebilirsiniz.
Uyarı: Botu kanala eklerken Anonim Yönetici seçeneğini işaretlerseniz bot mesajları kanal adına değil, kanalın kendi adına gider. Bu genellikle istenen davranıştır. Ancak bazı botlar özel bilgiler gösteriyorsa anonimlik kapatılabilir.
Adım 3: API ile Mesaj Gönderme (İlk Test)
Token ve Chat ID’yi Bulma
Botunuzun API ile mesaj gönderebilmesi için iki şeye ihtiyacınız var: API token (BotFather’dan aldığınız) ve Chat ID (kanalın benzersiz kimlik numarası).
Chat ID’yi bulmak için pratik bir yöntem: Botunuzu kanala ekledikten sonra, botun özel mesajlarına kanaldan bir mesaj iletin (forward edin). Ardından şu URL’yi kullanarak güncellemeleri alın:
https://api.telegram.org/bot<TOKEN>/getUpdates
Yanıt JSON formatında olacaktır. message.chat.id alanından Chat ID’yi okuyabilirsiniz. Kanallar için bu genellikle negatif bir sayıdır (örn. -1001234567890).
sendMessage Metodu
Aşağıdaki HTTP GET (veya POST) isteğini tarayıcıda veya curl ile test edin:
https://api.telegram.org/bot<TOKEN>/sendMessage?chat_id=<CHAT_ID>&text=Merhaba%20kanal!
Başarılı yanıt {"ok":true} döndürür. Kanalda mesajın göründüğünü teyit edin. Rate limiting (hız sınırlaması) nedeniyle yanıt gecikebilir; resmi limit bot başına saniyede yaklaşık 30 mesajdır, ancak kanallar için daha düşük olabilir. Pratikte arka arkaya çok sayıda mesaj göndermekten kaçının.
Adım 4: Otomatik Gönderim Altyapısı Kurma
Zamanlanmış Gönderim için Yöntemler
Artık botunuz çalışıyor. Sıra geldi mesajları otomatikleştirmeye. Bunun için bir sunucuda veya yerel bilgisayarda çalışan bir betik yazmanız gerekir. İşte yaygın yaklaşımlar:
- Cron job (Linux/macOS): Belirli zamanlarda bir curl komutunu veya Python betiğini çalıştırır.
- Windows Görev Zamanlayıcı: Benzer şekilde belirli aralıklarla bir .bat veya PowerShell betiği çalıştırır.
- Sunucusuz işlev (AWS Lambda, Google Cloud Functions): Bir HTTP tetikleyicisiyle mesaj gönderebilir.
- Webhook tabanlı: Harici bir hizmetten (örneğin RSS, GitHub) gelen tetikleyicilerle mesaj gönderir.
Örnek: Python ile Basit Bir Zamanlanmış Gönderici
Aşağıdaki Python betiği, schedule kütüphanesi kullanarak her gün saat 09:00'da bir mesaj gönderir. Öncelikle gerekli kütüphaneleri yükleyin:
pip install requests schedule
Ardından aşağıdaki kodu bot.py olarak kaydedin:
import requests
import schedule
import time
TOKEN = "YOUR_TOKEN_HERE"
CHAT_ID = "YOUR_CHAT_ID_HERE"
def send_message():
url = f"https://api.telegram.org/bot{TOKEN}/sendMessage"
data = {"chat_id": CHAT_ID, "text": "Günaydın! Bugünün önemli haberleri..."}
response = requests.post(url, data=data)
print(response.json())
schedule.every().day.at("09:00").do(send_message)
while True:
schedule.run_pending()
time.sleep(60)
Betiği arka planda çalıştırmak için nohup python bot.py & komutunu kullanabilirsiniz. Sunucunuzun sürekli açık kalması gerektiğini unutmayın.
İpucu: Güvenlik için token’ı doğrudan kod içine yazmak yerine ortam değişkeni (os.environ.get('BOT_TOKEN')) kullanmanız önerilir.
İleri Düzey: Sıralı Mesajlar ve Medya Gönderimi
Markdown ve HTML Formatlama
Mesajlarınızı zenginleştirmek için parse_mode parametresini kullanabilirsiniz. Örneğin:
{"chat_id": CHAT_ID, "text": "*Kalın yazı* ve _italik_", "parse_mode": "MarkdownV2"}
HTML modunu da kullanabilirsiniz: <b>Kalın</b>. Dikkat: MarkdownV2 özel karakterleri kaçış gerektirir. Telegram Bot API dokümantasyonunda ayrıntılı açıklama bulabilirsiniz.
Fotoğraf, Video ve Dosya Gönderme
Medya göndermek için sendPhoto, sendVideo, sendDocument gibi metodlar mevcuttur. Örneğin:
url = f"https://api.telegram.org/bot{TOKEN}/sendPhoto"
data = {"chat_id": CHAT_ID, "photo": "https://example.com/foto.jpg", "caption": "Açıklama"}
Dosya boyutu ve tür kısıtlamaları vardır (resim 10 MB’a kadar, video 50 MB’a kadar). Daha büyük dosyalar için sendDocument kullanılabilir.
Yaygın Sorunlar ve Çözümleri
Sorun: Bot mesaj göndermiyor
Olası nedenler:
- Bot kanalda yönetici değil veya mesaj gönderme izni yok.
- Chat ID yanlış (özellikle kanallar için negatif işaret unutulmuş olabilir).
- Bot token geçersiz (yanlışlıkla sıfırlanmış olabilir; /revoke ile yenileyin).
- Rate limit aşıldı (birkaç saniye bekleyip tekrar deneyin).
Eğer sorun devam ediyorsa, botun kanalda doğru izinlere sahip olduğunu ve doğru Chat ID kullanıldığını tekrar kontrol edin. Ayrıca bot token'ınızı sıfırlamak için BotFather'dan /revoke komutunu kullanabilirsiniz.
