Nagsugod ko sa pagpaunlod sa akong kaugalingon sa kalibutan sa IT tulo lang ka semana ang milabay. Seryoso, tulo ka semana ang milabay wala ako makasabut sa HTML syntax, ug ang akong pagpaila sa mga programming language natapos sa usa ka kurikulum sa eskwelahan sa Pascal gikan sa 10 ka tuig na ang milabay. Bisan pa, nakahukom ko nga moadto sa usa ka kampo sa IT, diin maayo alang sa mga bata nga maghimo usa ka bot. Nakahukom ko nga kini dili kaayo lisud.
Kini nagsugod sa usa ka taas nga panaw diin ako:
- nag-deploy og cloud server uban sa Ubuntu,
- nakarehistro sa GitHub,
- nakakat-on sa batakang JavaScript syntax,
- pagbasa sa usa ka tonelada nga mga artikulo sa English ug Russian,
- sa katapusan nakahimo ug bot
- sa katapusan gisulat kini nga post.
Ang katapusan nga resulta ingon niini:
Isulti ko dayon nga kini usa ka artikulo alang sa mga nagsugod - aron lang masabtan kung giunsa pagbuhat ang mga sukaranan nga mga butang gikan sa wala.
Ug usab - alang sa mga advanced programmer - aron lang makapakatawa sila og gamay.
1. Giunsa pagsulat ang code sa JS?
Nasabtan nako nga kinahanglan una nga masabtan ang syntax sa pinulongan. Ang pagpili nahulog sa JavaScript, tungod lang kay ang sunod nga lakang alang kanako mao ang paghimo og aplikasyon sa ReactNative. Nagsugod ko sa
2. Giunsa pagparehistro ang usa ka bot?
Nakatabang kaayo nako sa sinugdanan
3. Unsa ang hitsura sa bot code?
Human sa dugay nga pagtuon sa mga artikulo, akong naamgohan nga angayan nga gamiton ang usa ka matang sa librarya (third-party code sa module format) aron dili mag-antos sa pagtuon sa telegrama nga API ug paghimo og dagkong mga piraso sa code gikan sa scratch. Nakakita ko og framework
3. Giunsa paghimo ang imong kaugalingon nga cloud server alang sa 100 nga mga rubles
Human sa daghang pagpangita, akong nahibal-an nga ang 'npm' nga sugo gikan sa hulagway sa ibabaw nagtumong sa command line. Ang command line anaa bisan asa, apan aron mahimo kini, kinahanglan nimo nga i-install ang NodePackageManager. Ang problema mao nga nagprograma ako sa usa ka PixelBook nga adunay ChromeOS. Laktawan nako ang usa ka dako nga bloke dinhi kung giunsa nako nahibal-an ang Linux - alang sa kadaghanan, wala kini ug wala kinahanglana. Kung naa kay Windows o MacBook, naa na kay console.
Sa laktod nga pagkasulti, akong gi-install ang Linux pinaagi sa Crostini.
Bisan pa, sa proseso, akong naamgohan nga aron ang bot molihok sa tanang panahon (ug dili lang kung ang akong kompyuter gi-on), nagkinahanglan ko og cloud server. Gipili nako
4. Sa unsa nga paagi sa pag-andam sa usa ka server sa pagpadagan sa usa ka bot
Human niana, akong naamgohan nga kinahanglan kong maghimo ug usa ka matang sa folder sa server diin akong ibutang ang file nga adunay code text. Aron mahimo kini, sa console (direkta nga pagdagan sa website pinaagi sa buton nga "Open console"), misulod ako
mkdir bot
bot - nahimo kini nga ngalan sa akong folder. Human niana, akong gi-install ang npm ug Node.js, nga magtugot kanako sa pagdagan sa code gikan sa *.js files.
sudo apt update
sudo apt install nodejs
sudo apt install npm
Girekomenda nako sa kini nga yugto nga magbutang usa ka koneksyon sa server pinaagi sa imong console. Dinhi
5. Giunsa pagsulat ang code para sa imong unang bot.
Karon kini usa lamang ka pagpadayag alang kanako. Ang bisan unsang programa kay linya lang sa teksto. Mahimo nimong i-drive sila bisan asa, i-save gamit ang gusto nga extension ug mao ra kana. Gwapa ka. akong gigamit
Naghimo ako og bag-ong file, diin akong gisal-ot ang code gikan sa panig-ingnan sa panid sa telegraf ug gitipigan kini sa index.js file (sa kinatibuk-an dili kinahanglan nga hingalan ang file sa ingon nga paagi, apan kini naandan). Importante - imbes nga BOT_TOKEN, isulod ang imong API key gikan sa ikaduhang paragraph.
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. Giunsa pagduso ang code sa server pinaagi sa github
Karon kinahanglan nako nga i-upload kini nga code sa server ug ipadagan kini. Kini nahimong usa ka hagit alang kanako. Ingon usa ka sangputanan, pagkahuman sa daghang kalisud, akong naamgohan nga mas sayon ββββang paghimo og file sa github nga nagtugot kanimo sa pag-update sa code gamit ang usa ka command sa console. Nagparehistro ko og account sa
7. Giunsa ang pag-upload sa mga file sa server pinaagi sa github part 2
Kinahanglan nakong ibutang ang usa ka programa sa server nga mag-download sa mga file gikan sa git. Gi-install nako ang git sa server pinaagi sa pag-type
apt-get install git
Pagkahuman niana, kinahanglan nako nga i-set up ang mga pag-upload sa file. Aron mahimo kini, nagmaneho ako sa linya sa mando
git clone git://github.com/b0tank/bot.git bot
Ingon usa ka sangputanan, ang tanan gikan sa proyekto gi-upload sa server. Ang sayup sa kini nga yugto mao nga naghimo ako usa ka ikaduha nga folder sa sulod sa naa na nga folder sa bot. Ang adres sa file morag */bot/bot/index.js
Nakahukom ko nga ibaliwala kini nga problema.
Ug aron ma-load ang librarya sa telegraf, nga among gihangyo sa una nga linya sa code, i-type ang mando sa console.
npm install telegraf
8. Giunsa pagsugod ang bot
Aron mahimo kini, samtang naa sa folder nga adunay file (aron mobalhin gikan sa folder ngadto sa folder pinaagi sa console, padagana ang format command cd bot
Aron masiguro nga naa ka kung asa nimo kinahanglan, mahimo ka magsulud usa ka mando nga ipakita sa console ang tanan nga mga file ug folder nga naa didto ls -a
Sa pagsugod, misulod ko sa console
node index.js
Kung walaβy sayup, maayo ang tanan, nagtrabaho ang bot. Pangitaa siya sa telegrama. Kung adunay sayup, gamita ang imong kahibalo gikan sa punto 1.
9. Giunsa pagpadagan ang bot sa background
Dali nimong mahibal-an nga ang bot molihok lamang kung ikaw mismo naglingkod sa console. Aron masulbad kini nga problema gigamit nako ang mando
screen
Pagkahuman niana, usa ka screen nga adunay pipila nga teksto ang makita. Kini nagpasabot nga ang tanan maayo ra. Naa ka sa virtual server sa cloud server. Aron mas masabtan kung giunsa kini tanan molihok -
node index.js
10. Giunsa ang paggana sa bot ug kung giunsa pagpalapad ang pagpaandar niini
Unsa ang mahimo sa atong bot gikan sa pananglitan? Mahimo niya
bot.start((ctx) => ctx.reply('Welcome!'))
ingna "Welcome!" sa gutlo sa pagsugod (sulayi pag-usab ang teksto)
bot.help((ctx) => ctx.reply('Send me a sticker'))
agig tubag sa standard /help command, ipadala ang mensahe nga "Send me a sticker"
bot.on('sticker', (ctx) => ctx.reply(''))
ipadala ang pagtugot agig tubag sa usa ka sticker
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
tubag "Uy didto" kung ilang isulat 'hi'
bot.launch()
Kung imong tan-awon ang code sa ctx.replyWithPhoto
Gitugotan ka niini nga magpadala usa ka piho nga litrato o gif agig tubag sa usa ka piho nga teksto.
Usa ka mahinungdanong bahin sa code ang gisulat sa mga bata nga nag-edad 11-13, nga akong gihatagan og access sa bot. Ilang gisulod ang ilang user-cases. Sa akong hunahuna dali ra mahibal-an kung unsang bahin ang nahimo nila.
Pananglitan, ang usa ka GIF nga adunay bantog nga karakter gikan sa Adventure Time cartoon moabut sa mensahe nga "jake".
Aron mapalambo pa ang bot, kinahanglan nimong ikonektar ang usa ka keyboard, tan-awa ang mga pananglitan, pananglitan,
11. Giunsa ang pag-update sa code ug i-restart ang bot
Ayaw kalimti nga kinahanglan nimo nga i-update ang code dili lamang sa github, apan usab sa server. Sayon nga buhaton kini - ihunong ang bot (i-press ctrl + c),
- pagsulod sa console samtang naa sa target nga folder, git pull
- i-restart ang bot gamit ang command node index.js
END
Daghan sa mga butang nga gihulagway sa kini nga file mahimong klaro kaayo sa mga advanced programmer. Bisan pa, sa diha nga ako mismo misulay sa paglukso sa bung-aw ngadto sa kalibutan sa mga bot sa usa ka pagdagan, gimingaw gyud ko sa ingon nga giya. Usa ka giya nga dili mawala ang klaro ug yano nga mga butang alang sa bisan unsang espesyalista sa IT.
Sa umaabot, nagplano ako usa ka post kung giunsa paghimo ang imong una nga aplikasyon sa ReactNative sa parehas nga istilo, pag-subscribe!
Source: www.habr.com