Telegram Bot

Node-Red ile Telegram Bot Oluşturma

Herkese merhaba. Hepimiz boş vaktimizi değerlendirmek için çeşitli aktiviteler yaparız. Ben de vaktimi Node-Red ile çalışmaya başladığımdan beri karşıma çıkan eğlenceli uygulamalarla değerlendiriyorum. Muhtemelen hepimiz neredeyse bütün uygulamalarda karşılaştığımız Bot sanal kişileri ile mesajlaşmışızdır. Peki bunların nasıl kontrol edildiğini hiç düşündünüz mü? Ben düşündüm ve kendi Bot’umu yapmaya karar verdim. Bunun için Node-Red’in chatbot modüllerini kullandım. Node-Red’i ilk çalıştırdığımızda Module Palette’te standart modüller bulunuyor. Spesific bir arama ile kullanmak istediği Telegram botunu palete eklemek istiyorum. Bunun için;


Palette sekmesinden telegram bot modülünü indirdim:

node-red-contrib-telegrambot

İndirme tamamlandıktan sonra Palette Menusünde Telegram modülünün eklenmiş olduğunu göreceğiz.


Telegram modülünü indirdikten sonra elimizdeki standart modüller ile kendi akışımızı oluşturmaya başlayabiliriz. İlk olarak Inject modülü ile başlıyoruz. Akış şemasında programa komutları iletmek için ilk olarak Inject kullanılır. Daha sonra işlemi yazdığımız Function modülünü en sonda da ilettiğimiz mesajı Telegram adresine Submiten Telegram Sender modülünü kullanacağız.


Inject modülünün içeriğinde herhangi bir değişiklik yapmamıza gerek yok. Function’da ise edinmemiz gereken bazı bilgiler olacak. Aşağıda gösterdiğim şekilde Chat Id alıp kodumuzu ilgili yere yerleştirelim.


msg.payload = {}
msg.payload.chatId = xxxxxxxxx
msg.payload.type = 'message'
msg.payload.content = 'Merhaba, benim adım Seher!'
return msg;

Burada Chat Id bulmak için Telegramın kendi Bot’u olan UserInfoBot’dan User Id aldım:


Function’un içini doldurduktan sonra sıra Telegram Sender modülünde. Modülün içine girerek gerekli yerleri dolduracağız. Bir bot ismi girerek düzenle diyelim.


Düzenle dediğimizde karşımıza doldurmak zorunda olduğumuz Bot-Name ve Token alanları çıkacak.


Bu alanları doldurabilmek için yine Telegramın kendi Bot’u BotFather’dan Token amam lazım. Token alabilmek içinde bir Bot oluşturmam lazım. Uygulamam için bir test_bot oluşturuyorum ve oluşturduğum Bot’a ait Token’i alıyorum. Bunun için gerekli komutlar aşağıdaki gibidir:


Bütün gerekli alanları doldurduktan sonra uygulamamızı çalıştırabiliriz. Öncelikle yukarıda oluşturduğum test_bot’u buluyorum ve /start komutunu yazıyorum. Sonra Inject modülü ile uygulamayı başlatıyorum. Her buton eventimde fonksiyonda yazdığım mesaj test_bot’a iletilecek.


Aşağıda gördüğünüz gibi bir sonuç elde ettim. Bu tabi ki kompleks bir bot oluşturmanın ilk adımıydı. Bundan sonraki adımları daha geniş fonksiyonlar ile geliştirebiliriz. Ben bu şekilde başladım, devamı sonra 😊


← Bloglara geri dön