Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

Ndakatanga kuzvinyudza munyika yeIT masvondo matatu apfuura. Zvakaoma, mavhiki matatu apfuura handina kana kunzwisisa HTML syntax, uye sumo yangu yemitauro yehurongwa yakapera nedzidzo yechikoro paPascal kubva makore gumi apfuura. Zvisinei, ndakasarudza kuenda kumusasa weIT, uko zvingava zvakanaka kuti vana vaite bot. Ndakaona kuti zvakanga zvakaoma kudaro.

Izvi zvakatanga rwendo rurefu umo ini:

  • akaisa cloud server neUbuntu,
  • yakanyoreswa paGitHub,
  • akadzidza chirevo cheJavaScript syntax,
  • verenga toni yezvinyorwa muChirungu neRussia,
  • pakupedzisira akaita bot,
  • Ndakazonyora nyaya iyi.

Mhedzisiro yekupedzisira yakaita seizvi:

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

Ini ndichataura ipapo ipapo kuti ichi chinyorwa chevanotanga - kungonzwisisa maitiro ekuita zvinhu zvakakosha kubva pakutanga.

Uye zvakare - kune vepamberi programmers - kungoita kuti vaseke zvishoma.

1. Nzira yekunyora kodhi muJS?

Ndakanzwisisa kuti zvaive zvakakosha kuti ndinzwisise masintakisi emutauro kutanga. Sarudzo yakawira paJavaScript, nekuda kwekuti nhanho yaitevera kwandiri yaive yekugadzira application muReactNative. Ndakatanga nazvo chokwadi paCodecademy uye ndakafara zvikuru. Mazuva ekutanga e7 haabhadharwi. Mapurojekiti chaiwo. Ndinokurudzira. Kuipedza kwakatora maawa anenge 25. Kutaura zvazviri, hazvisi zvose zvaibatsira. Izvi ndizvo zvinoita chimiro chekosi uye yekutanga block mune zvakadzama.

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

2. Nzira yekunyora sei bot?

Izvi zvakandibatsira zvikuru pakutanga Ichi chinyorwa kubva kubhurogi yemumwe Archakov. Anotsenga pekutangira chaipo. Asi chinhu chikuru chiripo kune mirairo yekunyoresa bot. Ini handikwanise kuinyora zvirinani, uye sezvo ichi chiri chikamu chiri nyore, ini ndinongonyora pfungwa. Iwe unofanirwa kugadzira bot uye kuwana API yayo. Izvi zvinoitwa kuburikidza neimwe bot - @BotFather. Mutsvage pateregiramu, nyorera kwaari, tevera nzira iri nyore uye tora (chengetedza!) kiyi yeAPI (iyi seti yenhamba uye mavara). Zvakazobatsira pave paya.

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

3. Ko bot code inoita sei?

Mushure mekudzidza zvinyorwa kwenguva yakareba, ndakaona kuti zvaive zvakakodzera kushandisa imwe mhando yeraibhurari (yechitatu-bato kodhi mumodule fomati) kuti urege kunetseka nezve kudzidza iyo Telegraph API uye kugadzira zvidimbu zvakakura zvekodhi kubva pakutanga. Ndakawana framework telegraph, iyo yaida kuve yakabatana neimwe chinhu uchishandisa npm kana shinda. Aya ndiwo manzwisisiro andakaita ipapo kuti kuiswa kwebhoti kwaisanganisirei. Seka apa. Handizogumburwi. Mienzaniso pazasi peji yakandibatsira zvakanyanya panguva yekugadzirwa kwakatevera kwebhoti:

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

3. Ungagadzira sei yako cloud server ye100 rubles

Mushure mekutsvaga kwakawanda, ndakaona kuti iyo 'npm' yekuraira iri pamufananidzo uri pamusoro inoreva mutsara wekuraira. Mutsetse wekuraira uri kwese kwese, asi kuti ukwanise kuuita, unofanirwa kuisa NodePackageManager. Dambudziko nderekuti ndaironga paPixelBook ine ChromeOS. Ini ndichasvetukira pano chivharo chikuru nezve madzidzire andakaita Linux - kune mazhinji haina chinhu uye haina basa. Kana uine Windows kana MacBook, watova nekoni.

Muchidimbu, ndakaisa Linux kuburikidza neCrostini.

Nekudaro, mukuita izvi, ndakaona kuti kuti bot ishande nguva dzose (uye kwete chete kana komputa yangu iripo), ndinoda sevha yegore. Ndakasarudza vscale.io Ndakashandisa 100 rubles uye ndakatenga yakachipa Ubuntu server (ona mufananidzo).

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

4. Nzira yekugadzirira sei sevha kuti iite bot

Mushure meizvozvo, ndakaona kuti ndaifanira kugadzira imwe mhando yeforodha pane sevha umo ndaizoisa iyo faira ine kodhi zvinyorwa. Kuti uite izvi, mune console (mhanya zvakananga pawebsite kuburikidza ne "Open console" bhatani), ndakapinda

mkdir bot

bot - iri rakava zita refolda yangu. Mushure mezvo, ndakaisa npm neNode.js, izvo zvinonditendera kuti nditange kodhi kubva kumafaira ane *.js resolution.

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ini ndinokurudzira zvikuru kumisikidza chinongedzo kune server kuburikidza nekoni yako panguva ino. Here manual Izvi zvinokutendera kuti ushande neserver zvakananga kuburikidza nekoni yekombuta yako.

5. Nzira yekunyora kodhi yebhoti yako yekutanga.

Asi ikozvino chave kungowanikwa kwandiri. Chero purogiramu ingori mitsetse yezvinyorwa. Iwo anogona kuiswa chero kupi, akachengetedzwa neaunoda kuwedzera, uye ndizvozvo. Wakanaka. Ndakashandisa atomu, asi muchokwadi, iwe unogona kungonyora mune yakajairwa notepad. Chinhu chikuru ndechekuchengetedza faira gare gare mukuwedzera kwaunoda. Zvakafanana nekunyora zvinyorwa muIzwi nekuzvichengeta.

Ndakagadzira faira itsva, iyo yandakaisa kodhi kubva kumuenzaniso pane peji ye telegraf uye ndakaichengeta mu index.js file (kazhinji hazvidikanwi kutumidza faira nenzira iyo, asi iyi ndiyo tsika). Zvakakosha - pachinzvimbo cheBOT_TOKEN, isa kiyi yako yeAPI kubva pandima yechipiri.

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. Nzira yekuisa sei code kune server kuburikidza ne github

Zvino ini ndaida neimwe nzira kurodha iyi kodhi kune server uye kuimhanyisa. Izvi zvakava dambudziko kwandiri. Nekuda kweizvozvo, mushure mekuomerwa kwakawanda, ndakaona kuti zvingava nyore kugadzira faira pagithub inokubvumira kuti uvandudze kodhi uchishandisa murairo mune console. Ndakanyoresa account pa github uye akaita chirongwa chitsva, kwandakaisa faira. Mushure meizvozvo, ndaifanira kufunga nzira yekumisikidza kurodha mafaera kubva kuaccount yangu (yakavhurika!) kune sevha iri mubhoti folda (kana iwe wakaerekana waisiya, ingonyora cd bot).

7. Maitiro ekurodha mafaera kune server kuburikidza negithub chikamu 2

Ini ndaida kuisa chirongwa pane server chaizorodha mafaera kubva kugit. Ndakaisa git pane server nekunyora mukati meiyo console

apt-get install git

Mushure meizvozvo ini ndaifanira kugadzirisa iyo file upload. Kuti ndiite izvi, ndakanyora mumutsara wekuraira

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

Nekuda kweizvozvo, zvese kubva kuprojekiti zvakaiswa kune server. Chikanganiso pane iyi nhanho ndechekuti ini ndakagadzira yechipiri folda mukati meiyo yatovepo bot folda. Kero yefaira yaiita kunge */bot/bot/index.js

Ndakasarudza kufuratira dambudziko iri.

Uye kurodha telegraf raibhurari, yatinokumbira mumutsara wekutanga wekodhi, nyora iwo murairo mukoni.

npm install telegraf

8. Ungatanga sei bot

Kuti uite izvi, uri mufolda ine faira (kubva pane folda kuenda kune folda kuburikidza nekoni, mhanyisa iyo fomati yekuraira cd bot Kuti uve nechokwadi chekuti uri paunofanira kunge uri, unogona kuisa murairo unozoratidza mukoni mafaera ese nemaforodha aripo. ls -a

Kuti nditange ndapinda muconsole

node index.js

Kana pasina kukanganisa, zvinhu zvose zvakanaka, bot iri kushanda. Mutsvage pateregiramu. Kana paine chikanganiso, shandisa ruzivo rwako kubva pane 1.

9. Nzira yekumhanyisa bot kumashure

Nekukurumidza iwe unozoona kuti bot inoshanda chete kana iwe pachako wakagara mukoni. Kugadzirisa dambudziko iri ndakashandisa murairo

screen

Mushure meizvi, skrini ine mamwe mavara ichaonekwa. Izvi zvinoreva kuti zvinhu zvose zvakanaka. Iwe uri pane virtual server pane cloud server. Kuti unzwisise zviri nani kuti zvese zvinoshanda sei - heino chinyorwa. Ingoenda kune yako folda uye isa rairo yekuvhura bot

node index.js

10. Iyo bot inoshanda sei uye kuti ungawedzera sei kushanda kwayo

Chii chinogona kuita muenzaniso wedu bot? Anogona

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

iti "Welcome!" panguva yekutanga (edza kushandura zvinyorwa)

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

mukupindura kune yakajairwa / rubatsiro kuraira, tumira meseji "Nditumirewo sticker"

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

tumira mvumo uchipindura kune chinonamirwa

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

pindura kuti "Hesi uko" kana vakanyora kuti "hi" kwaari
bot.launch()

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

Kana iwe ukatarisa kodhi pa github, ipapo iwe uchakurumidza kunzwisisa kuti ini handina kuenda kure nekushanda uku. Icho chinoshandiswa zvakasimba ndiro basa ctx.replyWithPhoto Iyo inokutendera kuti utumire yakatsanangurwa foto kana gif mukupindura kune yakatarwa mavara.

Chikamu chakakosha chekodhi chakanyorwa nevana vane makore 11-13, avo vandakapa mukana kune bot. Vakapinda muuser-case yavo. Ndinofunga kuti zviri nyore kutaura kuti ndeipi chikamu chakagadzirwa navo.

Semuenzaniso, meseji "Jake" inogashira GIF ine ane mukurumbira hunhu kubva kuCartoon Adventure Time.

Nhungamiro: maitiro ekugadzira yakapusa Telegraph bot muJS kune anotanga mukuronga

Kuti uwedzere bhoti mberi, unofanirwa kubatanidza keyboard, ona mienzaniso, semuenzaniso, kubva pano

11. Nzira yekuvandudza kodhi uye kutangazve bot

Usakanganwa kuti iwe unofanirwa kugadzirisa kodhi kwete chete pagithub, asiwo pane server. Izvi zviri nyore kuita - kumisa bot (dzvanya ctrl+c),

- pinda mukoni uchiri muforodha yakanangwa, git pull
- tinotangisa bot zvakare nemurairo node index.js

END

Zvizhinji zvezvinhu zvinotsanangurwa mufaira iri zvichave zviri pachena kune vepamberi programmers. Nekudaro, ini pachangu pandakaedza kusvetukira pamusoro pemukana kuenda kunyika yemabhoti mune imwe yakawira pasi, ndakapotsa chaizvo gwara rakadaro. Nhungamiro isingapotse zvinhu zviri pachena uye zviri nyore kune chero nyanzvi yeIT.

Mune ramangwana, ndiri kuronga positi nezve maitiro ekuita yako yekutanga application paReactNative nenzira imwecheteyo, nyoresa!

Source: www.habr.com

Voeg