Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

Ngiqale ukucwila emhlabeni we-IT emasontweni amathathu edlule. Eqinisweni, emasontweni amathathu edlule angizange ngiqonde ngisho ne-syntax ye-HTML, futhi isingeniso sami sezilimi zokuhlela saphetha ngekharikhulamu yesikole kuPascal kusukela eminyakeni eyi-10 edlule. Kodwa-ke, nganquma ukuya ekamu le-IT, lapho kungaba kuhle ukuthi izingane zenze i-bot. Nganquma ukuthi kwakungenzima kangako.

Lokhu kwaqala uhambo olude lapho ngi:

  • kufakwe iseva yefu no-Ubuntu,
  • ibhaliswe ku-GitHub,
  • ufunde i-syntax eyisisekelo ye-JavaScript,
  • funda inqwaba yezihloko ngesiNgisi nesiRashiya,
  • ekugcineni wenze i-bot,
  • Ekugcineni ngibhale lesi sihloko.

Umphumela wokugcina ubukeke kanje:

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

Ngizosho zisuka nje ukuthi lena indatshana yabaqalayo - ukuze nje uqonde indlela yokwenza izinto eziyisisekelo kusukela ekuqaleni.

Futhi futhi - kubahleli bezinhlelo abathuthukile - ukuze bahleke kancane.

1. Ibhalwa kanjani ikhodi ku-JS?

Ngaqonda ukuthi bekufanele okungenani ngiqonde i-syntax yolimi kuqala. Ukukhetha kwawela ku-JavaScript, ngenxa nje yokuthi isinyathelo esilandelayo kimi kwakuwukudala uhlelo lokusebenza ku-ReactNative. Ngaqala nge Yiqiniso ku-Codecademy futhi ngajabula kakhulu. Izinsuku zokuqala eziyi-7 zimahhala. Amaphrojekthi wangempela. Ngisikisela. Ukuyiqeda kuthathe cishe amahora angama-25. Eqinisweni, akuzona zonke ezaziwusizo. Yilokhu okubukeka kwesakhiwo sesifundo kanye nebhulokhi yokuqala ngokuningiliziwe.

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

2. Indlela yokubhalisa i-bot?

Lokhu kwangisiza kakhulu ekuqaleni Lesi sihloko kusukela kubhulogi ye-Archakov ethile. Uhlafuna kwasekuqaleni. Kodwa into eyinhloko ukuthi kukhona imiyalelo yokubhalisa i-bot. Angikwazi ukukubhala kangcono, futhi njengoba lena kuyingxenye elula, ngizovele ngibhale umongo. Udinga ukudala i-bot futhi uthole i-API yayo. Lokhu kwenziwa ngenye i-bot - @BotFather. Mthole kuthelegramu, bhala kuye, landela indlela elula futhi uthole (gcina!) ukhiye we-API (lena isethi yezinombolo nezinhlamvu). Kwaba usizo kamuva.

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

3. Ibukeka kanjani ikhodi ye-bot?

Ngemva kokufunda izindatshana isikhathi eside, ngabona ukuthi kwakufanele ngisebenzise uhlobo oluthile lomtapo wolwazi (ikhodi yomuntu wesithathu ngefomethi yemojuli) ukuze ungakhathazeki ngokufunda i-Telegram API nokudala izingcezu ezinkulu zekhodi kusukela ekuqaleni. Ngilutholile uhlaka ucingo, obekudingeka ukuthi ixhunywe kokuthile kusetshenziswa i-npm noma intambo. Lena cishe indlela engaqonda ngayo-ke ukuthi ukuthunyelwa kwe-bot kwakuhlanganisani. Hleka lapha. Ngeke ngicasuke. Izibonelo ezingezansi kwekhasi zingisize kakhulu ngesikhathi sokudalwa okwalandela kwe-bot:

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

3. Ungayakha kanjani iseva yakho yefu ngama-ruble ayi-100

Ngemva kokucinga okuningi, ngabona ukuthi umyalo we-'npm' osesithombeni esingenhla ubhekisele kulayini womyalo. Umugqa womyalo ukuyo yonke indawo, kodwa ukuze ukwazi ukuwenza, udinga ukufaka i-NodePackageManager. Inkinga ukuthi bengihlela ku-PixelBook nge-ChromeOS. Ngizokweqa lapha ibhulokhi enkulu yokuthi ngafunda kanjani i-Linux - iningi layo ayinalutho futhi ayidingeki. Uma uneWindows noma iMacBook, usunayo ikhonsoli.

Kafushane, ngifake i-Linux nge-Crostini.

Nokho, kule nqubo, ngabona ukuthi ukuze i-bot isebenze njalo (hhayi nje lapho ikhompuyutha yami ivuliwe), ngidinga iseva yefu. Ngikhethile vscale.io Ngisebenzise ama-ruble ayi-100 futhi ngathenga iseva ye-Ubuntu eshibhe kakhulu (bona isithombe).

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

4. Uyilungiselela kanjani iseva ukusebenzisa i-bot

Ngemva kwalokho, ngabona ukuthi ngidinga ukwenza uhlobo oluthile lwefolda kuseva lapho ngizobeka khona ifayela nombhalo wekhodi. Ukuze wenze lokhu, ku-console (gijima ngqo kuwebhusayithi ngokusebenzisa inkinobho ethi "Vula ikhonsoli"), ngifake

mkdir bot

bot - leli kube igama lefolda yami. Ngemva kwalokho, ngifake i-npm ne-Node.js, ezongivumela ukuthi ngisebenzise ikhodi kumafayela anokulungiswa kwe-*.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ngincoma kakhulu ukusetha uxhumano kuseva ngokusebenzisa ikhonsoli yakho kulesi sigaba. Lapha incwadi Lokhu kuzokuvumela ukuthi usebenze neseva ngqo ngekhonsoli yekhompyutha yakho.

5. Ibhalwa kanjani ikhodi yebhothi yakho yokuqala.

Kodwa manje kuwukutholakala kimina nje. Noma yiluphi uhlelo luyimigqa yombhalo nje. Angafakwa noma yikuphi, alondolozwe ngesandiso osifunayo, futhi yilokho kuphela. Umuhle. ngisebenzise I-athomu, kodwa empeleni, ungavele ubhale ku-notepad evamile. Into esemqoka ukulondoloza ifayela kamuva esandisweni oyifunayo. Kufana nokubhala umbhalo ku-Word bese uwugcina.

Ngenza ifayela elisha, lapho ngifaka khona ikhodi kusuka esibonelweni ekhasini le-telegraf futhi ngaligcina kufayela le-index.js (ngokujwayelekile akudingekile ukubiza ifayela ngaleyo ndlela, kodwa lokhu kuyisiko). Okubalulekile - esikhundleni se-BOT_TOKEN, faka ukhiye wakho we-API kusuka endimeni yesibili.

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. Uyilayisha kanjani ikhodi kuseva nge-github

Manje bengidinga ukuthi ngandlela thize ngilayishe le khodi kuseva futhi ngiyisebenzise. Lokhu kwaba inselele kimi. Ngenxa yalokho, ngemva kobunzima obuningi, ngabona ukuthi kuzoba lula ukudala ifayela ku-github elikuvumela ukuthi ubuyekeze ikhodi usebenzisa umyalo kukhonsoli. Ngibhalise i-akhawunti ku github futhi wenza iphrojekthi entsha, lapho ngilayishe khona ifayela. Ngemva kwalokho, ngangidinga ukuthola indlela yokusetha ukulayisha amafayela kusuka ku-akhawunti yami (evulekile!) kuseva kufolda ye-bot (uma ushiye ngokuzumayo, vele ubhale i-cd bot).

7. Ungawalayisha kanjani amafayela kuseva nge-github ingxenye yesi-2

Bengidinga ukufaka uhlelo kuseva oluzolanda amafayela ku-git. Ngifake i-git kuseva ngokuthayipha ku-console

apt-get install git

Ngemva kwalokho ngidinga ukulungisa ukulayishwa kwefayela. Ukwenza lokhu, ngithayiphe kulayini womyalo

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

Ngenxa yalokho, yonke into esuka kuphrojekthi yalayishwa kuseva. Iphutha kulesi sigaba ukuthi ngenze ifolda yesibili ngaphakathi kwefolda ye-bot evele ikhona. Ikheli lefayela lalibukeka njenge */bot/bot/index.js

Nginqume ukuyiziba le nkinga.

Futhi ukulayisha umtapo wezincwadi we-telegraf, esiyicela kulayini wokuqala wekhodi, thayipha umyalo kukhonsoli.

npm install telegraf

8. Ungayethula kanjani i-bot

Ukuze wenze lokhu, ngenkathi ukufolda enefayela (ukusuka kufolda uye kufolda nge-console, sebenzisa umyalo wefomethi cd bot Ukuqinisekisa ukuthi ukulapho udinga ukuba khona, ungafaka umyalo ozoveza kukhonsoli wonke amafayela namafolda akhona. ls -a

Ukuqala, ngingene ku-console

node index.js

Uma lingekho iphutha, konke kuhamba kahle, i-bot iyasebenza. Mbheke kutelegram. Uma kunephutha, sebenzisa ulwazi lwakho olusuka ephuzwini 1.

9. Ungayisebenzisa kanjani i-bot ngemuva

Ngokushesha uzobona ukuthi i-bot isebenza kuphela lapho wena uhlezi kukhonsoli. Ukuxazulula le nkinga ngisebenzise umyalo

screen

Ngemva kwalokhu, kuzovela isikrini esinombhalo othile. Lokhu kusho ukuthi konke kuhamba kahle. Ukuseva ebonakalayo kuseva yefu. Ukuze uqonde kangcono ukuthi konke kusebenza kanjani - nasi isihloko. Vele uye kufolda yakho bese ufaka umyalo wokuqalisa i-bot

node index.js

10. Isebenza kanjani i-bot nendlela yokwandisa ukusebenza kwayo

Yini i-bot yethu yesibonelo esingayenza? Angakwazi

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

ithi "Siyakwamukela!" ngesikhathi sokuqala (zama ukushintsha umbhalo)

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

ngokuphendula umyalo ojwayelekile/wosizo, thumela umyalezo othi β€œNgithumele isitikha”

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

thumela imvume ngokuphendula isitika

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

phendula ngokuthi β€œHey there” uma bebhala ukuthi β€œhi” kuye
i-bot.launch()

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

Uma ubheka ikhodi ku github, khona-ke uzoqonda ngokushesha ukuthi angizange ngihambe kakhulu kulokhu kusebenza. Okusetshenziswa ngokuqhubekayo kuwumsebenzi ctx.replyWithPhoto Ikuvumela ukuthi uthumele isithombe esicacisiwe noma i-gif ngokuphendula umbhalo othile.

Ingxenye ebalulekile yekhodi yabhalwa izingane ezineminyaka engu-11-13, engizinikeze ukufinyelela ku-bot. Bafake i-user-case yabo. Ngicabanga ukuthi kulula ukusho ukuthi iyiphi ingxenye eyenziwe yibona.

Isibonelo, umlayezo othi "Jake" uzothola i-GIF enomlingisi odumile ovela ku-Cartoon Adventure Time.

Umhlahlandlela: ungayenza kanjani i-Telegraph bot elula ku-JS ukuze uthole umuntu oqalayo ukuhlela

Ukuze uthuthukise i-bot ngokuqhubekayo, udinga ukuxhuma ikhibhodi, bheka izibonelo, isibonelo, kusuka lapha

11. Ungabuyekeza kanjani ikhodi bese uqala kabusha i-bot

Ungakhohlwa ukuthi udinga ukuvuselela ikhodi hhayi kuphela ku-github, kodwa nakuseva. Lokhu kulula ukukwenza - misa i-bot (cindezela u-ctrl+c),

- ngena kukhonsoli ngenkathi ukufolda eqondiwe, git pull
- sethula i-bot futhi ngomyalo node index.js

Ukuphela

Izinto eziningi ezichazwe kuleli fayela zizoba sobala kakhulu kubahleli bezinhlelo abathuthukile. Kodwa-ke, lapho mina ngokwami ​​ngizama ukugxumela phezu komgodi ngiye emhlabeni wama-bots ngokuzumayo okukodwa, ngaphuthelwa ngempela umhlahlandlela onjalo. Umhlahlandlela ongaphuthelwa yizinto ezisobala nezilula kunoma yimuphi uchwepheshe we-IT.

Ngokuzayo, ngihlela okuthunyelwe mayelana nendlela yokwenza isicelo sakho sokuqala ku-ReactNative ngesitayela esifanayo, bhalisa!

Source: www.habr.com

Engeza amazwana