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