Loading...

News

Telegram botu yapımı

Telegram’da goygoy uğruna Çüktrüy adlı botu yapmamın uğruna bu tarz bir eğitimin telegram kullanıcıları için iyi olabileceğini planlayarak böyle bir konu yazma gereği duydum. Aslında sanıldığı kadarı ile zor değil hatta çok kolay bile diyebiliriz bu yazılıma. Sistem tamamı ile apiler üzerinden çalıştığı için aslında hiç birşey yapmıyoruz bile sayılabilir toplam 10,15 satırla basic bir bot yapabiliriz.

Bu yazı Developerlara hükmen hazırlanmış bi konudur. Sunucu yada Heroku gibi platformları kullanarak yapabilirsiniz. Google de How to use heroku ? gibi soruları araştırarak herokunun eğitimini görebilirsiniz.

Gereklilikler;

  • Python 3.4+ Version
  • PIP 3 Version

PIP Kurulumu 

  • CENTOS 7 İÇİN : 
    • EPEL kütüphanesini yüklüyoruz
    • sudo yum install epel-release
    • PIP yükleme
    • sudo yum install python-pip
  • Ubuntu için :
    • Güncelleme
    • sudo apt update
    • PİP Yükleme
    • sudo apt install python3-pip

API Kurulumu (API KUTUPHANESİ)

Pip üzerinden telegram apisini sunucumuza kuruyoruz.

pip install pyTelegramBotAPI

 

Bot Oluşturalım 

Telegram’dan @botfather a mesaj atarak botumuzu oluşturalım.

 

Kullanıcı adı belirtirken boşluksuz yazmanız gerekiyor bot oluştuktan sonra size http api verir onu kopyalayın.

 

BOT KODLAMASI 

echo_bot.py adında bir dosya oluşturuyorsunuz ve kodlama işlemine başlıyoruz. import telebot’un üstünde boşluk olmayacak şekilde kodları yapıştırın.

import telebot
cuktruy = telebot.TeleBot("KOPYALADIĞINIZ API KODUNU BURAYA YAPIŞTIRIN")

Üstte ki kodda telebot’u tanımladık ve botumuzun API bağlantısını yaptık.

 

Alttaki kodu oluşturduğumuz python dosyasının en altına ekliyoruz.

@cuktruy.message_handler(commands=['start', 'help'])
def send_welcome(message):
	cuktruy.reply_to(message, "Size nasıl yardımcı olabilirim ? ")

Üstteki kodun anlamı /start veya /help yazdığımızda sizin mesajınızı alıntılayıp “Size nasıl yardımcı olabilirim ?” yazar.

Peki siz komut değil de kelime algılamasını istiyorsanız ne yapacaksınız API’nin regex fonksiyonunu kullanıcaz.

 

Alttaki kodu açtığımız python dosyasının en altına eklerseniz “warezm nedir ” yazdığınızda size otomatik olarak size belirlediğimiz mesajı yanıtlar.

@cuktruy.message_handler(func=lambda m: True,regexp="warezm nedir ")
def kimsin(message):
    cuktruy.reply_to(message, 'Bir eğitim ağırlıklı warez platformudur.')

Bot kodlaması basic olarak burada bitiyor buradaki kodları kullanarak otomatik yanıt alabileceğiniz basit bir yazılım yapabilirsiniz.

Bundan sonra ki yapmak istedikleriniz sizin hayal gücünüze bağlı biz size hazır bir dökümanı Türkçeleştirerek nasıl basit bir bot yapabileceğinizi anlattık. Takıldığınız veya yapamadığınız kısımlarda Forum üzerinden destek alabilir ve konudan yardım isteyebilirsiniz.

 

echo_bot.py (BÜTÜN KODLAR)

import telebot 
cuktruy = telebot.TeleBot("KOPYALADIĞINIZ API KODUNU BURAYA YAPIŞTIRIN")

@cuktruy.message_handler(commands=['start', 'help']) 
def send_welcome(message): 
    cuktruy.reply_to(message, "Size nasıl yardımcı olabilirim ? ")

@cuktruy.message_handler(func=lambda m: True,regexp="warezm nedir ")
def kimsin(message):
    cuktruy.reply_to(message, 'Bir eğitim ağırlıklı warez platformudur.')

Yapamadığınız veya takıldığınız bir konu olursa forum üzerinden belirtebilir ve destek alabilirsiniz.

Destek al / Soru sor

Telegram Kanalına Katıl

DÖKÜMAN 

Peki inline keyboard dediğimiz olayı nasıl yaparız diye soruyorsanız yapmanız gerekenler;

  1. Telegramdan @botfather a /mybots yazın 
  2. Bot Settings e tıklayın
  3. Inlıne Mode a tıklayıp Turn On a basın.

Inline Kullanım : Herhangi bir şey yazdığınızda inline panel açılır Örnek Kod 

@cuktruy.inline_handler(lambda query: query.query == 'text')
def query_text(inline_query):
    # Query message is text

Video Gönderme: 

# sendVideo
video = open('/tmp/video.mp4', 'rb') // Video yu okutun
cuktruy.send_video(chat_id, video)
cuktruy.send_video(chat_id, "FILEID")

Sticker Gönderme : 

# sendSticker
sti = open('/tmp/sti.webp', 'rb') // Stickerı okutun 
cuktruy.send_sticker(chat_id, sti)
cuktruy.send_sticker(chat_id, "FILEID")

Konum Gönderme :

cuktruy.send_location(chat_id, lat, lon)

SES Gönderme :

audio = open('/tmp/audio.mp3', 'rb')
cuktruy.send_audio(chat_id, audio)
cuktruy.send_audio(chat_id, "FILEID")

Mesaj kategorisi algılama

if message.chat.type == "private":
	# private chat message

if message.chat.type == "group":
	# group chat message

if message.chat.type == "supergroup":
	# supergroup chat message

if message.chat.type == "channel":
	# channel message

Gelen istekleri devamlı dinle

def listener(messages):
for m in messages:
str(m)

cuktruy.set_update_listener(listener)
cuktruy.polling()

 

 API Kütüphanesi

Destek al / Soru sor

Telegram Kanalına Katıl

Bir Cevap Yazın

Scroll to top