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:
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
2. Paano magrehistro ng bot?
Malaki ang naitulong nito sa akin sa simula
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
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
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
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
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
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 -
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()
Kung titingnan mo ang code sa 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.
Upang mabuo pa ang bot, kailangan mong ikonekta ang isang keyboard, tingnan ang mga halimbawa, halimbawa,
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