ඔයාටම කියල Telegram Bot කෙනෙක් තනියම නිර්මාණය කරන්නේ කොහොමද?

· 2 min read
ඔයාටම කියල Telegram Bot කෙනෙක් තනියම නිර්මාණය කරන්නේ කොහොමද?

පෙරවදන

කාලෙකට පස්සෙ, මම මේ කරන්නෙ මගේ ප්‍රියතම විනෝදාංශ, IT සම්බන්ධ දේ ගැන ලියන එක. බොහොම කාර්යබහුල කාලයක් ගෙවිලා ගියා. ඒ අතර සෑහෙන විශේෂ සිදුවීම් ගොඩක් වුණා. ඒ අතර, IT වලින්ම ජීවිතේ පටන්ගත්ත තවත් කෙනෙක්, Elon Musk, ලෝකෙ ලොකුම ධනවතා බවටත් පත් වුණා. මෑතකදි විශාල කතාබහකට ලක් වුණ WhatsApp හි පෞද්ගලිකත්වය සම්බන්ධ ප්‍රශ්ණය, Elon Musk නිසා ලෝකෙ පුරාම අවධානය දිනාගන්න සමත් වුණා.

මං හිතන්නෙ දැනටමත් ඒ දේවල් ගැන ඔයා දැණුවත් වෙලා ඇති. අපි මීට සෑහෙන කාලෙකට කලින් WhatsApp විතරක් නෙවෙයි, එකම සමාඟමට අයිති Facebook, Instagram වගේ සේවාවන් වල තියෙන අනතුර ගැන ලිපි විශාල ප්‍රමාණයක් ලිව්වා, ඒ ලිපි කියවපු අපේ පරණ පාඨකයන්ට නම්, මේ අලුතින් කතාවෙන පෞද්ගලිකත්වය සම්බන්ධ ගැටළු අලුත් දේවල් නෙවෙයි.

ඒ කතාබහ එක්ක කරලියට ආව Signal, Telegram වගේ විකල්ප දැඩි ලෙස ජනප්‍රිය වුණේ, අතුරුඵලයක් විදියට. Signal සමාඟමේ සර්වර් ඩවුන් වෙන තරමටම සහ Telegram වෙත අලුත් පරිශීලකයන් මිලියන 100ක් පමණ එකතු වෙන්න මේ දේවල් බලපෑවා. අන්තර්ජාලය තුළ පෞද්ගලිකත්වය ගැන සෑහෙන්න අවධානයෙන් ඉන්න කෙනෙක් විදියට මට මේ දේවල් ගැන ලොකු සතුටක් තියෙනවා. ඒ අතරෙ අලුත් වුණ Telegram ගැන කතා බහ, තවත් ටිකක් ඉස්සරහට අරන් යන්නයි මේ සූදානම.

Telegram Bot Platform

Telegram කියන්නෙ WhatsApp වලට වඩා ගව් ගණනක් ඉස්සරහින් ඉන්න Instant Messaging සේවාවක්. Telegram සේවාව හොඳින් දන්න කෙනෙක්ට ඒ ගැන අමුතුවෙන් කියන්න අවශ්‍ය නෑ. අපි Telegram ගැන විස්තරාත්මක ලිපි මීට කලින් පාඨක ඔබට අරගෙන ආවා. මේ තියෙන්නෙ එහෙම එකක්.

මොකක්ද මේ Telegram app එක
Telegram [https://telegram.org/] කියන්නේ දැනට තියෙන හොදම සහ security පැත්තෙන්ඉහලම app එකක් කියලා කියන්න පුළුවන් ඒ වගේම මේක දැනට අපි යුස් කරන WhatsApp,Messenger වගේ apps වලට වඩා ගොඩක් ෆීචර්ස් දෙනවා. ඉතින් අපි බලමු මේ Telegram එකෙන්අපිට තියෙන වාසි මොනවද කියලා. Cloud-Basedඅපිට Whatsapp ,Massenger …

Telegram Bot Platform එක කියන්නෙ මොකක්ද කියලා ගොඩක් අය දැනටමත් දන්නවා ඇති. නොදන්න අයට මම සරලව කියලා දෙන්නම් ඒ මොකක්ද කියලා. ඔයා Telegram පාවිච්චි කරන කෙනෙක් නම්, ඔයා දැකලා ඇති සමහර Groups, Channels වලට ඔයා එකතු වුණාම Human Verification, එතකොට Welcome මැසේජස් වගේ දේවල් එකපාරට එනවා. ඒවා කවුරුත් එවන ඒවා නෙවෙයි. ස්වයංක්‍රීයව ඔයාට ඒවා එවන්නෙ Telegram Bot ලා.

Telegram Bot කෙනෙක් කියන්නෙ පරිගණක ක්‍රමලේඛයක් අනුව වැඩ කරන පුංචි රොබෝ කෙනෙක් වගේ කෙනෙක්ට. එයාට කියලා පුළුවන් ස්වයංක්‍රීයව වෙන්න ඕන දේවල් කරවගන්න. ඒ වගේම, ඊට වඩා බොහොමයක් දේවල් කරන්න මෙයාලට පුළුවන්. උදාහරණයක් විදියට, Torrent file පවා Telegram හරහා බාගත කිරීමේ හැකියාව මේ Bot ලා ඔයාට ලබා දෙනවා. විවිධ කාර්යයන් කරන්න ක්‍රමලේඛ කරපු Telegram Bots ලා විශාල ප්‍රමාණයක් Telegram platform එක හරහා ක්‍රියාත්මක වෙනවා.

එතකොට, අද අපි හදන්න යන්නෙ අපේම Telegram Bot කෙනෙක්. මරු වැඩක් නේද? ඔව්! ඇත්තටම අපි හදන්නෙ බොහොම සරල Bot කෙනෙක්. ඒත් එතනින් එහාට ඔයාගෙ ආසාවෙ ප්‍රමාණය මත ඔයාට පුළුවන් දියුණු Bot කෙනෙක් දක්වා මෙයාව දියුණු කරන්න. එහෙනම්, අපි සූදානම් වෙමු Telegram Bot කෙනෙක්ට ජීවය දෙන්න.

මූලික පියවර

මේ Tutorial එක සාර්ථක වෙන්න නම්, ඔයාට Python ගැන මූලික අවබෝධයක් තියෙන්න ඕන. ඒ වගේම CLI එකක, එහෙමත් නැත්නම් Command Line Interface එකක වැඩ කිරීමේ පොඩි හුරුවක් තියෙන්න ඕන. ඔයා Windows පාවිච්චි කරන කෙනෙක් නම්, PowerShell කියන්නෙ මොකක්ද කියන එක ගැන දැනගන්න ඕන සහ ඒක එක්ක වැඩ කරලා හුරුවක් තියෙන්න ඕන. ඒ දේවල් ඔයාට ඇති කියලා මම පූර්ව නිගමනයකට ඇවිල්ලා තමයි මම මේ කතාව පටන්ගන්නෙ.

මුලින්ම, Telegram App එක විවෘත කරගෙන, මෙන්න මේ username එක Search කරන්න.

@BotFather

මෙයත් Bot කෙනෙක්, හැබැයි මෙයා තමයි Bot ලගෙ තාත්තා. එහෙම කියන්නෙ, අපිට මෙයා තමයි අලුත් Bot කෙනෙක් බිහි කරන්නෙ.

මෙයා Search කරලා හොයාගත්තට පස්සෙ, Start බොත්තම ඔබලා පුළුවන් Chat කිරීම ආරම්භ කරන්න. සාමාන්‍ය Chat එකක් වගේම, මේකෙත් පුළුවන් Chat කරන්න. හැබැයි, විශේෂ විධාන දෙන්නත් ඔයාට මේ Chat එක හරහා පුළුවන්.

මුලින්ම කරන්න ඕන, /newbot කියන විධානය Bot Father ට ලබා දෙන එක. ඒ විධානය මඟින් පුළුවන් ඔයාට ඔයාගෙම Bot කෙනෙක් නිර්මාණය කිරීම ආරම්භ කරන්න.

දැන් ඔයා ඔයාගෙ බොට් ට නමක් තෝරන්න ඕන. මම නම විදියට තෝරගන්නෙ,

Android Wedakarayo Test Bot

කියන නම. ඒ නම Bot Father ට යැව්වම ඊළඟට එයා ඔයාට කියයි ඔයාගෙ අලුත් Bot ට username එකක් තෝරන්න කියලා. කොන්දේසිය තමයි, ඒ නම ඉවර වෙන්න ඕන bot කියන අකුරු තුනෙන්. මම AndroidWedakarayoTestBot කියන එකම මැද හිස් තැන් නැතිව තේරුවා. නියමිත විදියට username එකක් තේරුවා නම්, ඔයා දැනටමත් ඔයාගෙ Bot ව හදලා ඉවරයි.

මෙතනදි ඔයාට ලබා දෙන Token එක නම් ඉතාම වැදගත්. ඔයාගෙ Bot ට ජීවය දෙන්න නම් මේ Token එක බොහොම වැදගත් වෙනවා. අනික් කාරණාව, මේ Token එක රහසක් විදියට තියාගන්න, මොකද මේ Token එක තියෙන ඕනම කෙනෙක්ට පුළුවන් ඔයාගෙ Bot ව එයාට ඕන විදියට පාලනය කරන්න!

දැන් ගොඩක් වැඩ ඉවරයි, හැබැයි පොඩි අඩුවක් තියෙනවා. මේ හදලා ඉවර වුණේ Bot ගෙ මූලික අංග විතරයි. ඔයාට මේ බොට් ට Description එකක් දාන්න, ප්‍රොෆයිල් පින්තූරයක් ඇතුළත් කරන්න, වගේම බොට් ප්‍රතිචාර දක්වන විධාන ඇතුළත් කරන්න වගේ පොඩි පොඩි දේවල් ටික ඊළඟට කරන්න ඕන. ඒ ටික ඔයාට Bot Father ගෙ උදව්වෙන් ලේසියෙන් කරගන්න පුළුවන්. ඒ ගැන මම මෙතන ලියන්න මහන්සි වෙන්නෙ නෑ. අමාරු කොටස තමයි මේ Bot ට ජීවය දෙන එක. ඒක කරන්නෙ කොහොමද කියලා තමයි මම ඔයාට කියලා දෙන්න යන්නෙ.

Bot ට ජීවය දෙමු!

මෙච්චර වෙලා ඔයා වැඩ කළේ Phone එකත් එක්කනෙ? අපි දැන් යමු ඔයාගෙ පරිගණකය පැත්තට. ඒකෙ තියෙන්නෙ මොන OS එක වුණත්, මේ දේවල් ටික ඔයා කරන්න ඕන. මම මේ දේවල් කළේ Linux එක්ක. නමුත් Windows වල කරන විදියත් මම ඔයාට කියන්නම්.

ඔයාට මේ Bot ට ජීවය දෙන්න අවශ්‍ය වෙනවා Python ක්‍රමලේඛ භාෂාවෙන් ලිව්ව පොඩි Script එකක්. මේකට මූලික Python දැණුම ටිකක් අවශ්‍යයි. පහසුවෙන් Python ඉගෙනගන්න පුළුවන් Tutorials ඉන්ටනෙට් එකේ ගොඩක් තියෙනවා. කැමති විදියකින් ඔයාගෙ මූලික Python දැණුම වර්ධනය කරගැනීම ඔබට බාරයි.

ඔයා Linux භාවිතා කරන කෙනෙක් නම්, ඔයා ඉන්ස්ටෝල් කරගන්න ඕන Python 3 ඔයාගෙ පරිගණකයට, ගොඩක් Linux distro වල අලුතින් Install කරන්න දෙයක් නෑ, Python දාලම තමයි එවන්නෙ. ඊළඟට ඔයා ඉන්ස්ටෝල් කරන්න ඕන pip3 කියන Python පැකේජ් මැනේජර් එක. ඒවා ඉන්ස්ටෝල් කරන හැටි මම අලුතින් කියලා දෙන්නෑ, මොකද ඔයා Linux user කෙනෙක් නම් ඒක කරගන්න ඔයා දන්නවා.

ඊට පස්සෙ, pyTelegramBotAPI කියන API Library එක ඉන්ස්ටෝල් කරගන්න ඕන pip3 හරහා. මේ වගේ Libraries තව සෑහෙන්න තියෙනවා. Telethon කියන්නෙ තවත් හොඳ උදාහරණයක් (Wrapper එකක්.). තවත් එකක් තමයි python-telegram-bot කියන්නෙ. මම මෙතනදි තෝරගත්තෙ pyTelegramBotAPI කියන එක. pyTelegramBotAPI ඉන්ස්ටෝල් කරගන්න මෙන්න මේ කමාන්ඩ් එක භාවිතා කරන්න.

pip3 install pyTelegramBotAPI

ඊළඟට අපි හැරෙමු Windows පැත්තට. Windows වලදි ඔයාට පුළුවන් Installer එක ඩවුන්ලෝඩ් කරගෙන ස්ථාපනය කරගන්න. නැත්නම් පුළුවන් Microsoft Store එකේ Python කියලා Search කරලා Store එක හරහා ස්ථාපනය කරගන්න. Pip කියන package manager එක සාමාන්‍යයෙන් Windows වලදි Python ඉන්ස්ටෝල් කරනකොටම ඉන්ස්ටෝල් වෙනවා.

අපි Python කේත run කරවන්නෙ CLI environment එකක නිසා ඔයා Windows PowerShell එක ඕපන් කරගන්න ඕන. Windows එකේ Search එකක් දාන්න එතකොට හොයාගන්න පුළුවන්. PowerShell එකේ Python --version කියලා ලියලා Enter එබුවම. Python version එක පෙන්වනවා නම් ඔයා නිසි ආකාරව Python ඉන්ස්ටෝල් කරගෙනයි තියෙන්නෙ. pip --version කියන කමාන්ඩ් එක එන්ටර් කළාම pip වර්ෂන් එක පෙන්වනවා නම් ඔයා pip package manager එකත් නිසි ආකාරව ඉන්ස්ටෝල් කරගෙන අවසන්. ඊළඟට තියෙන්නෙ, PowerShell එකේ

pip install pyTelegramBotAPI

කියන විධානය ලියලා Enter ඔබන්න. සාර්ථකව අදාළ Package එක install වුණා නම්, ඊළඟට ඔයාට පුළුවන් Script එක ලියන වැඩේට බහින්න.

දැන් Linux සහ Windows දෙපාර්ශවයම යමු Script එක ලියන වැඩේට.

ඔයාට හුරු පුරුදු ඕනම Text editor එකක් භාවිතයෙන් ඔයාට කැමති නමකින් හදපු python file එකක් ඕපන් කරගන්න. මම, main.py කියන නම සහ py කියන python extension එක පාවිච්චි කරලා ෆයිල් එකක් හදනවා. ඊට පස්සෙ ඒක ඔයාගෙ ප්‍රියතම text editor එකෙන් විවෘත කරගන්න. එහෙනම් අපි දැන් Coding පටන්ගමු! හැබැයි ඊට කලින් කියන්න ඕන, අපි මේ ලියන Script එක වැඩ කරන්න නම් ඔයාට අන්තර්ජාල සබඳතාව සහිත පරිගණකයක් ඕන වෙනවා.

මුල්ම කේත පේළිය වෙන්නෙ import telebot කියන එක. ඒකෙන් අපි ටිකකට කලින් pip හරහා බාගත කරගත්ත package එක භාවිතා කරන්න යන බව කියැවෙනවා. ඊළඟට,

bot = telebot.TeleBot("TOKEN")

කියන කේත පේළිය ලියවෙන්න ඕන. මේක ඉතාම වැදගත්, මොකද මෙතනින් තමයි අපේ bot ට ලියන Script එක අදාළ bot වෙත සම්බන්ධ කරන්නෙ. මෙතන මේ TOKEN කියන වචනය වෙනුවට ඔයා මුලින් Bot father ගෙන් ලබාගත්ත Token එක ඇතුළත් කරන්න ඕන.

ඒක ටිකක් දීර්ඝ නිසා, Python Web හරි, Desktop ඇප් එක හරි භාවිතයෙන් Telegram ඇප් එක ඔයාගෙ පරිගණකයේ විවෘත කරගෙන කොපි කරලා පේස්ට් කරගන්න. එතකොට වැඩේ ලේසියි.

ඊළඟට ඇතුළත් කරන්න යන්නෙ බොහොම මූලික වැඩක් කරන කේත පේළි තුනක්.

@bot.message_handler(commands=['start', 'help'])

def send_welcome(message):

bot.reply_to(message, "Hello! I'm Android Wedakarayo Test Bot. How can I help you?")

මේකෙන්, bot ට ලබාදෙන /start හෝ /help කියන විධාන වලට Bot පිළිතුරු ලබාදීම කරන්න program වෙනවා. මේකෙන් Bot පිළිතුරු ලබාදෙන්නේ reply එකක් විදියට.

අපි තවත් ඒ වගේ කේත පේළි තුනක් ගනිමු. මෙන්න මේ කේත පේළි තුනෙන් user විසින් bot ට /test කියලා යවන විධානයට bot විසින් reply එකක් ආකාරයට පිළිතුරු දීම සිදු කරනවා.

@bot.message_handler(commands=['test'])

def start_message(message):  

bot.reply_to(message, "It's working!")

අන්තිමේ එන්න ඕන,

bot.polling()

කියන කේතය. ඒකෙන් කියවෙන්නෙ Bot ට ලැබෙන request වලට ප්‍රතිචාර දීම අරඹන්න කියන එකයි.

හරි එහෙනම් අපි බලමු අපේ අවසාන කෝඩ් එක එන්න ඕන කොහොමද කියලා. (Tab spaces අමතක කරන්න එපා, මේ Python!)

ඔන්න ඕක තමයි අපේ අතිශය සරල ස්ක්‍රිප්ට් එක. ඔයාගෙ අන්තර්ජාල සබඳතාවය සහිත පරිගණකයෙන්, Terminal එක හෝ PowerShell එක හරහා

python3 main.py

කියන විධානය run කරවන්න. main.py කියන්නෙ මම කලින් දුන්න script එකේ file name එක.

ඒ වගේම, මතක තියාගන්න ඔයා ඔයාගෙ script එක run කරවන්න මේ විධානය දෙන්න නම් ඔයා ඒ ෆයිල් එක හැදුව directory එකේ නැත්නම් folder එක මත Terminal එක නැත්නම් PowerShell එක විවෘත කරගෙන ඉන්න ඕන. එහෙම නැත්නම් File path එකම ලබාදීම සිදු කරන්න වෙනවා.

ඔයා මේ විධානය ඇතුළත් කළාම, නිවැරැදිව කෝඩින් එක කළා නම්, cursor එක නැවතිලා script එක විසින් user කෙනෙක් ගෙන් එන request එකක් බලාපොරොත්තු වෙමින් සිටීම ආරම්භ කරාවි. ඒකට එහෙම run වෙන්න දීලා, අපි දැන් යමු Telegram එක පැත්තට.

ඔයා Bot ට ලබාදුන්න username එකේ සෙවුමක් යොදලා ඔයාට පුළුවන් ඔයාගෙ bot ව හොයාගන්න. ඊළඟට ඔයාට පුළුවන් එයාට /start විධානය ලබාදෙන්න. ඔයා හරියට වැඩ ටික කළා නම්, මෙන්න මේ වගේ ප්‍රතිචාරයක් ඔයාගෙ bot දක්වාවි.

ඊළඟට, ඔයාට පුළුවන් /test කියන විධානයට bot ප්‍රතිචාර දක්වනවද කියලා පරීක්ෂා කරලා බලන්න.

හොඳයි මං හිතන්නෙ අපි බොහොම සරලව ඉගෙනගත්තා Telegram බොට් කෙනෙක්ට ජීවය ලබාදෙන හැටි.

ඔයාට දැන් ලොකු ප්‍රශ්ණයක් එයි දැන් මෙහෙම මේ ෆයිල් එක හැමදාම මගේ පරිගණකයේ රන් කරවලා තියන්න බෑ නේද කියලා. ඔව්, අපි ඉගෙනගන්න මේක මෙහෙම කළාට, 24 පැයේම සේවාවන් සපයන bot කෙනෙක් හදන්න නම් ඔයාට වෙනවා VPS එකක මේ script එක run කරවලා තියන්න. එහෙමත් නැත්නම් පුළුවන් Heroku වගේ platform එකක් භාවිතා කරන්න. නැත්නම් ඔයාගෙ පරිගණකය කවදාවත් off නොකර තියාගන්න පුළුවන්. 😁

මේ පහළින් මම දෙන Link එක පරිශීලනය කළොත් ඔයාට පුළුවන් තවත් ගොඩක් දේ ඉගෙනගන්න. ඒ වගේම Telethon වගේ wrapper එකක් භාවිතා කරලා ඔයාට තවත් බොහෝ දේ කරන්න පුළුවන්. මූලික මඟපෙන්වීම මම ඔන්න ඔයාලට ලබාදුන්නා. Telegram Bot කෙනෙක් හදන විදිය ගැන ඔයා දන්න දේවලුත් අපිට පහළින් කමෙන්ට් කරන්න. ඒක අපි හැමෝටම ප්‍රයෝජනවත් වේවි. ඒ වගේම, මේ ලිපියේ තියෙන අඩුපාඩු, එකතු කළ යුතු දේ වගේ දේවලුත් මම බොහොම කැමැත්තෙන් පිළිගන්න සූදානම්. එහෙනම්,  අපි නැවත හමු වෙමු!

Source - https://pypi.org/project/pyTelegramBotAPI/