Telegram botları soruları yanıtlayabilir, komutları işleyebilir ve sohbetleri başka hizmetlere bağlayabilir. Bot oluşturmak BotFather ile başlar; botun yanıt vermesi içinse kodsuz bir iş akışı ya da mesajları işleyen bir program gerekir.
Bu rehberde 2026'da Telegram botu oluşturmayı adım adım anlatıyoruz: hesabı kaydetme, token alma, kod yazmadan veya Python kullanarak yanıtları ayarlama ve sık karşılaşılan kurulum sorunlarını çözme. Önce BotFather'ı tanıyacak, ardından çalışan bir bot oluşturmanın iki yoluna da göz atacağız.
Kısaca
resmi @BotFather hesabı üzerinden botunuzu kaydedin ve erişim token'ınızı gizli tutun.
Kodsuz iş akışı basit yanıtları yönetir; Python ise özel mantık üzerinde tam kontrol sağlar.
BotFather hesabı oluşturur; yanıtlar için çalışan bir iş akışı veya program gerekir.
Botu kullanıma almadan önce özel sohbette /start, /help komutlarını ve bir metin mesajını test edin.
Telegram botu nedir?
Telegram botu, otomasyon için tasarlanmış bir Telegram hesabı üzerinden kullanıcıların etkileşim kurduğu bir uygulamadır. Soruları yanıtlayabilir, komutları işleyebilir veya sohbeti başka bir hizmete bağlayabilir. Bu özellikler, Telegram'ın botlara genel bakış sayfasında açıklanıyor.
Tek bir görevle başlayın. Yardım botu, /start ve /help komutları için talimatlar gösterebilir. Yankı botu ise mesajı tekrarlar: Merhaba yazın, Merhaba yanıtını alın. Daha fazla mantık eklemeden önce bağlantıyı test etmek için bu kadarı yeterli.
Botlar kendiliğinden yapay zekâ sohbet botuna dönüşmez. Sabit bir yanıt için yalnızca bir kural yeterlidir; yapay zekâ yanıtı içinse ayrı bir model entegrasyonu gerekir. Mini App, Telegram içinde açılan bir web arayüzüdür. Burada oluşturduğumuz metin tabanlı bottan farklı bir uygulama geliştirme süreci gerektirir.
Telegram'ın reklam ekosisteminde, Telegram reklam platformları (AdsGram gibi) kanallarda, botlarda ve Mini Apps'te kampanyalar yürütür.
Telegram botu nasıl oluşturulur?
Önce BotFather ile hesabı oluşturun, ardından botun nasıl çalışacağını belirlemek için kodsuz bir iş akışı ya da Python seçin. BotFather, her iki yöntemde de kayıt adımıdır; sohbet mantığını oluşturmanın üçüncü bir yolu değildir.
Yöntem | Ayarlananlar | Başlamak için ideal kullanım | Yönetmeniz gerekenler |
|---|---|---|---|
BotFather | Hesap, profil ve erişim token'ı | Zorunlu kayıt adımı | Hesap sahipliği ve ayarları |
Kodsuz | Tetikleyiciler, koşullar ve yanıtlar | Kısa ve öngörülebilir bir sohbet | İş akışı, kimlik bilgileri ve hizmetin kullanılabilirliği |
Python | İşleyiciler ve uygulama mantığı | Özel kurallar veya entegrasyonlar | Kod, bağımlılıklar ve çalışma ortamı |
Telegram botu oluşturma aracı seçmeden önce tek bir sohbet akışını taslak hâline getirin: gelen mesaj → koşul → yanıt. Aracın gereken mesaj türlerini, dallanmayı ve veri depolamayı desteklediğinden emin olun. Sohbette çok sayıda istisna varsa kuralları görsel düzenleyicide ve kodda değiştirmenin ne kadar uğraş gerektirdiğini karşılaştırın.

BotFather ile kaydolun
Resmi @BotFather hesabını açın, /newbot komutunu gönderin ve görünen ad ile kullanıcı adı belirlemek için yönergeleri izleyin. Telegram, kayıt sürecini ilk bot rehberinde anlatıyor.
- Yukarıdaki doğrudan bağlantıyı kullanarak BotFather'ı açın ve Başlat düğmesine dokunun.
/newbotkomutunu gönderin.- Örneğin
Workshop Helpgibi bir görünen ad girin. workshop_help_demo_botgibi, bot ile biten ve kullanılabilir bir kullanıcı adı seçin.- Erişim token'ını bir parola yöneticisinde veya gizli bilgi kasasında saklayın.
- Botun sohbetine erişebildiğini doğrulamak için bağlantısını aç.
Örnek kullanıcı adı yalnızca fikir vermek içindir; kullanılabilir olduğu garanti edilmez. Latin harfleri, rakamlar ve alt çizgi kullanın. Ayrıca BotFather’ın gösterdiği kullanıcı adı kurallarına uyun.
Erişim token’ı, botun Bot API ile kimlik doğrulamasını sağlar. Bu token’ı ele geçiren biri botun kontrolünü alabilir; bu yüzden ekran görüntülerinde, depolarda veya paylaşılan belgelerde yayımlamayın. Mevcut bir botun token’ını almak ya da yenisiyle değiştirmek için BotFather’daki yönetim seçeneklerini açın. Token sızarsa geçersiz kılın ve bağlı uygulamadaki token’ı yenisiyle değiştirin.

BotFather’da kullanışlı komutlar
Bunlar, kurulumda sık kullanılan komutlardır; listenin tamamı değildir. Kullanılabilir ayarlar için Telegram’ın BotFather kılavuzuna ve BotFather’ın güncel menüsüne göz atın.
Komut | İşlevi |
|---|---|
| Bot kaydı oluşturur |
| Botlarınızı yönetir |
| Görünen adı düzenler |
| Botun ne yaptığını açıklar |
| Kısa profil açıklamasını düzenler |
| Profil görselini ayarlar |
| Komut menüsünü yapılandırır |
| Kimlik doğrulama token’ı oluşturur |
Yalnızca uygulamanızın gerçekten işlediği komutları ekleyin. Menüye bir komut eklemek, ona yanıt verileceği anlamına gelmez: /help komutunun çalışması için bir iş akışı kuralı veya kod işleyicisi gerekir.
Kod yazmadan bot oluşturun
Kod yazmadan Telegram botu oluşturmak için token’ını görsel bir iş akışına bağlayın ve gelen mesajlara nasıl yanıt verileceğini belirleyin. Aşağıda temel bir n8n örneği var. n8n, Telegram’a ait olmayan üçüncü taraf bir otomasyon aracıdır.
Telegram etkinliklerini alabilen bir n8n örneğiyle başlayın. Kendi sunucunuzda barındırmak için sunucu yapılandırması da gerekir; yani “kodsuz”, “kurulum gerektirmez” demek değildir. Barındırılan bir planın veya kesintisiz çalışmanın ücretsiz olduğunu varsaymayın.
- Yeni bir iş akışı oluşturun ve Telegram Trigger ekleyin.
- Telegram kimlik bilgilerini oluşturun ve BotFather token’ını Access Token alanına girin. Bunun için kimlik bilgileri belgelerini izleyin.
- ⟦0⟧Şu etkinliği seçin: Telegram Trigger.
- Resource olarak Message, operation olarak Send Message seçip bir Telegram action ekleyin.
- Chat ID alanına gelen mesajın sohbet kimliğini girin. Action doğrudan Trigger’ı izliyorsa
{{ $json.message.chat.id }}ifadesini kullanın. - Text alanına
Merhaba! Botunuz bağlandı.yazın. Telegram action belgelerinde desteklenen işlemler açıklanıyor. - Test dinleyicisini başlatın, ardından botunuza yeni bir özel mesaj gönderin.
- Yanıtın geldiğini doğrulayın ve iş akışını sürekli kullanım için yayımlayın ya da etkinleştirin.
Bu örnek, her mesaja bilerek aynı cümleyle yanıt verir. Sonraki adımda /start komutunu karşılama mesajına, /help komutunu da talimatlara yönlendiren bir koşul ekleyin. Kullanıcıyı yanıtsız bırakmamak için tanınmayan girdilere ne yanıt vereceğinizi de belirleyin.
n8n’i kendi sunucunuzda barındırıyorsanız Telegram için herkese açık bir HTTPS webhook adresi gerekir. Test ve canlı ortam, webhook kaydını birbirinin üzerine yazabilir. Bu nedenle canlı iş akışında değişiklik yaparken ayrı bir test botu kullanın. Daha fazla bilgi için n8n’in Telegram sorun giderme kılavuzuna göz atın.
Python ile Telegram botu oluşturun
Yanıtlar, doğrulama ve entegrasyonlar üzerinde doğrudan kontrol sahibi olmak istiyorsanız Python kullanın. Aşağıdaki örnekte /start, /help komutları ve metin yankılama, python-telegram-bot örneğindeki asenkron işleyici yapısıyla uygulanıyor..
Projeyi hazırlayın
Desteklenen bir Python sürümü yükleyin; bu örnek için Python 3.12 uygun bir başlangıç noktasıdır. kütüphane belgeleri uyumluluk ayrıntılarını içerir. Projenin paketlerini ayrı tutmak için bir klasör ve sanal ortam oluşturun.
macOS veya Linux'ta:
mkdir telegram-bot-demo cd telegram-bot-demopython3 -m venv .venv source .venv/bin/activate python -m pip install "python-telegram-bot==22.8"
Windows PowerShell'de py -m venv .venv komutunu kullanın,
ardından .\.venv\Scripts\Activate.ps1 komutunu çalıştırın ve aynı yükleme komutunu girin.
Yerel ilkeler etkinleştirmeyi engelliyorsa, sırf bu eğitim için sistem ilkelerini değiştirmek yerine .\.venv\Scripts\python.exe dosyasını doğrudan çalıştırın.
Bot kodunu ekleyin
Bunu bot.py adıyla kaydedin. Token, kaynak kod deposuna eklenen bir metin değil, ortam değişkeninden alınır.
import os
from telegram import Update
from telegram.ext (
Application, CommandHandler, ContextTypes,
MessageHandler, filters,
)
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message:
await update.message.reply_text("Hello! Send text or use /help.")
async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message:
await update.message.reply_text("I repeat text messages. Try sending Hello.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message and update.message.text:
await update.message.reply_text(update.message.text)
def main():
token = os.environ.get("TELEGRAM_BOT_TOKEN")
if not token:
raise SystemExit("Set TELEGRAM_BOT_TOKEN before starting the bot.")
app = Application.builder().token(token).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("help", help_command))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
app.run_polling(allowed_updates=["message"])
if __name__ == "__main__":
main()
Botu çalıştırın
Gizli anahtarı aynı terminal oturumunda ayarlayıp python bot.py komutunu çalıştırın. macOS veya Linux'ta bash ya da zsh kullanıyorsanız, bu yöntem token'ı kabuk geçmişine kaydedilen bir komuta doğrudan yazmanızı önler:
read -s "TELEGRAM_BOT_TOKEN?Paste bot token: "zsh export TELEGRAM_BOT_TOKEN python bot.py
bash kullanıyorsanız ilk satırı şu komutla değiştirin: read -s -p "Paste bot token: " TELEGRAM_BOT_TOKEN.
PowerShell 7'de $env:TELEGRAM_BOT_TOKEN = Read-Host -MaskInput 'Paste bot token' komutunu kullanın, ardından python bot.py komutunu çalıştırın.
Özel sohbeti açıp /start, /help komutlarını ve kısa bir metin mesajını deneyin. İşlemi Ctrl+C ile durdurun. Bu kod, öğrenmeye yönelik temel bir örnektir; veritabanı, kalıcı konuşma durumu veya üretim ortamına yönelik izleme içermez.
Botu çalışır durumda tutun
Uygulamayı sürekli açık kalan bir sunucuda çalıştırın ya da kodsuz iş akışını barındırıldığı ortamda etkin tutun. Yerel Python işlemini kapatırsanız bot yanıt vermeyi durdurur.
Long polling, programınızın Telegram'dan yeni etkinlikleri düzenli olarak istemesi demektir. Webhook'ta ise etkinlikleri Telegram sunucunuza gönderir. Bot API başvuru kaynağı bu iki güncelleme yönteminin birbirinin yerine kullanılamayacağını açıklar. Python örneğinde polling, n8n tetikleyicisinde ise webhook kullanılır.
Bir denemeyi ortak kullanıma açmadan önce:
- Token'ı sunucunun gizli ayarlarında saklayın; .venv klasörünü ve gizli dosyaları Git'e eklemeyin.
- Her bot token'ı için tek bir polling örneği çalıştırın; aynı botun etkinliklerini başka bir uygulamanın da almasını önleyin.
- Otomatik yeniden başlatmayı ayarlayın. Hataları incelerken gizli bilgileri veya gereksiz mesaj içeriğini günlüklere yazmayın.
- Gerekli konuşma durumunu işlem belleğinin dışında saklayın.
- Yeniden başlatmayı deneyin ve botun tekrar çalıştığını doğrulayın.
Projeniz ileride bir web arayüzüne ihtiyaç duyarsa, bunu ayrı bir çalışma olarak planlayın. AdsGram'ın Telegram Mini App geliştirme sürecinde sık yapılan hatalarrehberi, bu aşama için faydalı bir kaynak olabilir.
Yaygın kurulum hatalarını giderin
Bot yanıt vermiyorsa profilini değiştirmeden önce uygulamanın çalışıp çalışmadığını ve güncellemelerin iletilip iletilmediğini kontrol edin. Sorunun hesapta mı, iş akışında mı yoksa kodda mı olduğunu anlamak için şu sırayı izleyin.
- Kayıttan sonra yanıt gelmiyor: İş akışını veya programı bağlayıp başlatın; BotFather tek başına botu çalıştırmaz.
- Ortam değişkeni eksik:
TELEGRAM_BOT_TOKENdeğişkenini Python'ı başlatan aynı kabukta veya barındırma hizmetinde tanımlayın. - Kimlik doğrulama hatası: Fazladan boşluk olup olmadığını, token'ın güncel olup olmadığını ve doğru botun kimlik bilgilerinin kullanıldığını kontrol edin.
- Polling çakışması: Yinelenen işlemleri durdurun. Webhook kullanan bir hizmetten polling'e geçiyorsanız, polling'i başlatmadan önce
deleteWebhookile webhook'u bilinçli olarak kaldırın; ayrıntılar için Telegram güncellemeleriyle ilgili SSS. - Özel sohbette çalışıyor, grupta çalışmıyor: Gizlilik modunu kontrol edin ve
/help@your_bot_usernamegibi bota yöneltilmiş bir komutu deneyin. - Menü komutu çalışmıyor: Bu komut için bir işleyici ekleyin; BotFather'da komutu eklemek yalnızca görünür olmasını sağlar.
Sık sorulan sorular
Barındırma hesabı açmadan da yerel ortamınızda başlayabilirsiniz. Aşağıdaki yanıtlar, kayıt ve kesintisiz çalışma için neler gerektiğini açıklıyor.
Telegram botunu ücretsiz oluşturabilir miyim?
Telegram'ın temel bot platformunu kullanmak ücretsizdir; küçük bir Python botunu kendi bilgisayarınızda geliştirebilirsiniz. Barındırma, kodsuz araçlar veya harici API'ler için ayrıca ücret ödemeniz gerekebilir. İlk denemenizde yerel ortamda basit bir metin yanıt botu çalıştırın. Botu sürekli çalışır hâle getirmeden önce barındırma ve hizmet ücretlerini kontrol edin.
BotFather güvenli mi?
BotFather'a Telegram belgelerindeki bağlantıdan veya bu kılavuzdaki doğrudan @BotFather bağlantısından ulaşın. BotFather, Telegram'ın bot yönetim aracıdır. En büyük riskler, BotFather'ı taklit eden hesaplar ve erişim token'larının açığa çıkmasıdır. Token'ınızı gizli tutun ve yalnızca botu çalıştırması için özellikle güvendiğiniz uygulama veya hizmetlerle paylaşın.
BotFather'dan Telegram bot token'ı nasıl alırım?
Resmî BotFather'a /newbot mesajını gönderin ve botun adıyla kullanıcı adı için verilen adımları izleyin. BotFather, botunuza ait token'ı gönderir. Mevcut bir bot için yönetim seçeneklerini kullanarak yeni token oluşturabilirsiniz. Token'ı güvenli bir yerde saklayın; önceki token'ı iptal ettiğinizde veya yenisiyle değiştirdiğinizde uygulamanızdaki kimlik bilgilerini de güncelleyin.
Telegram botu oluşturmak için Python bilmem gerekir mi?
Hayır. Basit bir yanıtı Python kullanmadan görsel bir iş akışıyla oluşturabilir, Bot API'yi başka programlama dilleriyle de kullanabilirsiniz. İhtiyacınız olan işlevlere ve sürdürebileceğiniz yapıya göre bir yol seçin. Görsel bir araç, basit bir karar ağacı için yeterli olabilir; daha karmaşık doğrulama ve entegrasyonlar için kendi uygulamanızı yazmanız gerekebilir.
Terminali kapatınca botum neden duruyor?
Bu örnekte mesajları alıp yanıtları gönderen süreç terminalde çalışır. Süreç sona erdiğinde bot hesabınız açık kalsa da bu işlevler durur. Botu kesintisiz kullanmak için programı otomatik yeniden başlatma desteği olan, sürekli çalışan bir ortama dağıtın. Alternatif olarak, barındırılan iş akışını açık tutun ve yanıt gelmediğinde çalıştırma günlüklerini kontrol edin.





