මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

මම තොරතුරු තාක්‍ෂණ ලෝකයේ ගිලෙන්න පටන් ගත්තේ සති තුනකට කලින්. බරපතල ලෙස, සති තුනකට පෙර මට HTML වාක්‍ය ඛණ්ඩය පවා නොතේරුණු අතර, ක්‍රමලේඛන භාෂා පිළිබඳ මගේ හැඳින්වීම වසර 10 කට පෙර පැස්කල් පිළිබඳ පාසල් විෂය මාලාවකින් අවසන් විය. කොහොම වුනත් මම IT කෑම්ප් එකකට යන්න තීරණය කළා, එතන ළමයින්ට bot එකක් හදලා දුන්නොත් හොඳයි කියලා. එය එතරම් අපහසු නොවන බව මම තීරණය කළෙමි.

මෙය දිගු ගමනක් ආරම්භ කළ අතර මම:

  • උබුන්ටු සමඟ වලාකුළු සේවාදායකයක් යොදවා ඇත,
  • GitHub හි ලියාපදිංචි,
  • මූලික ජාවාස්ක්‍රිප්ට් සින්ටැක්ස් ඉගෙන ගත්තා,
  • ඉංග්‍රීසි සහ රුසියානු භාෂාවෙන් ලිපි ටොන් ගණනක් කියවන්න,
  • අන්තිමට බොට් එකක් හැදුවා,
  • මම අන්තිමට මේ ලිපිය ලිව්වා.

අවසාන ප්‍රතිඵලය මේ වගේ දෙයක් පෙනුනා.

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

මෙය ආරම්භකයින් සඳහා වන ලිපියක් බව මම වහාම කියමි - මුල සිටම මූලික දේවල් කරන්නේ කෙසේද යන්න තේරුම් ගැනීමට.

තවද - උසස් ක්‍රමලේඛකයින් සඳහා - ඔවුන් ටිකක් සිනාසීමට පමණි.

1. JS හි කේතය ලියන්නේ කෙසේද?

අවම වශයෙන් භාෂාවේ වාක්‍ය ඛණ්ඩය මුලින්ම තේරුම් ගැනීම වටී බව මට වැටහුණි. තේරීම ජාවාස්ක්‍රිප්ට් මත වැටුණේ, මට මීළඟ පියවර වූයේ ReactNative හි යෙදුමක් නිර්මාණය කිරීම නිසාය. මම පටන් ගත්තා පාඨමාලාව Codecademy හි සහ ඉතා සතුටට පත් විය. පළමු දින 7 නොමිලේ. සැබෑ ව්යාපෘති. මම නිර්දේශ කරන්නේ. එය සම්පූර්ණ කිරීමට පැය 25 ක් පමණ ගත විය. ඇත්ත වශයෙන්ම, එය සියල්ලම ප්රයෝජනවත් නොවේ. පාඨමාලාවේ ව්යුහය පෙනෙන්නේ මෙයයි සහ පළමු කොටස විස්තරාත්මකව.

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

2. බොට් එකක් ලියාපදිංචි කරන්නේ කෙසේද?

මේක මට මුලදි ගොඩක් උදව් කළා මෙම ලිපිය එක්තරා Archakov ගේ බ්ලොග් අඩවියෙන්. ඔහු ආරම්භයේදීම හපනවා. නමුත් එහි ඇති ප්රධානතම දෙය වන්නේ බොට් ලියාපදිංචි කිරීම සඳහා උපදෙස් වේ. මට එය වඩා හොඳින් ලිවිය නොහැක, මෙය පහසුම කොටස බැවින්, මම සාරාංශය ලියන්නෙමි. ඔබ බොට් එකක් සාදා එහි API ලබා ගත යුතුය. මෙය සිදු කරනු ලබන්නේ වෙනත් බොට් - @BotFather හරහා ය. විදුලි පණිවුඩයෙන් ඔහුව සොයා ගන්න, ඔහුට ලියන්න, සරල මාර්ගය අනුගමනය කර API යතුරක් ලබා ගන්න (සුරකින්න!) (මෙය අංක සහ අකුරු කට්ටලයකි). එය පසුව ප්‍රයෝජනවත් විය.

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

3. බොට් කේතය පෙනෙන්නේ කෙසේද?

දිගු කලක් ලිපි අධ්‍යයනය කිරීමෙන් පසුව, ටෙලිග්‍රාම් API අධ්‍යයනය කිරීම සහ මුල සිටම විශාල කේත කැබලි නිර්මාණය කිරීම ගැන කරදර විය යුතු නැති නිසා යම් පුස්තකාලයක් (මොඩියුලයේ තුන්වන පාර්ශවීය කේතය) භාවිතා කිරීම වටී යැයි මට වැටහුණි. මම රාමුව සොයාගත්තා විදුලි පණිවුඩය, npm හෝ නූල් භාවිතයෙන් යම් දෙයකට කෙසේ හෝ සම්බන්ධ කිරීමට අවශ්‍ය විය. බොට් එකක යෙදවීම සමන්විත වන්නේ කුමක් දැයි එවිට මම දළ වශයෙන් තේරුම් ගත් ආකාරය මෙයයි. මෙතන හිනා වෙන්න. මම අමනාප නොවන්නෙමි. පසුකාලීනව බොට් නිර්මාණය කිරීමේදී පිටුවේ පතුලේ ඇති උදාහරණ මට වඩාත්ම උපකාරී විය:

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

3. රූබල් 100 ක් සඳහා ඔබේම වලාකුළු සේවාදායකයක් සාදා ගන්නේ කෙසේද

බොහෝ සෙවුමකින් පසු, ඉහත පින්තූරයේ ඇති 'npm' විධානය විධාන රේඛාවට යොමු වන බව මට වැටහුණි. විධාන රේඛාව සෑම තැනකම ඇත, නමුත් එය ක්රියාත්මක කිරීමට හැකි වන පරිදි, ඔබ NodePackageManager ස්ථාපනය කළ යුතුය. ගැටලුව වූයේ මම ChromeOS සමඟ PixelBook එකක වැඩසටහන් කරමින් සිටීමයි. මම ලිනක්ස් ඉගෙන ගත් ආකාරය ගැන විශාල කොටසකට මෙතැනින් යන්නම් - බොහෝ සඳහා එය හිස් සහ අනවශ්‍ය ය. ඔබට වින්ඩෝස් හෝ මැක්බුක් තිබේ නම්, ඔබට දැනටමත් කොන්සෝලයක් තිබේ.

කෙටියෙන් කිවහොත්, මම ක්‍රොස්ටිනි හරහා ලිනක්ස් ස්ථාපනය කළෙමි.

කෙසේ වෙතත්, ක්‍රියාවලියේදී, බොට් නිරන්තරයෙන් ක්‍රියා කිරීමට (සහ මගේ පරිගණකය ක්‍රියාත්මක වන විට පමණක් නොව), මට වලාකුළු සේවාදායකයක් අවශ්‍ය බව මට වැටහුණි. මම තෝරනවා vscale.io මම රුබල් 100 ක් වියදම් කර ලාභම උබුන්ටු සේවාදායකය මිලදී ගත්තා (පින්තූරය බලන්න).

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

4. බොට් එකක් ක්‍රියාත්මක කිරීම සඳහා සේවාදායකයක් සූදානම් කරන්නේ කෙසේද

ඊට පසු, මම කේත පෙළ සමඟ ගොනුව තබන සේවාදායකයේ යම් ආකාරයක ෆෝල්ඩරයක් සෑදිය යුතු බව මට වැටහුණි. මෙය සිදු කිරීම සඳහා, කොන්සෝලය තුළ ("විවෘත කොන්සෝලය" බොත්තම හරහා වෙබ් අඩවිය මත කෙලින්ම ධාවනය කරන්න), මම ඇතුල් විය

mkdir bot

bot - මෙය මගේ ෆෝල්ඩරයේ නම බවට පත් විය. ඊට පසු, මම npm සහ Node.js ස්ථාපනය කළෙමි, එය *.js විභේදනය සහිත ගොනු වලින් කේතය ධාවනය කිරීමට මට ඉඩ සලසයි.

sudo apt update
sudo apt install nodejs
sudo apt install npm

මෙම අදියරේදී ඔබගේ කොන්සෝලය හරහා සේවාදායකයට සම්බන්ධතාවයක් සැකසීමට මම තරයේ නිර්දේශ කරමි. මෙතන අත්පොත ඔබේ පරිගණකයේ කොන්සෝලය හරහා සෘජුවම සේවාදායකය සමඟ වැඩ කිරීමට මෙය ඔබට ඉඩ සලසයි.

5. ඔබේ පළමු බොට් සඳහා කේතය ලියන්නේ කෙසේද.

නමුත් දැන් එය මට සොයාගැනීමක් පමණි. ඕනෑම වැඩසටහනක් යනු පෙළ රේඛා පමණි. ඒවා ඕනෑම තැනකට ඇතුළු කළ හැකිය, අපේක්ෂිත දිගුව සමඟ සුරැකිය හැක, එය එයයි. ඔබ ලස්සනයි. මම පාවිච්චි කළා පරමාණුව, නමුත් ඇත්ත වශයෙන්ම, ඔබට සාමාන්‍ය නෝට්පෑඩ් එකක ලිවිය හැකිය. ප්රධාන දෙය නම් ගොනුව පසුව අපේක්ෂිත දිගුවෙහි සුරැකීමයි. හරියට වර්ඩ් එකේ අකුරු ලියලා සේව් කරනවා වගේ.

මම නව ගොනුවක් සෑදුවෙමි, එයට මම ටෙලිග්‍රාෆ් පිටුවේ ඇති උදාහරණයෙන් කේතය ඇතුළත් කර එය index.js ගොනුවේ සුරකිමි (සාමාන්‍යයෙන් ගොනුව එසේ නම් කිරීම අවශ්‍ය නොවේ, නමුත් මෙය සිරිතකි). වැදගත් - BOT_TOKEN වෙනුවට, දෙවන ඡේදයෙන් ඔබගේ API යතුර ඇතුල් කරන්න.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()

6. github හරහා server එකට code upload කරන ආකාරය

දැන් මට කෙසේ හෝ මෙම කේතය සේවාදායකයට උඩුගත කර එය ක්‍රියාත්මක කිරීමට අවශ්‍ය විය. මේක මට අභියෝගයක් වුණා. එහි ප්‍රතිඵලයක් වශයෙන්, බොහෝ දුෂ්කරතා වලින් පසුව, console තුළ ඇති විධානයක් භාවිතා කර කේතය යාවත්කාලීන කිරීමට ඉඩ සලසන ගොනුවක් github මත නිර්මාණය කිරීම පහසු බව මට වැටහුණි. මම ගිණුමක් ලියාපදිංචි කළා github සහ කළා නව ව්යාපෘතිය, මම ගොනුව උඩුගත කළ තැන. ඊට පසු, මට මගේ ගිණුමෙන් (විවෘත!) ගොනු bot ෆෝල්ඩරයේ සේවාදායකයට උඩුගත කරන්නේ කෙසේදැයි සොයා ගැනීමට අවශ්‍ය විය (ඔබ හදිසියේම එය අත්හැරියේ නම්, cd bot ලියන්න).

7. github 2 කොටස හරහා සේවාදායකයට ගොනු උඩුගත කරන ආකාරය

මට git වෙතින් ගොනු බාගත කරන වැඩසටහනක් සේවාදායකයේ ස්ථාපනය කිරීමට අවශ්‍ය විය. මම කොන්සෝලයට ටයිප් කිරීමෙන් සේවාදායකයේ git ස්ථාපනය කළෙමි

apt-get install git

ඊට පසු, මට ගොනු උඩුගත කිරීම වින්‍යාස කිරීමට අවශ්‍ය විය. මෙය සිදු කිරීම සඳහා, මම විධාන රේඛාවට ටයිප් කළෙමි

git clone git://github.com/b0tank/bot.git bot

එහි ප්‍රතිඵලයක් වශයෙන්, ව්‍යාපෘතියේ සිට සියල්ල සේවාදායකය වෙත උඩුගත විය. මෙම අදියරේ ඇති වැරැද්ද නම්, මම දැනටමත් පවතින බොට් ෆෝල්ඩරය තුළ දෙවන ෆෝල්ඩරයක් සෑදුවා. ගොනුවේ ලිපිනය */bot/bot/index.js ලෙස දිස් විය

මම මෙම ගැටලුව නොසලකා හැරීමට තීරණය කළෙමි.

තවද අපි පළමු කේත පේළියේ ඉල්ලා සිටින ටෙලිග්‍රාෆ් පුස්තකාලය පූරණය කිරීමට, විධානය කොන්සෝලයට ටයිප් කරන්න.

npm install telegraf

8. බොට් එකක් දියත් කරන ආකාරය

මෙය සිදු කිරීම සඳහා, ගොනුව සමඟ ෆෝල්ඩරයේ සිටියදී (කොන්සෝලය හරහා ෆෝල්ඩරයෙන් ෆෝල්ඩරයට ගෙන යාමට, ආකෘති විධානය ක්‍රියාත්මක කරන්න. cd bot ඔබ සිටිය යුතු තැන ඔබ සිටින බව තහවුරු කර ගැනීම සඳහා, ඔබට එහි ඇති සියලුම ගොනු සහ ෆෝල්ඩර කොන්සෝලයේ පෙන්වන විධානයක් ඇතුළත් කළ හැකිය. ls -a

ආරම්භ කිරීමට, මම කොන්සෝලයට ඇතුළු විය

node index.js

දෝෂයක් නොමැති නම්, සියල්ල හොඳයි, බොට් වැඩ කරයි. විදුලි පණිවුඩයෙන් ඔහුව සොයන්න. දෝෂයක් ඇත්නම්, 1 වන කරුණෙන් ඔබේ දැනුම යොදන්න.

9. පසුබිමේ බොට් එකක් ධාවනය කරන්නේ කෙසේද

බොට් එක ක්‍රියා කරන්නේ ඔබම කොන්සෝලයේ වාඩි වී සිටින විට පමණක් බව ඉතා ඉක්මනින් ඔබට වැටහෙනු ඇත. මෙම ගැටළුව විසඳීම සඳහා මම විධානය භාවිතා කළෙමි

screen

මෙයින් පසු, යම් පෙළක් සහිත තිරයක් දිස්වනු ඇත. මෙයින් අදහස් කරන්නේ සෑම දෙයක්ම හොඳයි. ඔබ සිටින්නේ වලාකුළු සේවාදායකයක අතථ්‍ය සේවාදායකයක ය. ඒ සියල්ල ක්‍රියාත්මක වන ආකාරය වඩා හොඳින් අවබෝධ කර ගැනීමට - මෙන්න ලිපිය. ඔබගේ ෆෝල්ඩරය වෙත ගොස් බොට් දියත් කිරීමට විධානය ඇතුළත් කරන්න

node index.js

10. බොට් එක ක්‍රියා කරන ආකාරය සහ එහි ක්‍රියාකාරීත්වය පුළුල් කරන්නේ කෙසේද

අපගේ උදාහරණ බොට් හට කුමක් කළ හැකිද? ඔහුට පුළුවන්

bot.start((ctx) => ctx.reply('Welcome!'))

"සාදරයෙන් පිළිගනිමු!" කියන්න ආරම්භක මොහොතේ (පෙළ වෙනස් කිරීමට උත්සාහ කරන්න)

bot.help((ctx) => ctx.reply('Send me a sticker'))

සම්මත / උදව් විධානයට ප්‍රතිචාර වශයෙන්, "මට ස්ටිකරයක් එවන්න" යන පණිවිඩය යවන්න.

bot.on('sticker', (ctx) => ctx.reply(''))

ස්ටිකරයකට ප්‍රතිචාර වශයෙන් අනුමැතිය යවන්න

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

ඔවුන් ඔහුට "හායි" ලිව්වොත් "හේයි" පිළිතුරු දෙන්න
bot.launch()

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

ඔබ කේතය දෙස බැලුවහොත් github, එවිට මම මෙම ක්‍රියාකාරිත්වයෙන් බොහෝ දුර ගොස් නැති බව ඔබට ඉක්මනින් වැටහෙනු ඇත. ක්රියාකාරීව භාවිතා වන්නේ කාර්යයයි ctx.replyWithPhoto නිශ්චිත පෙළකට ප්‍රතිචාර වශයෙන් නිශ්චිත ඡායාරූපයක් හෝ gif යැවීමට එය ඔබට ඉඩ සලසයි.

කේතයේ සැලකිය යුතු කොටසක් ලියා ඇත්තේ මම බොට් වෙත ප්‍රවේශය ලබා දුන් වයස අවුරුදු 11-13 අතර ළමුන් විසිනි. ඔවුන් ඔවුන්ගේ පරිශීලක නඩුවට ඇතුළු විය. මම හිතන්නේ ඒ අය හදපු කොටස මොකක්ද කියලා කියන්න ලේසියි.

උදාහරණයක් ලෙස, "ජේක්" යන පණිවිඩයට ඇඩ්වෙන්චර් ටයිම් කාටූනයේ ප්‍රසිද්ධ චරිතයක් සහිත GIF එකක් ලැබෙනු ඇත.

මාර්ගෝපදේශය: වැඩසටහන්කරණයේ ආරම්භකයකු සඳහා JS හි සරල ටෙලිග්‍රාම් බොට් එකක් සාදා ගන්නේ කෙසේද

බොට් තවදුරටත් සංවර්ධනය කිරීම සඳහා, ඔබ යතුරු පුවරුවක් සම්බන්ධ කළ යුතුය, උදාහරණ බලන්න, උදාහරණයක් ලෙස, මෙතනින්

11. කේතය යාවත්කාලීන කර බොට් එක නැවත ආරම්භ කරන්නේ කෙසේද

ඔබ github මත පමණක් නොව, සේවාදායකයේ කේතය යාවත්කාලීන කළ යුතු බව අමතක නොකරන්න. මෙය කිරීම පහසුය - බොට් එක නවත්වන්න (ctrl+c ඔබන්න),

- ඉලක්ක ෆෝල්ඩරයේ සිටියදී කොන්සෝලයට ඇතුළු වන්න, git pull
- අපි විධානය සමඟ නැවතත් බොට් දියත් කරමු node index.js

අවසානය

මෙම ගොනුවේ විස්තර කර ඇති බොහෝ දේ උසස් ක්‍රමලේඛකයින්ට ඉතා පැහැදිලිව පෙනෙනු ඇත. කෙසේ වෙතත්, මා විසින්ම එක පහරකින් බොට් ලෝකයට අගාධයෙන් පැනීමට උත්සාහ කළ විට, මට එවැනි මාර්ගෝපදේශයක් මග හැරුණි. ඕනෑම තොරතුරු තාක්ෂණ විශේෂඥයෙකුට පැහැදිලි සහ සරල දේවල් අතපසු නොකරන මාර්ගෝපදේශයකි.

අනාගතයේදී, ReactNative හි ඔබේ පළමු යෙදුම එකම ශෛලියකින් සාදා ගන්නේ කෙසේද යන්න පිළිබඳ සටහනක් මම සැලසුම් කරමි, දායක වන්න!

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න