Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

Thòisich mi gam bhogadh fhèin ann an saoghal IT dìreach trì seachdainean air ais. Gu fìrinneach, o chionn trì seachdainean cha do thuig mi eadhon co-chòrdadh HTML, agus thàinig an ro-ràdh agam air cànanan prògramaidh gu crìch le curraicealam sgoile air Pascal o chionn 10 bliadhna. Ach, chuir mi romham a dhol gu campa IT, far am biodh e math don chloinn bot a dhèanamh. Cho-dhùin mi nach robh e cho duilich sin.

Thòisich seo air turas fada anns an robh mi:

  • cleachdadh frithealaiche neòil le Ubuntu,
  • clàraichte air GitHub,
  • ionnsaich co-chòrdadh JavaScript bunaiteach,
  • leugh tunna de artaigilean ann am Beurla agus Ruiseanach,
  • mu dheireadh rinn e bot,
  • Sgrìobh mi an artaigil seo mu dheireadh.

Bha an toradh deireannach a’ coimhead rudeigin mar seo:

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

Canaidh mi anns a’ bhad gur e artaigil do luchd-tòiseachaidh a tha seo - dìreach airson tuigsinn mar a nì thu rudan bunaiteach bhon fhìor thoiseach.

Agus cuideachd - airson luchd-prògramaidh adhartach - dìreach airson toirt orra gàire beag a dhèanamh.

1. Ciamar a sgrìobhadh còd ann an JS?

Bha mi a’ tuigsinn gum b’ fhiach co-dhiù co-theacs a’ chànain a thuigsinn an toiseach. Thuit an roghainn air JavaScript, dìreach air sgàth 's gur e an ath cheum dhomh tagradh a chruthachadh ann an ReactNative. Thòisich mi le cùrsa air Codecademy agus bha e air leth toilichte. Tha a’ chiad 7 latha an-asgaidh. Pròiseactan fìor. Tha mi a 'moladh. Thug e timcheall air 25 uair airson a chrìochnachadh. Gu dearbh, cha robh e uile feumail. Seo cò ris a tha structar a’ chùrsa coltach agus a’ chiad bhloc gu mionaideach.

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

2. Ciamar a chlàradh bot?

Chuidich seo mi gu mòr san toiseach an artaigil seo bho bhlog Archakov àraidh. Bidh e a’ cagnadh an fhìor thoiseach. Ach is e am prìomh rud a tha ann an stiùireadh airson bot a chlàradh. Chan urrainn dhomh a sgrìobhadh nas fheàrr, agus leis gur e seo am pàirt as fhasa, bidh mi dìreach a’ sgrìobhadh a’ bhrìgh. Feumaidh tu bot a chruthachadh agus an API aige fhaighinn. Tha seo ga dhèanamh tro bot eile - @BotFather. Lorg e air teileagram, sgrìobh thuige, lean an t-slighe shìmplidh agus faigh (sàbhail!) iuchair API (is e seo seata àireamhan is litrichean). Thàinig e gu feum nas fhaide air adhart.

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

3. Cò ris a tha còd bot coltach?

Às deidh dhomh sgrùdadh a dhèanamh air na h-artaigilean airson ùine mhòr, thuig mi gum b ’fhiach leabharlann de sheòrsa air choreigin a chleachdadh (còd treas-phàrtaidh ann an cruth modal) gus nach fheumadh dragh a bhith ort mu bhith a’ sgrùdadh API Telegram agus a ’cruthachadh pìosan mòra de chòd bhon fhìor thoiseach. Lorg mi am frèam teileagraf, a dh'fheumadh a bhith ceangailte ann an dòigh air choireigin ri rudeigin a' cleachdadh npm no snàth. Seo mar a thuig mi an uairsin dè a th’ ann an cleachdadh bot. Dèan gàire an seo. Cha bhi mi oilbheum. Chuidich na h-eisimpleirean aig bonn na duilleige mi as motha nuair a chaidh am bot a chruthachadh às deidh sin:

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

3. Ciamar a chruthachadh agad fhèin neul fhrithealaiche airson 100 rubles

Às deidh tòrr rannsachaidh, thuig mi gu bheil an àithne ‘npm’ san dealbh gu h-àrd a’ toirt iomradh air an loidhne-àithne. Tha an loidhne-àithne anns a h-uile h-àite, ach airson a chur an gnìomh, feumaidh tu NodePackageManager a stàladh. B’ e an duilgheadas a bh’ ann gun robh mi a’ prògramadh air PixelBook le ChromeOS. Sgiobaidh mi an seo bloc mòr mu mar a dh’ ionnsaich mi Linux - airson a’ mhòr-chuid tha e falamh agus gun fheum. Ma tha Windows no MacBook agad, tha tòcan agad mu thràth.

Ann an ùine ghoirid, chuir mi Linux a-steach tro Crostini.

Ach, sa phròiseas, thuig mi gum feum mi frithealaiche sgòthan airson gum biodh am bot ag obair an-còmhnaidh (agus chan ann dìreach nuair a tha an coimpiutair agam air). thagh mi vscale.io Chuir mi seachad 100 rubles agus cheannaich mi am frithealaiche Ubuntu as saoire (faic dealbh).

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

4. Mar a dheasaicheas tu frithealaiche airson bot a ruith

Às deidh sin, thuig mi gum feumadh mi pasgan de sheòrsa air choreigin a dhèanamh air an fhrithealaiche anns an cuireadh mi am faidhle leis an teacsa còd. Gus seo a dhèanamh, anns a’ chonsail (ruith gu dìreach air an làrach-lìn tron ​​phutan “Open console”), chaidh mi a-steach

mkdir bot

bot - thàinig seo gu bhith na ainm air a’ phasgan agam. Às deidh sin, chuir mi a-steach npm agus Node.js, a leigeas leam an uairsin còd a ruith bho fhaidhlichean le rùn * .js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Tha mi a’ moladh gu mòr ceangal a stèidheachadh ris an fhrithealaiche tron ​​​​chonsól agad aig an ìre seo. Seo làimhe Leigidh seo leat obrachadh leis an fhrithealaiche gu dìreach tro chonsail a’ choimpiutair agad.

5. Mar a sgrìobhas tu an còd airson a 'chiad bot agad.

Ach a-nis chan eil ann ach lorg dhomh. Chan eil ann am prògram sam bith ach loidhnichean teacsa. Faodar an cur a-steach an àite sam bith, air an sàbhaladh leis an leudachadh a tha thu ag iarraidh, agus sin e. Tha thu bòidheach. Chleachd mi Atom, ach ann an da-rìribh, faodaidh tu dìreach sgrìobhadh ann an notepad àbhaisteach. Is e am prìomh rud am faidhle a shàbhaladh nas fhaide air adhart san leudachadh a tha thu ag iarraidh. Tha e coltach ri bhith a’ sgrìobhadh teacsa ann am Word agus ga shàbhaladh.

Rinn mi faidhle ùr, anns an do chuir mi a-steach an còd bhon eisimpleir air an duilleag telegraf agus shàbhail mi e anns an fhaidhle index.js (san fharsaingeachd chan fheumar am faidhle ainmeachadh mar sin, ach tha seo àbhaisteach). Cudromach - an àite BOT_TOKEN, cuir a-steach an iuchair API agad bhon dàrna paragraf.

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. Ciamar a luchdadh suas còd chun an fhrithealaiche tro github

A-nis dh'fheumadh mi dòigh air choireigin an còd seo a luchdachadh suas chun an fhrithealaiche agus a ruith. Thàinig seo gu bhith na dhùbhlan dhomh. Mar thoradh air an sin, às deidh mòran duilich, thuig mi gum biodh e na b’ fhasa faidhle a chruthachadh air github a leigeas leat an còd ùrachadh le bhith a ’cleachdadh àithne sa chonsail. Chlàraich mi cunntas air GitHub agus rinn pròiseact ùr, far an luchdaich mi suas am faidhle. Às deidh sin, bha agam ri faighinn a-mach ciamar a shuidhicheas tu faidhlichean luchdachadh suas bhon chunntas agam (fosgailte!) Chun an fhrithealaiche ann am pasgan bot (ma dh’ fhàg thu gu h-obann e, dìreach sgrìobh cd bot).

7. Ciamar a luchdadh suas faidhlichean ris an fhrithealaiche tro github pàirt 2

Dh'fheumadh mi prògram a stàladh air an fhrithealaiche a bhiodh a 'luchdachadh sìos faidhlichean bho git. Chuir mi a-steach git air an fhrithealaiche le bhith a’ taipeadh a-steach don consol

apt-get install git

Às deidh sin dh'fheumadh mi an luchdachadh suas faidhle a rèiteachadh. Gus seo a dhèanamh, thapaidh mi a-steach don loidhne-àithne

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

Mar thoradh air an sin, chaidh a h-uile càil bhon phròiseact a luchdachadh suas chun t-seirbheisiche. B’ e am mearachd aig an ìre seo gun do rinn mi dàrna pasgan am broinn am pasgan bot a th’ ann mar-thà. Bha coltas air seòladh an fhaidhle */bot/bot/index.js

Cho-dhùin mi an duilgheadas seo a leigeil seachad.

Agus gus an leabharlann telegraf a luchdachadh, a dh’ iarras sinn sa chiad loidhne de chòd, dèan an àithne a-steach don consol.

npm install telegraf

8. Ciamar a chur air bhog bot

Gus seo a dhèanamh, fhad ‘s a tha thu sa phasgan leis an fhaidhle (gus gluasad bho phasgan gu pasgan tron ​​​​chonsól, ruith an àithne cruth cd bot Gus dèanamh cinnteach gu bheil thu far am feum thu a bhith, faodaidh tu òrdugh a chuir a-steach a sheallas anns a’ chonsail na faidhlichean agus na pasganan uile a tha ann ls -a

Airson tòiseachadh, chaidh mi a-steach don consol

node index.js

Mura h-eil mearachd ann, tha a h-uile dad gu math, tha am bot ag obair. Lorg e air telegram. Ma tha mearachd ann, cuir an t-eòlas agad an sàs bho phuing 1.

9. Mar a ruith bot ann an cùl an deilbh

Gu math luath tuigidh tu nach obraich am bot ach nuair a tha thu fhèin nad shuidhe air a’ chonsail. Airson an duilgheadas seo fhuasgladh chleachd mi an àithne

screen

Às deidh seo, nochdaidh scrion le beagan teacsa. Tha seo a’ ciallachadh gu bheil a h-uile dad gu math. Tha thu air frithealaiche brìgheil air frithealaiche sgòthan. Gus tuigse nas fheàrr fhaighinn air mar a tha e uile ag obair - seo an artaigil. Dìreach rachaibh chun phasgan agad agus cuir a-steach an àithne gus am bot a chuir air bhog

node index.js

10. Mar a tha am bot ag obair agus mar a leudaicheas e comas-gnìomh

Dè as urrainn don eisimpleir bot againn a dhèanamh? Faodaidh e

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

can "Fàilte!" aig an àm tòiseachaidh (feuch an atharraich thu an teacsa)

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

mar fhreagairt don àithne àbhaisteach / cuideachaidh, cuir am brath “Cuir stiogair thugam”

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

cuir cead mar fhreagairt air stiogair

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

freagair “Hey there” ma sgrìobhas iad “hi” thuige
bot.launch()

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

Ma choimheadas tu air a’ chòd aig GitHub, an uairsin tuigidh tu gu sgiobalta nach deach mi fada bhon ghnìomhachd seo. Is e an rud a thathas a’ cleachdadh gu gnìomhach an gnìomh ctx.replyWithPhoto Leigidh e leat dealbh sònraichte no gif a chuir mar fhreagairt do theacsa sònraichte.

Chaidh pàirt chudromach den chòd a sgrìobhadh le clann aois 11-13, don tug mi cothrom air a’ bhot. Chaidh iad a-steach don chùis-cleachdaidh aca. Tha mi a’ smaoineachadh gu bheil e furasta innse dè am pàirt a rinn iad.

Mar eisimpleir, gheibh an teachdaireachd "Jake" GIF le caractar ainmeil bhon cartùn Adventure Time.

Stiùireadh: mar a nì thu bot Telegram sìmplidh ann an JS airson neach-tòiseachaidh ann am prògramadh

Gus am bot a leasachadh tuilleadh, feumaidh tu meur-chlàr a cheangal, faic eisimpleirean, mar eisimpleir, bho seo

11. Ciamar a ùraich an còd agus ath-thòiseachadh an bot

Na dì-chuimhnich gum feum thu an còd ùrachadh chan ann a-mhàin air github, ach cuideachd air an fhrithealaiche. Tha seo furasta a dhèanamh - stad am bot (brùth ctrl + c),

- cuir a-steach don consol fhad ‘s a tha thu sa phasgan targaid, git pull
- cuiridh sinn am bot air bhog a-rithist leis an àithne node index.js

CRÌOCH

Bidh mòran de na rudan a tha air am mìneachadh san fhaidhle seo air leth follaiseach do luchd-prògramaidh adhartach. Ach, nuair a dh’ fheuch mi fhìn ri leum thairis air an ruaig gu saoghal nam botaichean ann an aon thuit, bha mi gu mòr ag ionndrainn a leithid de stiùireadh. Stiùireadh nach caill rudan a tha follaiseach agus sìmplidh airson speisealaiche IT sam bith.

Anns an àm ri teachd, tha mi a’ dealbhadh post mu mar a nì thu a’ chiad iarrtas agad air ReactNative san aon stoidhle, fo-sgrìobhadh!

Source: www.habr.com

Cuir beachd ann