Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

Amalitere m imikpu onwe m n'ime ụwa IT naanị izu atọ gara aga. N'ezie, izu atọ gara aga, aghọtaghị m HTML syntax, na iwebata m na asụsụ mmemme kwụsịrị na usoro ọmụmụ ụlọ akwụkwọ na Pascal site na 10 afọ gara aga. Otú ọ dị, ekpebiri m ịga n'ogige IT, ebe ọ ga-adị mma ka ụmụaka mee bot. Ekpebiri m na o siri ike otú ahụ.

Nke a malitere ogologo njem nke m:

  • weghaara ihe nkesa igwe ojii na Ubuntu,
  • edebanye aha na GitHub,
  • mụtara syntax Javascript bụ isi,
  • gụọ ọtụtụ akụkọ n'asụsụ Bekee na Russian,
  • mechara mee bot,
  • M mechara dee akụkọ a.

Nsonaazụ ikpeazụ dị ka nke a:

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

M ga-ekwu ozugbo na nke a bụ akụkọ maka ndị mbido - naanị ịghọta otu esi eme ihe ndị bụ isi site na ọkọ.

Na kwa - maka ndị mmemme dị elu - naanị iji mee ka ha chịa ntakịrị.

1. Kedu otu esi ede koodu na JS?

Aghọtara m na ọ bara uru ma ọ dịkarịa ala ịghọta syntax nke asụsụ ahụ. Nhọrọ ahụ dabara na Javascript, naanị n'ihi na nzọụkwụ ọzọ maka m bụ imepụta ngwa na ReactNative. M ji malite N'ezie na Codecademy ma nwee obi ụtọ. Ụbọchị 7 mbụ bụ n'efu. Ezigbo oru ngo. Akwadoro m. Imecha ya were ihe dị ka awa iri abụọ na ise. N'ezie, ọ bụghị ihe niile bara uru. Nke a bụ ihe nhazi nke usoro ahụ dị ka na ngọngọ nke mbụ n'ụzọ zuru ezu.

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

2. Kedu otu esi edebanye aha bot?

Nke a nyeere m aka nke ukwuu ná mmalite Akụkọ a site na blọọgụ nke ụfọdụ Archakov. Ọ na-ata mmalite. Mana isi ihe dị na ntuziaka maka ịdenye bot. Enweghị m ike ide ya nke ọma, ebe ọ bụ na nke a bụ akụkụ kachasị mfe, m ga-ede naanị isi ihe. Ịkwesịrị ịmepụta bot wee nweta API ya. A na-eme nke a site na bot ọzọ - @BotFather. Chọta ya na telegram, degara ya akwụkwọ, soro ụzọ dị mfe ma nweta (chekwa!) igodo API (nke a bụ nọmba na mkpụrụedemede). Ọ bịara na-aka emechara.

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

3. Kedu ka koodu bot dị ka?

Mgbe m mụsịrị isiokwu ndị ahụ ogologo oge, achọpụtara m na ọ bara uru iji ụdị ọbá akwụkwọ (koodu nke atọ na usoro modul) ka ị ghara ichegbu onwe gị banyere ịmụ Telegram API na ịmepụta nnukwu koodu site na ọkọ. Achọtara m usoro ahụ telegraf, nke kwesịrị iji npm ma ọ bụ yarn jikọọ na ihe ụfọdụ. Nke a bụ otu m siri ghọta mgbe ahụ ihe nbupu nke bot nwere. Ọchị ebe a. Agaghị m ewe iwe. Ihe atụ ndị dị n'okpuru ibe ahụ nyeere m aka nke ukwuu n'oge mmebe bot na-esote:

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

3. Otu esi emepụta ihe nkesa igwe ojii maka 100 rubles

Mgbe ọtụtụ nyocha gasịrị, achọpụtara m na iwu 'npm' dị na foto dị n'elu na-ezo aka n'ahịrị iwu. Ahịrị iwu dị ebe niile, mana iji nwee ike ime ya, ịkwesịrị ịwụnye NodePackageManager. Nsogbu bụ na m na-eme mmemme na PixelBook na ChromeOS. M ga-awụpụ ebe a nnukwu ngọngọ banyere otu m siri mụta Linux - maka ọtụtụ ọ bụ ihe efu na enweghị isi. Ọ bụrụ na ị nwere Windows ma ọ bụ MacBook, ị nweelarị console.

Na nkenke, etinyere m Linux site na Crostini.

Otú ọ dị, na usoro ahụ, achọpụtara m na ka bot na-arụ ọrụ mgbe niile (ma ọ bụghị naanị mgbe kọmputa m na-arụ ọrụ), achọrọ m sava igwe ojii. Ahọrọ m vscale.io Eji m 100 rubles zụta ihe nkesa Ubuntu dị ọnụ ala (lee foto).

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

4. Otu esi akwadebe ihe nkesa iji mee bot

Mgbe nke ahụ gasịrị, achọpụtara m na ọ dị m mkpa ịme ụdị nchekwa na ihe nkesa nke m ga-etinye faịlụ ahụ na ederede koodu. Iji mee nke a, na njikwa (na-agba ọsọ ozugbo na webụsaịtị site na bọtịnụ "Mepee console"), etinyere m

mkdir bot

bot - nke a ghọrọ aha folda m. Mgbe nke ahụ gasịrị, etinyere m npm na Node.js, nke ga-enye m ohere ịme koodu site na faịlụ na * .js mkpebi.

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ana m akwado ịkwado njikọ na ihe nkesa site na njikwa gị n'oge a. Ebe a ntuziaka Nke a ga-enye gị ohere iji ihe nkesa na-arụ ọrụ ozugbo site na njikwa kọmputa gị.

5. Otu esi ede koodu maka bot mbụ gị.

Ma ugbu a ọ bụ naanị nchọpụta m. Mmemme ọ bụla bụ naanị ahịrị ederede. Enwere ike itinye ha n'ebe ọ bụla, chekwaa ya na ndọtị a chọrọ, ọ bụkwa ya. Ị mara mma. Eji m ya Atọm, mana n'eziokwu, ị nwere ike dee naanị na akwụkwọ ndetu ọkọlọtọ. Isi ihe bụ ịchekwa faịlụ ma emesịa na ndọtị achọrọ. Ọ dị ka ide ederede na Okwu wee chekwaa ya.

Emere m faịlụ ọhụrụ, nke m tinyere koodu site na ihe atụ na ibe telegraf wee chekwaa ya na faịlụ index.js (n'ozuzu ọ dịghị mkpa ịkpọ faịlụ ahụ n'ụzọ ahụ, mana nke a bụ omenala). Ihe dị mkpa - kama BOT_TOKEN, tinye igodo API gị site na paragraf nke abụọ.

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. Otu esi ebugo koodu na sava site na github

Ugbu a achọrọ m ibugo koodu a na sava wee mee ya. Nke a ghọrọ ihe ịma aka nye m. N'ihi ya, mgbe ọtụtụ nsogbu gasịrị, achọpụtara m na ọ ga-adị mfe ịmepụta faịlụ na github nke na-enye gị ohere imelite koodu site na iji iwu na njikwa. M debanyere akaụntụ na github ma mee oru ngo ohuru, ebe m bugoro faịlụ. Mgbe nke ahụ gasịrị, ọ dị m mkpa ịchọta otu esi edozi faịlụ na-ebugote site na akaụntụ m (mepee!) Na ihe nkesa na folda bot (ọ bụrụ na ị hapụrụ ya na mberede, dee naanị cd bot).

7. Otu esi ebugo faịlụ na sava site na github akụkụ 2

Achọrọ m ịwụnye mmemme na sava nke ga-ebudata faịlụ na git. Etinyere m git na ihe nkesa site na ịpị na njikwa

apt-get install git

Mgbe nke ahụ gasịrị, achọrọ m ịhazi nbudata faịlụ ahụ. Iji mee nke a, pịnyere m n'ahịrị iwu

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

N'ihi ya, ihe niile sitere na oru ngo a bulitere na ihe nkesa. Njehie dị n'oge a bụ na m mere folda nke abụọ n'ime folda bot dị adị. Adreesị faịlụ ahụ dị ka */bot/bot/index.js

Ekpebiri m ileghara nsogbu a anya.

Na ịkwanye ọba akwụkwọ telegraf, nke anyị na-arịọ na ahịrị mbụ nke koodu, pịnye iwu n'ime njikwa.

npm install telegraf

8. Otu esi ebido bot

Iji mee nke a, mgbe ị nọ na folda nwere faịlụ ahụ (iji bugharịa site na nchekwa gaa na nchekwa site na njikwa, na-agba ọsọ usoro iwu cd bot Iji jide n'aka na ị nọ ebe ịchọrọ ịnọ, ị nwere ike itinye iwu nke ga-egosipụta na njikwa faịlụ na nchekwa niile dị n'ebe ahụ. ls -a

Iji bido, abanyere m na console

node index.js

Ọ bụrụ na enweghị njehie, ihe niile dị mma, bot na-arụ ọrụ. Chọọ ya na telegram. Ọ bụrụ na enwere njehie, tinye ihe ọmụma gị site na isi 1.

9. Otu esi agba bot n'azụ

Ngwa ngwa ị ga-achọpụta na bot na-arụ ọrụ naanị mgbe gị onwe gị nọ ọdụ na njikwa. Iji dozie nsogbu a, ejiri m iwu ahụ

screen

Mgbe nke a gasịrị, ihuenyo nwere ụfọdụ ederede ga-apụta. Nke a pụtara na ihe niile dị mma. Ị nọ na ihe nkesa mebere na igwe ojii. Iji ghọta nke ọma ka ọ niile si arụ ọrụ - ebe a bụ akụkọ. Naanị gaa na nchekwa gị wee tinye iwu ka ịmalite bot

node index.js

10. Otu bot si arụ ọrụ na otu esi gbasaa ọrụ ya

Kedu ihe ihe atụ anyị nwere ike ime? O nwere ike

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

sị "Nnọọ!" n'oge mmalite (gbalịa ịgbanwe ederede)

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

na nzaghachi nye ọkọlọtọ / enyemaka iwu, zipu ozi "Zitere m ihe mmado"

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

zipu nnabata na nzaghachi nye ihe mmado

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

zaa "Hey ebe ahụ" ma ọ bụrụ na ha edegara ya "hi".
bot.launch()

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

Ọ bụrụ na ị na-elele koodu na github, mgbe ahụ, ị ​​ga-aghọta ngwa ngwa na ejebeghị m ebe dị anya na ọrụ a. Ihe na-arụsi ọrụ ike bụ ọrụ ctx.replyWithPhoto Ọ na-enye gị ohere izipu foto ma ọ bụ gif akọwapụtara na nzaghachi nke ederede akọwapụtara.

Otu akụkụ dị mkpa nke koodu ahụ bụ ụmụaka dị afọ 11-13, bụ ndị m nyere ohere ịnweta bot. Ha banyere n'akpa ha. Echere m na ọ dị mfe ịkọ akụkụ nke ha mere.

Dịka ọmụmaatụ, ozi "Jake" ga-enweta GIF nwere àgwà a ma ama site na oge njem ihe nkiri.

Ntuziaka: otu esi eme bot telegram dị mfe na JS maka onye mbido na mmemme

Iji zụlite bot n'ihu, ịkwesịrị ijikọ ahụigodo, hụ ọmụmaatụ, dịka ọmụmaatụ, site n'ebe a

11. Otu esi emelite koodu ma malitegharịa bot

Echefula na ịkwesịrị imelite koodu ọ bụghị naanị na github, kamakwa na ihe nkesa. Nke a dị mfe ime - kwụsị bot (pịa ctrl + c),

- banye na console mgbe ị nọ na nchekwa ebumnuche, git pull
- anyị na-eji iwu ahụ malite bot ọzọ node index.js

ọgwụgwụ

Ọtụtụ n'ime ihe ndị akọwara na faịlụ a ga-apụta ìhè nke ukwuu nye ndị mmemme dị elu. Otú ọ dị, mgbe mụ onwe m nwara ịwụli elu n'ọgba aghara gaa n'ụwa nke bots n'otu ntabi anya, onye nduzi dị otú ahụ agbaghara m n'ezie. Ntuziaka na-adịghị atụfu ihe ndị doro anya ma dị mfe maka ọkachamara IT ọ bụla.

N'ọdịnihu, m na-eme atụmatụ maka otu esi eme ngwa mbụ gị na ReactNative n'otu ụdị ahụ, denye aha!

isi: www.habr.com

Tinye a comment