Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

Mo bẹrẹ ibọmi ara mi ni agbaye ti IT ni ọsẹ mẹta sẹyin. Ni pataki, ọsẹ mẹta sẹyin Emi ko paapaa loye sintasi HTML, ati iṣafihan mi si awọn ede siseto pari pẹlu eto-ẹkọ ile-iwe kan lori Pascal lati ọdun mẹwa sẹhin. Sibẹsibẹ, Mo pinnu lati lọ si ibudó IT kan, nibiti yoo dara fun awọn ọmọde lati ṣe bot. Mo pinnu pé ó ṣòro bẹ́ẹ̀.

Eyi bẹrẹ irin-ajo gigun kan ninu eyiti emi:

  • gbe olupin awọsanma ṣiṣẹ pẹlu Ubuntu,
  • forukọsilẹ lori GitHub,
  • kọ ẹkọ sintasi JavaScript ipilẹ,
  • ka pupọ ti awọn nkan ni Gẹẹsi ati Russian,
  • nipari ṣe bot,
  • Mo nipari kowe yi article.

Abajade ikẹhin dabi nkan bi eyi:

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

Emi yoo sọ lẹsẹkẹsẹ pe eyi jẹ nkan fun awọn olubere - o kan lati ni oye bi o ṣe le ṣe awọn nkan ipilẹ lati ibere.

Ati paapaa - fun awọn olutọpa ilọsiwaju - o kan lati jẹ ki wọn rẹrin diẹ.

1. Bawo ni lati kọ koodu ni JS?

Mo loye pe o tọ ni o kere ju ni oye sintasi ti ede ni akọkọ. Yiyan ṣubu lori JavaScript, nìkan nitori igbesẹ ti n tẹle fun mi ni lati ṣẹda ohun elo kan ni ReactNative. Mo bẹrẹ pẹlu dajudaju lori Codecademy ati pe inu rẹ dun pupọ. Awọn ọjọ 7 akọkọ jẹ ọfẹ. Awọn iṣẹ akanṣe gidi. Mo ṣeduro. Ipari rẹ gba to wakati 25. Ni otitọ, kii ṣe gbogbo rẹ wulo. Eyi ni ohun ti iṣeto ti ẹkọ naa dabi ati bulọki akọkọ ni awọn alaye.

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

2. Bawo ni lati forukọsilẹ bot?

Eyi ṣe iranlọwọ fun mi pupọ ni ibẹrẹ Arokọ yi lati bulọọgi ti Archakov kan. O jẹun ibẹrẹ pupọ. Ṣugbọn ohun akọkọ ti o wa ni awọn ilana fun iforukọsilẹ bot kan. Emi ko le kọ dara julọ, ati pe nitori eyi ni apakan ti o rọrun julọ, Emi yoo kan kọ gist naa. O nilo lati ṣẹda bot ki o gba API rẹ. Eyi ni a ṣe nipasẹ bot miiran - @BotFather. Wa lori telegram, kọ si i, tẹle ọna ti o rọrun ati gba (fipamọ!) Bọtini API kan (eyi jẹ awọn nọmba ati awọn lẹta). O wa ni ọwọ nigbamii.

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

3. Kini koodu bot dabi?

Lẹhin kika awọn nkan naa fun igba pipẹ, Mo rii pe o tọ lati lo iru ile-ikawe kan (koodu ẹni-kẹta ni ọna kika module) ki o má ba ni aniyan nipa kikọ API Telegram ati ṣiṣẹda awọn ege koodu nla lati ibere. Mo ti ri ilana telegraf, eyi ti o nilo lati wa ni bakan ti a ti sopọ si nkankan nipa lilo npm tabi yarn. Eyi ni aijọju bii MO ṣe loye lẹhinna kini imuṣiṣẹ ti bot jẹ ninu. Rerin nibi. Emi kii yoo binu. Awọn apẹẹrẹ ti o wa ni isalẹ oju-iwe naa ṣe iranlọwọ fun mi pupọ julọ lakoko ṣiṣẹda bot atẹle:

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

3. Bii o ṣe le ṣẹda olupin awọsanma tirẹ fun 100 rubles

Lẹhin wiwa pupọ, Mo rii pe aṣẹ 'npm' ninu aworan loke n tọka si laini aṣẹ. Laini aṣẹ wa nibikibi, ṣugbọn lati ni anfani lati ṣiṣẹ, o nilo lati fi NodePackageManager sori ẹrọ. Iṣoro naa ni pe Mo n ṣe siseto lori PixelBook pẹlu ChromeOS. Emi yoo fo nibi bulọọki nla kan nipa bii MO ṣe kọ Linux - fun pupọ julọ o ṣofo ati ko ṣe pataki. Ti o ba ni Windows tabi MacBook, o ti ni console tẹlẹ.

Ni kukuru, Mo fi Linux sori ẹrọ nipasẹ Crostini.

Sibẹsibẹ, ninu ilana, Mo rii pe fun bot lati ṣiṣẹ nigbagbogbo (kii ṣe nigbati kọnputa mi ba wa), Mo nilo olupin awọsanma. Mo yan vscale.io Mo ti lo 100 rubles ati ra olupin Ubuntu ti ko gbowolori (wo aworan).

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

4. Bii o ṣe le mura olupin lati ṣiṣẹ bot kan

Lẹhin iyẹn, Mo rii pe Mo nilo lati ṣe iru folda kan lori olupin ninu eyiti Emi yoo fi faili naa pẹlu ọrọ koodu. Lati ṣe eyi, ninu console (ṣiṣẹ taara lori oju opo wẹẹbu nipasẹ bọtini “Ṣii console”), Mo ti tẹ

mkdir bot

bot - eyi di orukọ folda mi. Lẹhin iyẹn, Mo fi sori ẹrọ npm ati Node.js, eyiti yoo gba mi laaye lati ṣiṣẹ koodu lati awọn faili pẹlu ipinnu * .js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Mo ṣeduro gíga lati ṣeto asopọ si olupin nipasẹ console rẹ ni ipele yii. Nibi ẹkọ Eyi yoo gba ọ laaye lati ṣiṣẹ pẹlu olupin taara nipasẹ console ti kọnputa rẹ.

5. Bii o ṣe le kọ koodu fun bot akọkọ rẹ.

Ṣugbọn nisisiyi o kan awari fun mi. Eto eyikeyi jẹ awọn ila ti ọrọ nikan. Wọn le fi sii nibikibi, ti o fipamọ pẹlu itẹsiwaju ti o fẹ, ati pe iyẹn ni. O lewa. Mo lo Atomu, sugbon ni otito, o le kan kọ ni a boṣewa akọsilẹ. Ohun akọkọ ni lati fipamọ faili nigbamii ni itẹsiwaju ti o fẹ. O dabi kikọ ọrọ ni Ọrọ ati fifipamọ rẹ.

Mo ṣe faili tuntun kan, ninu eyiti Mo fi koodu sii lati apẹẹrẹ lori oju-iwe telegraf ati fipamọ sinu faili index.js (ni gbogbogbo ko ṣe pataki lati lorukọ faili naa ni ọna, ṣugbọn eyi jẹ aṣa). Pataki - dipo BOT_TOKEN, fi bọtini API rẹ sii lati paragira keji.

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. Bii o ṣe le gbe koodu si olupin nipasẹ github

Bayi ni mo nilo lati bakan po si yi koodu si olupin ati ṣiṣe awọn ti o. Eyi di ipenija fun mi. Bi abajade, lẹhin ipọnju pupọ, Mo rii pe yoo rọrun lati ṣẹda faili kan lori github ti o fun ọ laaye lati ṣe imudojuiwọn koodu nipa lilo aṣẹ kan ninu console. Mo forukọsilẹ iroyin lori github o si ṣe titun ise agbese, nibiti mo ti gbe faili naa silẹ. Lẹhin iyẹn, Mo nilo lati ṣawari bi o ṣe le ṣeto awọn faili ikojọpọ lati akọọlẹ mi (ṣii!) Si olupin ninu folda bot (ti o ba fi silẹ lojiji, kan kọ cd bot).

7. Bii o ṣe le gbe awọn faili sori olupin nipasẹ github apakan 2

Mo nilo lati fi sori ẹrọ eto kan lori olupin ti yoo ṣe igbasilẹ awọn faili lati git. Mo fi git sori olupin naa nipa titẹ sinu console

apt-get install git

Lẹhin iyẹn Mo nilo lati tunto ikojọpọ faili naa. Lati ṣe eyi, Mo ti tẹ sinu laini aṣẹ

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

Bi abajade, ohun gbogbo lati iṣẹ akanṣe ti gbejade si olupin naa. Aṣiṣe ni ipele yii ni pe Mo ṣe pataki folda keji ninu folda bot ti o wa tẹlẹ. Adirẹsi si faili naa dabi */bot/bot/index.js

Mo pinnu lati foju iṣoro yii.

Ati lati ṣaja ile-ikawe telegraf, eyiti a beere ni laini akọkọ ti koodu, tẹ aṣẹ naa sinu console.

npm install telegraf

8. Bawo ni lati lọlẹ a bot

Lati ṣe eyi, lakoko ti o wa ninu folda pẹlu faili (lati gbe lati folda si folda nipasẹ console, ṣiṣe aṣẹ kika cd bot Lati rii daju pe o wa nibiti o nilo lati wa, o le tẹ aṣẹ kan sii ti yoo han ninu console gbogbo awọn faili ati awọn folda ti o wa nibẹ. ls -a

Lati bẹrẹ, Mo wọ inu console

node index.js

Ti ko ba si aṣiṣe, ohun gbogbo dara, bot n ṣiṣẹ. Wa fun u lori telegram. Ti aṣiṣe ba wa, lo imọ rẹ lati aaye 1.

9. Bii o ṣe le ṣiṣẹ bot ni abẹlẹ

Ni kiakia iwọ yoo mọ pe bot ṣiṣẹ nikan nigbati iwọ funrarẹ ba joko ni console. Lati yanju iṣoro yii Mo lo aṣẹ naa

screen

Lẹhin eyi, iboju pẹlu ọrọ kan yoo han. Eyi tumọ si pe ohun gbogbo dara. O wa lori olupin foju lori olupin awọsanma. Lati ni oye daradara bi gbogbo rẹ ṣe n ṣiṣẹ - nibi ni article. Kan lọ si folda rẹ ki o tẹ aṣẹ sii lati ṣe ifilọlẹ bot

node index.js

10. Bawo ni bot ṣiṣẹ ati bi o ṣe le faagun iṣẹ ṣiṣe rẹ

Kini apẹẹrẹ bot le ṣe? O le

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

sọ "Kaabo!" ni akoko ibẹrẹ (gbiyanju yiyipada ọrọ naa)

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

ni idahun si boṣewa / aṣẹ iranlọwọ, fi ifiranṣẹ ranṣẹ “Fi sitika ranṣẹ si mi”

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

firanṣẹ ifọwọsi ni idahun si sitika kan

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

dahun "Hey nibẹ" ti wọn ba kọ "hi" si i
bot.launch()

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

Ti o ba wo koodu ni github, lẹhinna o yoo ni oye ni kiakia pe Emi ko ti lọ jina pupọ si iṣẹ-ṣiṣe yii. Ohun ti nṣiṣe lọwọ lo ni iṣẹ naa ctx.replyWithPhoto O gba ọ laaye lati firanṣẹ fọto kan tabi gif ni esi si ọrọ kan pato.

Apa pataki ti koodu naa ni kikọ nipasẹ awọn ọmọde ti o wa ni ọdun 11-13, ẹniti Mo fun ni iwọle si bot. Wọn wọ inu apoti olumulo wọn. Mo ro pe o rọrun lati sọ apakan wo ni wọn ṣe.

Fun apẹẹrẹ, ifiranṣẹ "Jake" yoo gba GIF kan pẹlu ohun kikọ olokiki lati Aago Adventure cartoon.

Itọsọna: bii o ṣe le ṣe bot Telegram ti o rọrun ni JS fun alakọbẹrẹ ni siseto

Lati se agbekale bot siwaju sii, o nilo lati so keyboard kan, wo awọn apẹẹrẹ, fun apẹẹrẹ, lati ibi

11. Bi o ṣe le ṣe imudojuiwọn koodu naa ki o tun bẹrẹ bot

Maṣe gbagbe pe o nilo lati ṣe imudojuiwọn koodu kii ṣe lori github nikan, ṣugbọn tun lori olupin naa. Eyi rọrun lati ṣe - da bot duro (tẹ ctrl + c),

- tẹ sinu console lakoko ti o wa ninu folda ibi-afẹde, git pull
- a ṣe ifilọlẹ bot lẹẹkansi pẹlu aṣẹ naa node index.js

END

Ọpọlọpọ awọn nkan ti a ṣalaye ninu faili yii yoo han gbangba si awọn olupilẹṣẹ ilọsiwaju. Sibẹsibẹ, nigbati emi funrarami gbiyanju lati fo lori awọn chasm si awọn aye ti bot ni ọkan isubu, Mo ti gan padanu iru itọsọna. Itọsọna kan ti ko padanu awọn nkan ti o han gedegbe ati rọrun fun eyikeyi alamọja IT.

Ni ojo iwaju, Mo n gbimọ a post nipa bi o lati ṣe rẹ akọkọ elo lori ReactNative ni kanna ara, alabapin!

orisun: www.habr.com

Fi ọrọìwòye kun