Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

Níor thosaigh mé ag tumadh i saol na IT ach trí seachtaine ó shin. Go dáiríre, trí seachtaine ó shin níor thuig mé fiú an chomhréir HTML, agus chríochnaigh mo réamhrá ar theangacha ríomhchlárúcháin le curaclam scoile ar Pascal ó 10 mbliana ó shin. Mar sin féin, chinn mé dul go dtí campa TF, áit a mbeadh sé go deas do na páistí bot a dhéanamh. Chinn mé gur ar éigean a bhí sé chomh deacair sin.

Chuir sé seo tús le turas fada ina ndearna mé:

  • freastalaí néal a imscaradh le Ubuntu,
  • cláraithe ar GitHub,
  • d'fhoghlaim sé comhréir bhunúsach JavaScript,
  • léigh go leor altanna i mBéarla agus i Rúisis,
  • ar deireadh rinne bot,
  • Scríobh mé an t-alt seo ar deireadh.

D'fhéach an toradh deiridh rud éigin mar seo:

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

Déarfaidh mé ar an bpointe boise gur alt é seo do thosaitheoirí - díreach le tuiscint a fháil ar conas rudaí bunúsacha a dhéanamh ón tús.

Agus freisin - le haghaidh ríomhchláraitheoirí chun cinn - ach iad a dhéanamh gáire beag.

1. Conas cód a scríobh i JS?

Thuig mé gurbh fhiú ar a laghad comhréir na teanga a thuiscint ar dtús. Thit an rogha ar JavaScript, go simplí toisc gurbh é an chéad chéim eile domsa feidhmchlár a chruthú in ReactNative. Thosaigh mé le chúrsa ar Codecademy agus bhí an-áthas air. Tá an chéad 7 lá saor in aisce. Tionscadail fíor. Molaim. Thóg sé thart ar 25 uair an chloig chun é a chríochnú. Go deimhin, ní raibh sé ar fad úsáideach. Seo an chuma atá ar struchtúr an chúrsa agus an chéad bhloc go mion.

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

2. Conas bot a chlárú?

Chuidigh sé seo go mór liom ar dtús An t-alt seo ó bhlag Archakov áirithe. Chews sé an tús. Ach is é an rud is mó atá ann ná treoracha chun bot a chlárú. Ní féidir liom é a scríobh níos fearr, agus toisc gurb é seo an chuid is éasca, ní scríobhfaidh mé ach an bunscéal. Ní mór duit bot a chruthú agus a API a fháil. Déantar é seo trí bot eile - @BotFather. Aimsigh é ar teileagram, scríobh chuige, lean an cosán simplí agus faigh (shábháil!) eochair API (is é seo sraith uimhreacha agus litreacha). Tháinig sé i handy níos déanaí.

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

3. Cad is cosúil leis an gcód bot?

Tar éis staidéar a dhéanamh ar na hailt ar feadh i bhfad, thuig mé gur fiú úsáid a bhaint as leabharlann de chineál éigin (cód tríú páirtí i bhformáid modúil) ionas nach mbeadh ort a bheith buartha faoi staidéar a dhéanamh ar API Telegram agus ag cruthú píosaí móra cód ón tús. Fuair ​​​​mé an creat teileagraf, a raibh gá leis a bheith ceangailte ar bhealach éigin le rud éigin ag baint úsáide as npm nó snáth. Is é seo go garbh mar a thuig mé ansin cad a bhí i gceist le himscaradh bot. Gáire anseo. Ní bheidh mé offended. Ba mhó a chabhraigh na samplaí ag bun an leathanaigh liom nuair a cruthaíodh an bot ina dhiaidh sin:

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

3. Conas do fhreastalaí scamall féin a chruthú le haghaidh 100 rúbal

Tar éis go leor cuardach a dhéanamh, thuig mé go dtagraíonn an t-ordú 'npm' sa phictiúr thuas don líne ordaithe. Tá an líne ordaithe i ngach áit, ach chun é a fhorghníomhú, ní mór duit NodePackageManager a shuiteáil. An fhadhb a bhí ann ná go raibh mé ag ríomhchlárú ar PixelBook le ChromeOS. Beidh mé ag scipeáil anseo bloc mór faoi conas a d'fhoghlaim mé Linux - don chuid is mó tá sé folamh agus gan ghá. Má tá Windows nó MacBook agat, tá consól agat cheana féin.

Go hachomair, shuiteáil mé Linux trí Crostini.

Mar sin féin, sa phróiseas, thuig mé go dteastaíonn freastalaí scamall uaim le go n-oibreodh an bot i gcónaí (agus ní hamháin nuair a bhíonn mo ríomhaire ar siúl). roghnaím vscála.io Chaith mé 100 rúbal agus cheannaigh mé an freastalaí Ubuntu is saoire (féach pictiúr).

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

4. Conas freastalaí a ullmhú chun bot a rith

Tar éis sin, thuig mé go raibh gá dom fillteán de chineál éigin a dhéanamh ar an bhfreastalaí ina gcuirfinn an comhad leis an téacs cód. Chun seo a dhéanamh, sa chonsól (rith go díreach ar an suíomh gréasáin tríd an gcnaipe "Consól oscailte"), chuir mé isteach

mkdir bot

bot - ba é seo an t-ainm ar mo fhillteán. Tar éis sin, shuiteáil mé npm agus Node.js, a ligfidh dom ansin cód a rith ó chomhaid le taifeach *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Molaim go mór nasc a bhunú leis an bhfreastalaí trí do chonsól ag an gcéim seo. Anseo teagaisc Ligeann sé seo duit oibriú leis an bhfreastalaí go díreach trí chonsól do ríomhaire.

5. Conas an cód a scríobh do chéad bot.

Ach anois níl ann ach fionnachtain domsa. Níl in aon chlár ach línte téacs. Is féidir iad a chur isteach in áit ar bith, a shábháil leis an síneadh atá ag teastáil, agus sin é. Tá tú go hálainn. d'úsáid mé Adamh, ach i ndáiríre, is féidir leat scríobh i leabhar nótaí caighdeánach. Is é an rud is mó ná an comhad a shábháil níos déanaí sa síneadh atá ag teastáil. Tá sé cosúil le téacs a scríobh i Word agus é a shábháil.

Rinne mé comhad nua, inar chuir mé isteach an cód ón sampla ar an leathanach telegraf agus shábháil mé é sa chomhad index.js (go ginearálta ní gá an comhad a ainmniú mar sin, ach is gnách é seo). Tábhachtach - in ionad BOT_TOKEN, cuir isteach d'eochair API ón dara alt.

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. Conas cód a uaslódáil chuig an bhfreastalaí trí github

Anois b'éigean dom an cód seo a uaslódáil ar bhealach éigin chuig an bhfreastalaí agus é a rith. Tháinig sé seo ina dhúshlán dom. Mar thoradh air sin, tar éis mórán trioblóide, thuig mé go mbeadh sé níos éasca comhad a chruthú ar github a ligeann duit an cód a nuashonrú ag baint úsáide as ordú sa chonsól. Chláraigh mé cuntas ar github agus rinne tionscadal nua, áit ar uaslódáil mé an comhad. Ina dhiaidh sin, ba ghá dom a dhéanamh amach conas comhaid a uaslódáil ó mo chuntas (oscailte!) chuig an bhfreastalaí san fhillteán bot (má d'fhág tú go tobann é, scríobh cd bot).

7. Conas comhaid a uaslódáil chuig an bhfreastalaí trí github cuid 2

Bhí orm clár a shuiteáil ar an bhfreastalaí a íoslódáil comhaid ó git. Shuiteáil mé git ar an bhfreastalaí trí chlóscríobh isteach sa chonsól

apt-get install git

Ina dhiaidh sin bhí orm an uaslódáil comhad a chumrú. Chun seo a dhéanamh, chlóscríobh mé isteach an líne ordaithe

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

Mar thoradh air sin, rinneadh gach rud ón tionscadal a uaslódáil chuig an bhfreastalaí. Ba é an botún ag an gcéim seo ná go ndearna mé go bunúsach an dara fillteán taobh istigh den fhillteán bot a bhí ann cheana féin. Bhí cuma */bot/bot/index.js ar an seoladh chuig an gcomhad

Chinn mé neamhaird a dhéanamh ar an bhfadhb seo.

Agus chun an leabharlann teileagraf a luchtú, a iarraimid sa chéad líne de chód, clóscríobh an t-ordú isteach sa chonsól.

npm install telegraf

8. Conas bot a sheoladh

Chun seo a dhéanamh, agus tú san fhillteán leis an gcomhad (chun bogadh ó fhillteán go fillteán tríd an consól, reáchtáil an t-ordú formáide cd bot Chun a chinntiú go bhfuil tú san áit ar gá duit a bheith, is féidir leat ordú a chur isteach a thaispeánfaidh sa chonsól na comhaid agus na fillteáin go léir atá ann ls -a

Chun tús a chur, chuaigh mé isteach sa consól

node index.js

Mura bhfuil aon earráid ann, tá gach rud go breá, tá an bot ag obair. Cuardaigh dó ar telegram. Má tá earráid ann, cuir do chuid eolais ó phointe 1 i bhfeidhm.

9. Conas bot a rith sa chúlra

Go tapa tuigfidh tú nach n-oibríonn an bot ach amháin nuair a bhíonn tú i do shuí sa chonsól. Chun an fhadhb seo a réiteach, d'úsáid mé an t-ordú

screen

Tar éis seo, beidh scáileán le roinnt téacs le feiceáil. Ciallaíonn sé seo go bhfuil gach rud go breá. Tá tú ar fhreastalaí fíorúil ar fhreastalaí néal. Chun tuiscint níos fearr a fháil ar conas a oibríonn sé go léir - seo an t-alt. Téigh go dtí d'fhillteán agus cuir isteach an t-ordú chun an bot a sheoladh

node index.js

10. Conas a oibríonn an bot agus conas a fheidhmiúlacht a leathnú

Cad is féidir lenár sampla bot a dhéanamh? Is feidir leis

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

abair "Fáilte!" faoi ​​láthair (bain triail as an téacs a athrú)

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

mar fhreagra ar an ordú caighdeánach / cabhrach, seol an teachtaireacht "Seol greamán chugam"

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

seol ceadú mar fhreagra ar ghreamán

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

freagair “Hey there” má scríobhann siad “Dia duit” chuige
bot.launch()

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

Má fhéachann tú ar an gcód ag github, ansin tuigfidh tú go tapa nach ndeachaigh mé i bhfad ón bhfeidhmiúlacht seo. Is é an rud a úsáidtear go gníomhach ná an fheidhm ctx.replyWithPhoto Ligeann sé duit grianghraf nó gif sonraithe a sheoladh mar fhreagra ar théacs ar leith.

Scríobh leanaí idir 11-13 bliana d’aois cuid shuntasach den chód, ar thug mé rochtain dóibh ar an bot. Chuir siad a gcás úsáideora isteach. Sílim go bhfuil sé éasca a rá cén chuid a rinne siad.

Mar shampla, gheobhaidh an teachtaireacht “Jake” GIF le carachtar cáiliúil ón gcartún Adventure Time.

Treoir: conas bot simplí Telegram a dhéanamh i JS do thosaitheoirí i ríomhchlárú

Chun an bot a fhorbairt tuilleadh, ní mór duit méarchlár a nascadh, féach samplaí, mar shampla, dá bhrí sin

11. Conas an cód a nuashonrú agus an bot a atosú

Ná déan dearmad gur gá duit an cód a nuashonrú, ní hamháin ar github, ach freisin ar an bhfreastalaí. Tá sé seo éasca a dhéanamh - stop an bot (brúigh ctrl+c),

- dul isteach sa chonsól agus tú sa spriocfhillteán, git pull
- seolann muid an bot arís leis an ordú node index.js

END

Beidh go leor de na rudaí a gcuirtear síos orthu sa chomhad seo thar a bheith soiléir do ard-ríomhchláraitheoirí. Mar sin féin, nuair a rinne mé féin iarracht léim thar an chasm chuig saol na róbónna in aon titim amháin, chaill mé treoir dá leithéid go mór. Treoir nach gcaillfidh rudaí atá soiléir agus simplí d’aon speisialtóir TF.

Sa todhchaí, tá post á phleanáil agam faoi conas do chéad iarratas a dhéanamh ar ReactNative sa stíl chéanna, liostáil!

Foinse: will.com

Add a comment