TelegramBot
March 15, 2020
Python ile Telegram Bot Yapımı | 3
Bu yazımızda kendimize özel bir FeedBack yani geri bildirim botu oluşturacağız. Adım adım ilerleyerek en son tamamlanmış halini githuba koyacağız. O zaman başlayalım.
from telebot import TeleBot bot = TeleBot("TOKENİNİZ")
- Bir bot ile sohbet başlatığınızda zorunlu olarak ilk yazacağınız şey /start komutudur. Biz bu /start komutunda kullanıcıyı yönlendirmeliyiz. Kullanıcı bize /start komutunu gönderdiğinde ona kullanımı öğrenmek için /help komutunu çalıştırın diyelim.
@bot.message_handler(['start']) def baslangic_mesaji(m): chat_type = m.chat.type if chat_type == "private": #Sadece özel sohbetlerde bot.send_message(m.chat.id, "Merhaba, kullanımı öğrenmek için /help komutunu gönderin.")
- Bu help komutunda kullanıcıya nasıl kullanacağınız gösteren biz yazı yazabiliriz ama ben sadece "Yardım mesajı" yazacağım siz özelleştirebilirsiniz.
@bot.message_handler(['help']) def yardim_mesaji(m): chat_type = m.chat.type if chat_type == "private": #Sadece özel sohbetlerde bot.send_message(m.chat.id, "Yardım mesajı")
- Şimdi /feedback komutu oluşturalım ve bu komuttan sonra yazılan yazılar bize gönderilsin.
ban_listesi = [] #FeedBack ile troll yemeyelim :) bizim_IDmiz = 1234568790 #Bizim kullanıcı idmiz @bot.message_handler(['feedback']) def geri_bildirim(m): chat_type = m.chat.type if chat_type == "private": #Sadece özel sohbetlerde user_id = m.from_user.id if user_id not in ban_listesi: kullanici = f"[{m.from_user.first_name}](tg://user?id={m.from_user.id})" #Kullanıcı profili bot.send_message(bizim_IDmiz, f"{kullanici}\nID : `{m.from_user.id}` FeedBack : {' '.join(m.text.split()[1:])}", parse_mode="Markdown") #Bize gönder bot.reply_to(m, "FeedBack gönderildi.") #Gönderildiğini haber ver.
- FeedBack alabildik. Sıra cevap göndermede. Kullanımımız "/answer <kullanıcı ID> <mesaj> şeklinde olsun.
@bot.message_handler(['answer']) def cevapla(m): user_id = m.from_user.id if int(user_id) == bizim_IDmiz: gonderliecek_kisi = m.text.split()[1] gonderilecek_mesaj = " ".join(m.text.split()[2:]) try: bot.send_message(gonderliecek_kisi, f"Cevap : {gonderilecek_mesaj}") bot.reply_to(m, "Mesaj gönderildi.") except: bot.reply_to(m, "Mesaj gönderilemedi.")
- Gelelim şimdi ban kısmına. Bot ile bize spam atmaya çalışan kullanıcıları banlayarak bize FeedBack atmalarını önleyelim.
@bot.message_handler(['ban']) def ban(m): user_id = m.from_user.id if int(user_id) == bizim_IDmiz: ban_listesi.append(m.text.split()[1]) bot.reply_to(m, "Kullanıcı banlandı.")
- Ve unban...
@bot.message_handler(['unban']) def unban(m): user_id = m.from_user.id if int(user_id) == bizim_IDmiz: ban_listesi.remove(m.text.split()[1]) bot.reply_to(m, "Kullanıcı banı kaldırıldı.")
- Şimdi de botumuzu canlandırmak için...
bot.polling()
Artık bir feedback botuna sahibiz. Daha fazla ayrıntılı şekli için Github'da daha detaylı bakabilirsiniz.
📃 Yandex.Disk Bünyemizdeki veriler 1 TB'a ulaşmıştır :) 🎊
Paylaşılan Kursların Tümünü @KekikKahve Grubu notlarından Çağırabilirsiniz..
🕊️ Bize oy verip paylaşarak destek olmaya ne dersin? ✌🏼