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:
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
2. Bawo ni lati forukọsilẹ bot?
Eyi ṣe iranlọwọ fun mi pupọ ni ibẹrẹ
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
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
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
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
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
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ṣẹ -
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()
Ti o ba wo koodu ni 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