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? ✌🏼