Telegram bot necə yazılır?

GİRİŞ

Botlar bugün həm iş, həm də əyləncə üçün çoxfunksiyalı bir vasitədir. Şəxsən mən gələcəkdə həyatımızda botların iştirakının çox olacağına inanıram. Əlbəttə ki bu yazını oxuduqdan sonra birbaşa böyük layihələr yarada bilməyəcəksiniz, ancaq əsas məqsədim sizdə bu sahəyə maraq oyatmaq və başlamaq üçün kiçik məlumat verməkdir. Bu məqalədə Python dilindən istifadə edərək Telegram bot yazmaq barədə danışacağıq.

TƏNZİMLƏMƏLƏR

Başlamaq üçün  öncə Python-un özünü yükləyək. Python-un rəsmi veb saytında quraşdırma faylını əldə edə bilərsiniz. Proqram dilini quraşdırarkən PATH əlavə etməyi unutmayın! Python-u qurduqdan sonra yaxşı bir kod redaktoruna ehtiyacımız var. Sizə JetBrains-in IntelliJ IDEA kod redaktorundan istifadə etməyi məsləhət görürəm. Siz yenə də öz istədiyiniz redaktordan istifadə edə bilərsiniz.

Proqram dili və kod redaktorunu quraşdırdıqdan sonra ilk kod sətirlərimizi yazmağa çox az qalır!  Windows-un terminalını (CMD) açaraq orada aşağıdakı əmri daxil edirik:

pip install pytelegrambotapi

Bu, bizə Python-da Telegram ilə işləmək üçün nəzərdə tutulmuş “telebot” kitabxanasından istifadə etməyə imkan yaradacaq. Əlavə olaraq, özünüz Python kitabxanaları barədə mütaliə etsəniz əla olar!

Yuxarıda qeyd etdiyimiz addımları uğurla yerinə yetirmisinizsə, artıq başlaya bilərik! Əks halda, Google köməyiniz olsun 🙂

Bot Father

Telegram-ın axtarışında “Bot Father”-i tapırıq və “newbot” əmrini istifadə edərək bot yaradırıq. Daha sonra botun adını və istifadəçi adını daxil edirik. Unutmayın ki, yaratdığınız istifadəçi adı “bot” sözü ilə bitməlidir!

Gördüyünüz kimi, “Bot Father” bizə botumuzu idarə edə biləcəyimiz xüsusi bir “APİ Token” verdi. (Bizim token:1030164983:AAFu617H_ pjHMRnBZ8YrJZvocvqIyOXL4KM). Bu tokeni unutmamaq üçün bir yerdə qeyd etməyiniz yaxşı olar. İşdir birdən tokeni itirsəniz, Bot Father yenisini əldə etməyə yardımçı olacaq. Bu zaman ilk əldə etdiyiniz token artıq qüvvədən düşür.

Kodlaşdırma

Nəhayət ki hamımızın gözlədiyi an çatdı 🙂 IntelliJ IDEA-nı açıb yeni layihə yaradırıq.

Qeyd: Əgər siz ilk dəfə kod redaktorundan istifadə edirsinizsə, çox güman, kod redaktorunuz Python-a uyğun tənzimlənməyib. Bu proses çətin olmadığından məqaləyə əlavə etmirik. Daha əvvəl dediyim kimi, Google köməyiniz olsun :).

Layihəni yaratdıqdan sonra kodumuzun olacağı bir fayl yaradaq. Layihənizin adı yazılan qovluğun üzərində sağ düymə ilə vurun, sonra Yeni → Python File seçin.

Artıq kod yazmağa başlayaq. Telebot kitabxanasını əlavə etmək üçün kodun ilk sətrində yazırıq:

import telebot

Növbəti addımda “bot” və “token” dəyişənlərini yaratmalıyıq. Əslində dəyişənlərin adlarını istədiyiniz kimi təyin edə bilərsiniz. Sadəcə bu tip adlandırmadan  istifadə etməyiniz kodunuzu daha oxunaqlı edir. Daha sonra “token” dəyişəninin daxilinə Bot Father-dən aldığımız APİ tokeni qeyd edirik.

token = ‘1030164983:AAFu617H_pjHMRnBZ8YrJZvocvqIyOXL4KM’

bot = telebot.TeleBot(token)

Botumuzun əmrlərə cavab verə bilməsi üçün

@bot.message_handler()

dekoratorundan istifadə etməliyik. Dekorator daxilinə istədiyimiz əmri daxil etməliyik commands=[‘start’]. Nəticədə aşağıdakı formada bir kod sətri əldə etməliyik:

@bot.message_handler(commands=[‘start’])

Botunuzu işə salmağa cəhd etsəniz (RMB-> Run), heç nəyin baş vermədiyini görəcəksiniz. Buna görə də əvvəlcə kodun sonunda

bot.polling()

yazmalıyıq.

Bu, botun dərhal sönməməsi üçün lazımdır. İndiki halda bot serverdə yeni bir mesajın olub olmadığını yoxlayır.

Hələ ki botumuz mesajları yoxlasa da, heç bir şeyə cavab verə bilmir. Bunu düzəltməyin vaxtı gəldi! Dekoratorumuzdan sonra “message” parametrini alacaq,

start_message

funksiyasını (funksiyanın adı sizə uyğun dəyişdirilə bilər) yaradırıq. İndi isə botun özündən mesaj göndərmək funksiyasını həyata keçirək. Funksiyada

bot.send_message

yazırıq (message.chat.id, ‘Salam!’). Sizdə aşağıdakı kimi kod alınmalıdır:

import telebot

token = ‘1030164983:AAFu617H_pjHMRnBZ8YrJZvocvqIyOXL4KM’
bot = telebot.TeleBot(token)

@bot.message_handler(commands=[‘start’])
def start_message(message):
bot.send_message(message.chat.id, ‘Salam!’)

bot.polling()

Kodu işə salıb botu yoxlayaq..

Əla, botumuz işləyir! Ancaq indi bot yalnız “start” komandasına cavab verə bilir. Biz istəyirik ki, botumuz bütün mətn tərkibli mesajlara da cavab verə bilsin. Bunun üçün yeni dekorator yaradırıq və dekoratorun cavab verəcəyi mesaj tipini daxil edirik.

@bot.message_handler(content_types=[‘text’])

Ümumiyyətlə, mesaj məzmununun bir çox növü var, məsələn, yer, foto, audio, stiker və s. Ancaq biz hazırda mətnə cavab verməliyik, elə deyilmi? Buna görə mesaj parametrini alan növbəti funksiyanı yaradırıq:

@bot.message_handler(content_types=[‘text’])def send_text(message):

if message.text == ‘Salam’:

bot.send_message(message.chat.id, ‘Salam, Dost!’)

elif message.text == ‘Sağol’:

bot.send_message(message.chat.id, ‘Salamat qal, Dost!’)

Artıq botumuz ayrı-ayrı açar sözlərə uyğun funksiyanı yerinə yetirə bilir! Sadəcə kiçik bir problem var. Bot yalnız ona “Salam” və ya “Sağol” yazılsa cavab verəcək. Digər hallarda heç nə baş verməyəcək. Bu problemi aradan qaldırmaq üçün açar sözləri kiçik hərflər ilə yazırıq və seçim daxilində olan message.text obyektinə lower() funskiyasını əlavə edirik.

Botumuzu daha maraqlı etmək üçün insanlara onların Telegram-da qeyd etdikləri ad ilə cavab verək. Bunun üçün göndərilən sözdən sonra message.chat.first_name obyektini əlavə edirik. Bu obyekt bota yazan şəxsin adını yönləndirir. Nəticədə aldığımız koda baxaq:

import telebot

token = ‘1030164983:AAFu617H_pjHMRnBZ8YrJZvocvqIyOXL4KM’

bot = telebot.TeleBot(token)

@bot.message_handler(commands=[‘start’])

def start_message(message):

bot.send_message(message.chat.id, ‘Xoş gördük!’)

@bot.message_handler(content_types=[‘text’])

def send_text(message):

if message.text.lower() == ‘salam’:

bot.send_message(message.chat.id, ‘Salam  ‘ + message.chat.first_name + ‘!’)

elif message.text.lower() == ‘sağol’:

bot.send_message(message.chat.id, ‘Salamat qal  ‘ + message.chat.first_name + ‘!’)

bot.polling()

Son əlavələr etdiyimiz kodu işə salıb yoxlayaq!

Əla, bot artıq tam istədiyimiz kimi işləyir! Əlbəttə ki burada sizə Telegram-dakı botların bütün funksiyalarını yox, əsas xüsusiyyətlərini göstərdim. Əgər bu sizə maraqlı gəldisə, bu mövzuda yeni bir məqalə hazırlayarıq!

 

https://www.kibrit.tech/az/blog/creating-telegram-bot

 

Fortinet внедряет более 350 новых функций в Security Fabric Platform
Epic Games Store бесплатно раздает GoNNER и Offworld Trading Company