اليوم في ٠٠:١٦
صاحب الموضوع
Telegram bot geliştirme sürecinde, kullanıcıların en temel ve en yaygın tercih ettiği yöntemlerden biri polling yöntemidir. Bu yöntem, botun sürekli olarak Telegram sunucularını sorgulamasıyla yeni güncellemeleri ve mesajları almasını sağlar. Peki, bu süreci adım adım nasıl kurabilir ve optimize edebilirsiniz? İşte detaylar:
İlk olarak, Telegram Bot API'sine erişim sağlamak için bir bot oluşturmanız gerekiyor. BotFather aracılığıyla yeni botunuzu kaydettikten sonra size bir API token verilir. Bu token ile botunuzu kod içerisinde tanımlayıp kullanmaya başlarsınız.
Polling yöntemi, botun sürekli olarak
getUpdates metodunu çağırmasıyla çalışır. Bu sorgular, botun yeni mesajları ve komutları tespit etmesini sağlar. Temel mantık şu şekildedir:
- Sürekli Döngü Kurma: Bir while döngüsü içinde
getUpdates çağrısı yaparsınız. - Son Güncelleme ID'sini Takip Etme: Her çağrıda alınan güncellemelerden en yükseğini kaydetmek, tekrar tekrar aynı güncellemeleri almamak için önemli.
- Long Polling Kullanımı:
timeout parametresi ile sunucunun belirli sürelerde cevap vermesini sağlarsınız. Bu, sürekli istek göndermenin önüne geçer ve kaynak kullanımını optimize eder.
Örnek Python kodu ile açıklayacak olursak:
123456789101112131415161718192021222324
import requests
import time
TOKEN = 'YOUR_BOT_TOKEN'
URL = f'https://api.telegram.org/bot{TOKEN}/'
def get_updates(offset=None, timeout=30):
params = {'timeout': timeout, 'offset': offset}
response = requests.get(URL + 'getUpdates', params=params)
return response.json()
def main():
update_id = None
while True:
updates = get_updates(offset=update_id)
for update in updates['result']:
update_id = update['update_id'] + 1
# Burada mesajlara yanıt verme veya komut işleme yapılabilir.
print(update)
time.sleep(1) # Sunucuya aşırı yüklenmeyi önlemek için kısa bir uyku
if [b]name[/b] == '[b]main[/b]':
main()
Burada dikkat edilmesi gereken birkaç nokta var:
offset kullanımı, tekrar eden güncellemeleri engeller.timeout parametresi ile uzun sorgulamalar yapabilir, böylece API çağrılarını azaltabilirsiniz.- Sürekli döngü içerisinde
sleep fonksiyonunu kullanmak, sistemi yormadan botun istikrarlı çalışmasını sağlar.
Polling yöntemi, basit ve hızlı kurulum avantajı sunar. Ancak, yüksek trafik ve performans gerektiren uygulamalarda Webhook yöntemi tercih edilmelidir.
Bu temel yapı ile Telegram botunuzu stabil şekilde çalıştırabilir ve temel komutları veya mesajları işleyebilirsiniz.