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 kan 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:

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 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.

2. Bawo ni lati forukọsilẹ bot?
Eyi ṣe iranlọwọ fun mi pupọ ni ibẹrẹ 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.

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 , 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:

3. Bii o ṣe le ṣẹda olupin awọsanma tirẹ fun 100 rubles
Lẹ́yìn ìwádìí púpọ̀, mo wá rí i pé àṣẹ 'npm' tó wà nínú àwòrán tó wà lókè yìí tọ́ka sí ìlà àṣẹ. Ìlà àṣẹ náà wà níbi gbogbo, ṣùgbọ́n láti lè ṣiṣẹ́ rẹ̀, o ní láti fi NodePackageManager sori ẹ̀rọ. Ìṣòro náà ni pé mo ń ṣe ètò lórí PixelBook pẹ̀lú ChromeOS. Èmi kò ní sọ̀rọ̀ nípa bí mo ṣe kọ́ ọ. Linux - Fún ọ̀pọ̀lọpọ̀ ènìyàn, ó ṣofo, kò sì pọndandan. Tí o bá ní Windows tàbí MacBook, o ti ní console kan tẹ́lẹ̀.
Ni ṣoki, mo fi Linux nípasẹ̀ 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 Mo fi 100 rubles sílé mo sì ra ẹ̀rọ ìpèsè tó rẹlẹ̀ jùlọ. Ubuntu (wo àwòrán).

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 botbot - 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 npmMo ṣeduro gíga lati ṣeto asopọ si olupin nipasẹ console rẹ ni ipele yii. Nibi 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 , 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 o si ṣe , 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 gitLẹ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 telegraf8. 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
screenLẹ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ṣẹ - . Kan lọ si folda rẹ ki o tẹ aṣẹ sii lati ṣe ifilọlẹ bot
node index.js10. 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()

Ti o ba wo koodu ni , 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.

Lati se agbekale bot siwaju sii, o nilo lati so keyboard kan, wo awọn apẹẹrẹ, fun apẹẹrẹ,
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
