Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

Nagsimula akong isawsaw ang aking sarili sa mundo ng IT tatlong linggo lamang ang nakalipas. Seryoso, tatlong linggo na ang nakalipas ay hindi ko pa naiintindihan ang HTML syntax, at ang aking pagpapakilala sa mga programming language ay natapos sa isang kurikulum ng paaralan sa Pascal mula 10 taon na ang nakakaraan. Gayunpaman, nagpasya akong pumunta sa isang IT camp, kung saan maganda para sa mga bata na gumawa ng bot. Napagpasyahan ko na hindi gaanong mahirap.

Nagsimula ito ng mahabang paglalakbay kung saan:

  • nag-deploy ng cloud server sa Ubuntu,
  • nakarehistro sa GitHub,
  • natutunan ang pangunahing JavaScript syntax,
  • magbasa ng isang toneladang artikulo sa Ingles at Ruso,
  • sa wakas nakagawa ng bot,
  • Sa wakas ay naisulat ko ang artikulong ito.

Ang huling resulta ay mukhang ganito:

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

Sasabihin ko kaagad na ito ay isang artikulo para sa mga nagsisimula - para lang maunawaan kung paano gawin ang mga pangunahing bagay mula sa simula.

At din - para sa mga advanced na programmer - para lang mapatawa sila ng kaunti.

1. Paano magsulat ng code sa JS?

Naunawaan ko na ito ay nagkakahalaga ng hindi bababa sa pag-unawa sa syntax ng wika muna. Ang pagpili ay nahulog sa JavaScript, dahil lamang ang susunod na hakbang para sa akin ay ang lumikha ng isang application sa ReactNative. Sinimulan ko sa kurso sa Codecademy at labis siyang natuwa. Ang unang 7 araw ay libre. Mga totoong proyekto. Nirerekomenda ko. Ang pagkumpleto nito ay tumagal ng humigit-kumulang 25 oras. Sa katunayan, hindi lahat ng ito ay kapaki-pakinabang. Ito ang hitsura ng istraktura ng kurso at ang unang bloke sa detalye.

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

2. Paano magrehistro ng bot?

Malaki ang naitulong nito sa akin sa simula ang artikulong ito mula sa blog ng isang tiyak na Archakov. Ngumunguya siya sa pinakasimula. Ngunit ang pangunahing bagay na mayroong mga tagubilin para sa pagrehistro ng isang bot. I can’t write it better, at dahil ito ang pinakamadaling bahagi, isusulat ko na lang ang buod. Kailangan mong gumawa ng bot at makuha ang API nito. Ginagawa ito sa pamamagitan ng isa pang bot - @BotFather. Hanapin siya sa telegrama, sumulat sa kanya, sundan ang simpleng landas at kumuha (i-save!) ng API key (ito ay isang hanay ng mga numero at titik). Ito ay dumating sa madaling gamiting mamaya.

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

3. Ano ang hitsura ng bot code?

Matapos pag-aralan ang mga artikulo sa mahabang panahon, napagtanto ko na sulit ang paggamit ng ilang uri ng library (third-party code sa module format) upang hindi mag-alala tungkol sa pag-aaral ng Telegram API at paglikha ng malalaking piraso ng code mula sa simula. Natagpuan ko ang balangkas telegraf, na kailangang kahit papaano ay konektado sa isang bagay gamit ang npm o yarn. Ito ay halos kung paano ko naunawaan kung ano ang binubuo ng deployment ng isang bot. Tawa ka dito. Hindi ako masasaktan. Ang mga halimbawa sa ibaba ng pahina ay higit na nakatulong sa akin sa kasunod na paggawa ng bot:

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

3. Paano lumikha ng iyong sariling cloud server para sa 100 rubles

Pagkatapos ng maraming paghahanap, napagtanto ko na ang command na 'npm' sa larawan sa itaas ay tumutukoy sa command line. Ang command line ay nasa lahat ng dako, ngunit upang maisagawa ito, kailangan mong i-install ang NodePackageManager. Ang problema ay nagprograma ako sa isang PixelBook gamit ang ChromeOS. Lalaktawan ko dito ang isang malaking bloke tungkol sa kung paano ko natutunan ang Linux - para sa karamihan ito ay walang laman at hindi kailangan. Kung mayroon kang Windows o MacBook, mayroon ka nang console.

Sa madaling sabi, nag-install ako ng Linux sa pamamagitan ng Crostini.

Gayunpaman, sa proseso, napagtanto ko na para gumana ang bot nang tuluy-tuloy (at hindi lang kapag naka-on ang aking computer), kailangan ko ng cloud server. Pinili ko vscale.io Gumastos ako ng 100 rubles at bumili ng pinakamurang server ng Ubuntu (tingnan ang larawan).

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

4. Paano maghanda ng server para magpatakbo ng bot

Pagkatapos nito, napagtanto ko na kailangan kong gumawa ng ilang uri ng folder sa server kung saan ilalagay ko ang file na may teksto ng code. Upang gawin ito, sa console (direktang tumakbo sa website sa pamamagitan ng pindutan ng "Open Console"), pumasok ako

mkdir bot

bot - ito ang naging pangalan ng aking folder. Pagkatapos noon, nag-install ako ng npm at Node.js, na magpapahintulot sa akin na magpatakbo ng code mula sa mga file na may *.js na resolution

sudo apt update
sudo apt install nodejs
sudo apt install npm

Lubos kong inirerekomenda ang pag-set up ng koneksyon sa server sa pamamagitan ng iyong console sa yugtong ito. Dito pagtuturo Papayagan ka nitong magtrabaho kasama ang server nang direkta sa pamamagitan ng console ng iyong computer.

5. Paano isulat ang code para sa iyong unang bot.

Ngunit ngayon ito ay isang pagtuklas lamang para sa akin. Ang anumang programa ay mga linya lamang ng teksto. Maaari silang ipasok kahit saan, i-save gamit ang nais na extension, at iyon lang. Maganda ka. ginamit ko Atomo, ngunit sa katotohanan, maaari ka lamang magsulat sa isang karaniwang notepad. Ang pangunahing bagay ay i-save ang file sa ibang pagkakataon sa nais na extension. Ito ay tulad ng pagsusulat ng teksto sa Word at i-save ito.

Gumawa ako ng bagong file, kung saan ipinasok ko ang code mula sa halimbawa sa pahina ng telegraf at nai-save ito sa index.js file (sa pangkalahatan ay hindi kinakailangang pangalanan ang file sa ganoong paraan, ngunit ito ay kaugalian). Mahalaga - sa halip na BOT_TOKEN, ipasok ang iyong API key mula sa pangalawang talata.

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. Paano mag-upload ng code sa server sa pamamagitan ng github

Ngayon kailangan kong i-upload ang code na ito sa server at patakbuhin ito. Naging hamon ito para sa akin. Bilang isang resulta, pagkatapos ng maraming pagsubok, napagtanto ko na magiging mas madaling lumikha ng isang file sa github na nagpapahintulot sa iyo na i-update ang code gamit ang isang command sa console. Nagrehistro ako ng account sa github at ginawa bagong proyekto, kung saan ko na-upload ang file. Pagkatapos noon, kailangan kong malaman kung paano i-set up ang pag-upload ng mga file mula sa aking account (bukas!) sa server sa folder ng bot (kung bigla mo itong iniwan, magsulat ka lang ng cd bot).

7. Paano mag-upload ng mga file sa server sa pamamagitan ng github part 2

Kailangan kong mag-install ng program sa server na magda-download ng mga file mula sa git. Nag-install ako ng git sa server sa pamamagitan ng pag-type sa console

apt-get install git

Pagkatapos noon kailangan kong i-configure ang pag-upload ng file. Upang gawin ito, nag-type ako sa command line

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

Bilang resulta, ang lahat mula sa proyekto ay na-upload sa server. Ang pagkakamali sa yugtong ito ay gumawa ako ng pangalawang folder sa loob ng umiiral nang folder ng bot. Ang address sa file ay mukhang */bot/bot/index.js

Nagpasya akong huwag pansinin ang problemang ito.

At para i-load ang telegraf library, na hinihiling namin sa unang linya ng code, i-type ang command sa console.

npm install telegraf

8. Paano maglunsad ng bot

Upang gawin ito, habang nasa folder na may file (upang lumipat mula sa folder patungo sa folder sa pamamagitan ng console, patakbuhin ang command na format cd bot Upang matiyak na ikaw ay kung saan kailangan mo, maaari kang magpasok ng isang command na magpapakita sa console ng lahat ng mga file at folder na naroroon. ls -a

Upang magsimula, pumasok ako sa console

node index.js

Kung walang error, maayos ang lahat, gumagana ang bot. Hanapin mo siya sa telegrama. Kung may error, ilapat ang iyong kaalaman mula sa punto 1.

9. Paano magpatakbo ng bot sa background

Mabilis na mauunawaan mo na ang bot ay gagana lamang kapag ikaw mismo ay nakaupo sa console. Upang malutas ang problemang ito ginamit ko ang utos

screen

Pagkatapos nito, lalabas ang isang screen na may ilang teksto. Nangangahulugan ito na maayos ang lahat. Ikaw ay nasa isang virtual server sa isang cloud server. Upang mas maunawaan kung paano gumagana ang lahat - narito ang artikulo. Pumunta lang sa iyong folder at ilagay ang command para ilunsad ang bot

node index.js

10. Paano gumagana ang bot at kung paano palawakin ang functionality nito

Ano ang magagawa ng ating halimbawang bot? Kaya niyang

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

sabihin ang "Welcome!" sa sandali ng pagsisimula (subukang baguhin ang teksto)

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

bilang tugon sa standard /help command, ipadala ang mensaheng "Send me a sticker"

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

magpadala ng pag-apruba bilang tugon sa isang sticker

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

sagutin ang "Hey there" kung sumulat sila ng "hi" sa kanya
bot.launch()

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

Kung titingnan mo ang code sa github, pagkatapos ay mabilis mong mauunawaan na hindi pa ako nakakalayo sa pagpapaandar na ito. Ang aktibong ginagamit ay ang function ctx.replyWithPhoto Pinapayagan ka nitong magpadala ng isang tinukoy na larawan o gif bilang tugon sa isang tiyak na teksto.

Ang isang mahalagang bahagi ng code ay isinulat ng mga batang may edad na 11-13, kung saan binigyan ko ng access ang bot. Ipinasok nila ang kanilang user-case. Sa tingin ko, madaling sabihin kung aling bahagi ang ginawa nila.

Halimbawa, ang mensaheng "Jake" ay makakatanggap ng GIF na may sikat na karakter mula sa cartoon na Adventure Time.

Gabay: kung paano gumawa ng isang simpleng Telegram bot sa JS para sa isang baguhan sa programming

Upang mabuo pa ang bot, kailangan mong ikonekta ang isang keyboard, tingnan ang mga halimbawa, halimbawa, kaya

11. Paano i-update ang code at i-restart ang bot

Huwag kalimutan na kailangan mong i-update ang code hindi lamang sa github, kundi pati na rin sa server. Madali itong gawin - itigil ang bot (pindutin ang ctrl+c),

- pumasok sa console habang nasa target na folder, git pull
β€” inilunsad namin muli ang bot gamit ang utos node index.js

END

Marami sa mga bagay na inilarawan sa file na ito ay magiging sobrang halata sa mga advanced na programmer. Gayunpaman, nang ako mismo ay sinubukang tumalon sa bangin patungo sa mundo ng mga bot sa isang iglap, talagang na-miss ko ang gayong gabay. Isang gabay na hindi nakakaligtaan ang mga bagay na halata at simple para sa sinumang espesyalista sa IT.

Sa hinaharap, nagpaplano ako ng post tungkol sa kung paano gawin ang iyong unang aplikasyon sa ReactNative sa parehong istilo, mag-subscribe!

Pinagmulan: www.habr.com

Magdagdag ng komento