Telegram Botu Nasıl Barındırılır
Bu sayfada
Bir Telegram botu yalnızca kodu çalışırken yanıt verir. Botu dizüstü bilgisayarınızda yaparsanız, bilgisayar uyku moduna geçtiği anda susar — bu yüzden er ya da geç her botun sürekli açık kalan bir yuvaya ihtiyacı olur.
Bu rehber tüm yolu kapsar: botu BotFather ile oluşturmak, polling ile webhook arasında seçim yapmak, Python ve JavaScript'te çalışan bir örnek, Telegram'ın koyduğu limitler ve kurallar ve botu 7/24 çevrimiçi tutmanın yolu.
1. Adım: Botu BotFather ile oluşturun
- Telegram'da @BotFather sohbetini açın ve
/newbotgönderin. - Bota bir görünen ad, ardından bir kullanıcı adı verin: 5 ila 32 karakter, Latin harfleri, rakamlar ve alt çizgiler; sonu
botile bitmeli — örneğinmy_shop_helper_bot. - BotFather token ile yanıt verir; şuna benzer:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Ona sahip olan herkes botunuzu kontrol eder, bu yüzden onu kodunuzun dışında tutun ve asla paylaşmayın. Sızarsa yenisini almak için BotFather'a/tokengönderin.
Bilinmesi gereken iki BotFather komutu daha: /setcommands, kullanıcıların / yazdığında gördüğü komut listesini ekler; /setprivacy ise botun gruplarda neyi gördüğünü belirler. Gizlilik modu varsayılan olarak açıktır; yani bir grupta bot yalnızca kendisine yönelik komutları ve kendi mesajlarına verilen yanıtları alır — onu yönetici yapmadığınız sürece.
Polling mi, webhook mu?
Bir bot mesajlarını Telegram'dan iki yoldan biriyle alır — asla ikisiyle aynı anda değil:
| Long polling | Webhook | |
|---|---|---|
| Nasıl çalışır | Bot, açık tek bir bağlantı üzerinden Telegram'a sürekli yeni mesaj olup olmadığını sorar | Telegram her güncellemeyi HTTPS adresinize gönderir |
| Gerekenler | Yalnızca giden internet erişimi | Bir alan adı, geçerli bir sertifika ve 443, 80, 88 veya 8443 numaralı port |
| En uygun olduğu | Neredeyse her bot; barındırması da en kolayı | Çok yoğun botlar veya serverless platformlar |
Polling ile başlayın. Alan adı, sertifika veya açık port gerektirmez ve her kütüphane destekler. Token üzerinde daha önce bir webhook ayarlandıysa önce deleteWebhook çağırın — webhook etkinken polling çalışmaz.
Polling kullanan botlar, alan adı veya açık port ayarlamadan HytHost bot hosting üzerinde çalışır — Python veya Node.js, aylık €0.89'dan başlayan fiyatlarla.
Bot hosting paketlerini görün2a. Adım: Python ile bir bot (python-telegram-bot)
python-telegram-bot 22, Python 3.10 veya daha yenisini gerektirir. pip install python-telegram-bot ile kurun ve bot.py dosyasını oluşturun:
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes, MessageHandler, filters
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("Hi! Send me a message and I will echo it.")
async def echo(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text(update.message.text)
def main() -> None:
application = Application.builder().token(os.environ["TELEGRAM_TOKEN"]).build()
application.add_handler(CommandHandler("start", start))
application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, echo))
application.run_polling(allowed_updates=Update.ALL_TYPES)
if __name__ == "__main__":
main()
Python'da diğer popüler seçenek aiogram 3'tür; o da Python 3.10 veya daha yenisinde çalışır.
2b. Adım: JavaScript ile bir bot (grammY)
grammY, Node.js için aktif olarak geliştirilen Telegram framework'üdür. npm install grammy çalıştırın ve bot.js dosyasını oluşturun:
const { Bot } = require("grammy");
const bot = new Bot(process.env.TELEGRAM_TOKEN);
bot.command("start", (ctx) => ctx.reply("Welcome! Up and running."));
bot.on("message:text", (ctx) => ctx.reply(ctx.message.text));
process.once("SIGINT", () => bot.stop());
process.once("SIGTERM", () => bot.stop());
bot.start();
Eski eğitimler Telegraf kullanır; Telegraf'ın Şubat 2024'ten beri yeni sürümü çıkmadı. Yeni bir bot için grammY daha güvenli bir seçimdir.
Telegram'ın botlar için limitleri ve kuralları
Telegram'ın bot SSS'sindeki limitler:
- Tek bir sohbette saniyede yaklaşık bir mesaj, bir grupta dakikada 20 mesaj ve toplamda saniyede yaklaşık 30 mesaj.
- Dosyalar: bot en fazla 50 MB gönderebilir ve en fazla 20 MB indirebilir.
- Aynı anda botun yalnızca bir kopyası polling yapabilir. İkincisi Conflict: terminated by other getUpdates request hatası alır — test için ayrı bir token kullanın.
Kurallar: Telegram'ın bot geliştirici şartları spam'i, istenmeyen mesajları ve hız limitlerinin aşılmaya çalışılmasını yasaklar. Bir botun gizlilik politikası olmalıdır (kendinizinkini yazmazsanız Telegram'ın standart politikası geçerlidir) ve istendiğinde kullanıcının verilerini silmelidir. Bot yerine kişisel bir hesabı otomatikleştirmek — userbot denen şey — tamamen farklı bir konudur ve Telegram flood veya spam için kullanılan hesapları yasaklar.
HytHost'ta Telegram bot hosting
Bot hosting paketlerimiz Discord botlarının yanı sıra Telegram botlarını da çalıştırır:
- Bir paket ve çalışma ortamı seçin — python-telegram-bot veya aiogram için Python, grammY için Node.js. Startup sekmesinde Python 3.10 veya daha yenisini ya da güncel bir Node.js sürümünü seçin.
- Kodunuzu yükleyin: dosya yöneticisi veya SFTP ile,
requirements.txtya dapackage.jsonile birlikte. - Token'ı bir
.envdosyasına veya bir ortam değişkenine koyun, koda değil. - Başlatın. Polling ile bot alan adı veya açık port gerektirmez; çökerse panel onu yeniden başlatır.
Kurallarımızın izin verdikleri: resmi Bot API üzerine kurulmuş, BotFather token'ı kullanan botlar. İzin verilmeyenler: kişisel bir hesabı otomatikleştiren userbot'lar, istenmeyen toplu mesajlar, kullanıcı veya grupların verilerini kazımak (scraping) ve medyayı hakları olmadan indirip başkalarına aktaran botlar. Bu kuralları ihlal eden bir bot askıya alınır.
Paketlere bir MySQL veritabanı ve yedekler dahildir. Bir Discord botu da mı yapıyorsunuz? Discord botu nasıl yapılır rehberine göz atın.
Telegram botunuzu bilgisayarınız olmadan 7/24 çevrimiçi tutun: aylık €0.89'dan başlayan Python veya Node.js bot hosting, yeniden başlatmalar dahil.
Bot hosting paketlerini görünSıkça sorulan sorular
Kendi bilgisayarınızda ücretsiz çalıştırabilirsiniz, ancak bilgisayar uyku moduna geçtiğinde veya yeniden başladığında bot çevrimdışı olur. Ücretsiz bulut paketleri boşta kalan uygulamaları sık sık duraklatır veya kullanımlarını sınırlar. Çevrimiçi kalan bir bot için küçük, ücretli bir hosting güvenilir seçenektir.
Neredeyse her bot için polling: alan adı, sertifika veya açık port gerektirmez. Webhook'lar çok yoğun botlara veya serverless platformlara uygundur ve 443, 80, 88 ya da 8443 numaralı portta HTTPS gerektirir. Bir token ikisini aynı anda kullanamaz.
@BotFather'a /token gönderin ve yeni bir token almak için botu seçin, ardından botun çalıştığı her yerde güncelleyin. Token'ı bir ortam değişkeninde veya .env dosyasında tutun, asla paylaştığınız kodda değil.
Botun iki kopyası aynı token ile polling yapıyor; örneğin biri bilgisayarınızda, biri sunucuda. Birini durdurun ve test için ayrı bir bot ve token kullanın.
Çok az. Komutlara yanıt veren tipik bir Python veya Node.js botu genellikle 512 MB ile sorunsuz çalışır; görsel işleyen veya bellekte büyük veri tutan botlar daha fazlasına ihtiyaç duyar.
Telegram botunuz 7/24 çevrimiçi
HytHost bot hosting, Python veya Node.js Telegram botunuzu otomatik yeniden başlatma, MySQL veritabanı ve yedeklerle çalıştırır — aylık €0.89'dan başlayan fiyatlarla.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursBu rehber işine yaradı mı?