Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

Kuv pib nkag rau hauv lub ntiaj teb ntawm IT tsuas yog peb lub lis piam dhau los. Tiag tiag, peb lub lis piam dhau los kuv tseem tsis tau nkag siab txog HTML syntax, thiab kuv cov lus qhia txog cov lus programming tau xaus nrog lub tsev kawm ntawv cov ntaub ntawv kawm ntawm Pascal txij li 10 xyoo dhau los. Txawm li cas los xij, kuv txiav txim siab mus rau IT camp, qhov twg nws yuav zoo rau cov me nyuam los ua bot. Kuv txiav txim siab tias nws tsis yog qhov nyuaj heev.

Qhov no pib taug kev ntev uas kuv:

  • deployed huab server nrog Ubuntu,
  • sau npe ntawm GitHub,
  • kawm tau yooj yim JavaScript syntax,
  • nyeem ib tuj ntawm cov ntawv hauv lus Askiv thiab Lavxias,
  • thaum kawg ua ib tug bot,
  • Thaum kawg kuv tau sau tsab xov xwm no.

Qhov kawg tshwm sim zoo li no:

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

Kuv mam li hais tam sim ntawd tias qhov no yog ib tsab xov xwm rau cov neeg pib tshiab - tsuas yog kom nkag siab yuav ua li cas los ntawm kos.

Thiab tseem - rau cov programmers siab heev - tsuas yog ua kom lawv luag me ntsis.

1. Yuav sau li cas hauv JS?

Kuv nkag siab tias nws tsim nyog tsawg kawg yog nkag siab txog cov lus ntawm cov lus ua ntej. Qhov kev xaiv poob rau JavaScript, tsuas yog vim cov kauj ruam tom ntej rau kuv yog los tsim ib daim ntawv thov hauv ReactNative. Kuv pib nrog chav kawm ntawm Codecademy thiab zoo siab heev. Thawj 7 hnub yog dawb. Tej yaam num tiag. Kuv pom zoo. Ua kom tiav nws siv sijhawm li 25 teev. Qhov tseeb, tsis yog txhua yam ntawm nws muaj txiaj ntsig. Qhov no yog qhov qauv ntawm chav kawm zoo li thiab thawj qhov thaiv hauv kev nthuav dav.

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

2. Yuav sau npe li cas rau bot?

Qhov no tau pab kuv ntau heev thaum pib Zaj lus no los ntawm blog ntawm ib tug tej yam Archakov. Nws zom qhov pib. Tab sis qhov tseem ceeb uas yog muaj cov lus qhia rau sau npe bot. Kuv tsis tuaj yeem sau nws zoo dua, thiab vim qhov no yog qhov yooj yim tshaj plaws, kuv tsuas yog sau cov ntsiab lus. Koj yuav tsum tsim bot thiab tau txais nws API. Qhov no ua tiav los ntawm lwm tus bot - @BotFather. Nrhiav nws hauv xov tooj, sau ntawv rau nws, ua raws li txoj kev yooj yim thiab tau txais (txuag!) tus yuam sij API (qhov no yog cov lej thiab cov ntawv). Nws tuaj ua ke tom qab.

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

3. Tus lej bot zoo li cas?

Tom qab kawm cov ntawv ntev, kuv pom tau hais tias nws tsim nyog siv qee hom tsev qiv ntawv (tus neeg sab nrauv code hauv module hom) kom tsis txhob muaj kev txhawj xeeb txog kev kawm Telegram API thiab tsim cov lej loj ntawm kos. Kuv pom lub moj khaum telegraf, uas yuav tsum tau sib txuas nrog ib yam dab tsi siv npm lossis xov paj. Qhov no yog kwv yees li cas kuv nkag siab ces qhov kev xa tawm ntawm bot muaj li cas. Luag ntawm no. Kuv yuav tsis ua txhaum. Cov piv txwv hauv qab ntawm nplooj ntawv tau pab kuv tshaj plaws thaum lub sijhawm tsim cov bot tom ntej:

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

3. Yuav ua li cas los tsim koj tus kheej huab server rau 100 rubles

Tom qab tshawb nrhiav ntau, kuv pom tau tias 'npm' hais kom ua hauv daim duab saum toj no hais txog kab hais kom ua. Cov kab hais kom ua yog nyob txhua qhov chaw, tab sis kom muaj peev xwm ua tiav nws, koj yuav tsum nruab NodePackageManager. Qhov teeb meem yog tias kuv tau programming ntawm PixelBook nrog ChromeOS. Kuv yuav hla ntawm no ib qho loj thaiv txog qhov kuv kawm Linux - rau feem ntau nws yog khoob thiab tsis tsim nyog. Yog tias koj muaj Windows lossis MacBook, koj twb muaj lub console.

Hauv kev txiav txim siab, Kuv tau teeb tsa Linux ntawm Crostini.

Txawm li cas los xij, hauv cov txheej txheem, kuv pom tau hais tias rau bot ua haujlwm tas li (thiab tsis yog thaum kuv lub computer qhib), kuv xav tau huab server. kuv xaiv vscale.io Kuv siv 100 rubles thiab yuav qhov pheej yig tshaj Ubuntu server (saib duab).

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

4. Yuav ua li cas npaj ib lub server los khiav bot

Tom qab ntawd, kuv pom tau hais tias kuv yuav tsum tau ua qee yam ntawm cov ntawv tais ceev tseg ntawm lub server uas kuv yuav muab cov ntaub ntawv nrog cov ntawv code. Txhawm rau ua qhov no, hauv console (khiav ncaj qha ntawm lub vev xaib los ntawm "Qhib console" khawm), kuv nkag mus

mkdir bot

bot - qhov no tau los ua lub npe ntawm kuv phau ntawv tais ceev tseg. Tom qab ntawd, kuv tau nruab npm thiab Node.js, uas yuav tso cai rau kuv mam li khiav code los ntawm cov ntaub ntawv nrog *.js daws teeb meem.

sudo apt update
sudo apt install nodejs
sudo apt install npm

Kuv pom zoo kom teeb tsa kev sib txuas rau lub server los ntawm koj lub console ntawm theem no. Ntawm no phau ntawv Qhov no yuav tso cai rau koj ua haujlwm nrog server ncaj qha los ntawm console ntawm koj lub computer.

5. Yuav sau li cas rau koj thawj bot.

Tab sis tam sim no nws tsuas yog kev tshawb pom rau kuv xwb. Txhua qhov kev pab cuam tsuas yog cov kab ntawv xwb. Lawv tuaj yeem tso rau txhua qhov chaw, khaws cia nrog qhov xav tau txuas ntxiv, thiab qhov ntawd yog nws. Koj zoo nkauj. kuv siv Atom, tab sis qhov tseeb, koj tuaj yeem sau rau hauv tus qauv notepad. Qhov tseem ceeb tshaj plaws yog khaws cov ntaub ntawv tom qab hauv qhov xav tau txuas ntxiv. Nws zoo li sau ntawv hauv Lo Lus thiab txuag nws.

Kuv tau ua cov ntaub ntawv tshiab, rau hauv uas kuv tau ntxig cov lej los ntawm qhov piv txwv ntawm nplooj ntawv telegraf thiab khaws cia rau hauv cov ntaub ntawv index.js (feem ntau nws tsis tsim nyog rau npe cov ntaub ntawv li ntawd, tab sis qhov no yog kev cai). Tseem ceeb - hloov BOT_TOKEN, ntxig koj tus lej API los ntawm kab lus thib ob.

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. Yuav ua li cas upload code rau lub server ntawm github

Tam sim no kuv xav tau qee qhov tso cai no rau lub server thiab khiav nws. Qhov no tau dhau los ua qhov nyuaj rau kuv. Raws li qhov tshwm sim, tom qab muaj kev ntxhov siab ntau, kuv pom tau tias nws yuav yooj yim dua los tsim cov ntaub ntawv ntawm github uas tso cai rau koj hloov kho cov cai siv cov lus txib hauv console. Kuv sau npe tus account rau github thiab ua qhov project tshiab, qhov twg kuv upload cov ntaub ntawv. Tom qab ntawd, kuv yuav tsum xav txog yuav ua li cas teeb tsa uploading cov ntaub ntawv los ntawm kuv tus account (qhib!) mus rau tus neeg rau zaub mov hauv bot nplaub tshev (yog tias koj dheev tso nws, cia li sau cd bot).

7. Yuav ua li cas upload cov ntaub ntawv rau lub server ntawm github part 2

Kuv yuav tsum tau nruab ib qhov kev pab cuam ntawm lub server uas yuav rub tawm cov ntaub ntawv los ntawm git. Kuv tau nruab git ntawm lub server los ntawm kev ntaus ntawv rau hauv console

apt-get install git

Tom qab ntawd kuv yuav tsum configure cov ntaub ntawv upload. Ua li no, kuv ntaus rau hauv kab hais kom ua

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

Yog li ntawd, txhua yam ntawm qhov project tau muab tso rau hauv lub server. Qhov yuam kev ntawm theem no yog qhov tseem ceeb uas kuv tau ua ib daim ntawv thib ob hauv lub bot uas twb muaj lawm. Qhov chaw nyob rau cov ntaub ntawv zoo li */bot/bot/index.js

Kuv txiav txim siab tsis quav ntsej qhov teeb meem no.

Thiab txhawm rau thauj cov tsev qiv ntawv telegraf, uas peb thov hauv thawj kab ntawm cov lej, ntaus cov lus txib rau hauv console.

npm install telegraf

8. Yuav ua li cas qhib lub bot

Txhawm rau ua qhov no, thaum nyob hauv daim nplaub tshev nrog cov ntaub ntawv (kom txav ntawm daim nplaub tshev mus rau nplaub tshev ntawm lub console, khiav cov lus txib cd bot Txhawm rau kom paub tseeb tias koj nyob qhov twg koj xav tau, koj tuaj yeem nkag mus rau cov lus txib uas yuav tso tawm hauv console tag nrho cov ntaub ntawv thiab cov folders uas nyob ntawd. ls -a

Txhawm rau pib, kuv nkag mus rau hauv console

node index.js

Yog tias tsis muaj qhov yuam kev, txhua yam zoo, bot ua haujlwm. Nrhiav nws hauv telegram. Yog tias muaj qhov yuam kev, siv koj qhov kev paub los ntawm point 1.

9. Yuav ua li cas khiav ib bot hauv keeb kwm yav dhau

Heev sai koj yuav paub tias bot tsuas yog ua haujlwm thaum koj tus kheej zaum hauv console. Txhawm rau daws qhov teeb meem no kuv siv cov lus txib

screen

Tom qab no, ib qho screen nrog ib co ntawv nyeem yuav tshwm. Qhov no txhais tau tias txhua yam zoo. Koj nyob ntawm lub server virtual ntawm huab server. Kom nkag siab zoo dua li cas nws ua haujlwm txhua yam - ntawm no yog tsab xov xwm. Tsuas yog mus rau koj lub nplaub tshev thiab sau cov lus txib kom tso lub bot

node index.js

10. Yuav ua li cas lub bot ua hauj lwm thiab yuav ua li cas nthuav nws functionality

Peb tus piv txwv bot ua li cas? Nws ua tau

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

hais tias "Zoo siab txais tos!" thaum pib (sim hloov cov ntawv nyeem)

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

nyob rau hauv teb rau tus qauv / pab hais kom ua, xa cov lus "Xa kuv ib daim ntawv nplaum"

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

xa kev pom zoo los teb rau daim ntawv nplaum

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

teb "Hav nyob ntawd" yog lawv sau "nyob zoo" rau nws
bot.launch()

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

Yog koj saib cov cai ntawm github, ces koj yuav nkag siab sai sai tias kuv tsis tau mus deb heev ntawm qhov kev ua haujlwm no. Dab tsi yog nquag siv yog qhov ua haujlwm ctx.replyWithPhoto Nws tso cai rau koj xa ib daim duab tshwj xeeb lossis gif teb rau cov ntawv tshwj xeeb.

Ib feem tseem ceeb ntawm cov cai tau sau los ntawm cov menyuam yaus hnub nyoog 11-13, uas kuv tau nkag mus rau bot. Lawv nkag mus rau lawv cov neeg siv cov ntaub ntawv. Kuv xav tias nws yooj yim los qhia qhov twg yog qhov tsim los ntawm lawv.

Piv txwv li, cov lus "Jake" yuav tau txais GIF nrog lub cim nto moo los ntawm lub sijhawm taug txuj kev nyuaj tas luav.

Qhia: yuav ua li cas thiaj ua tau ib qho yooj yim Telegram bot hauv JS rau tus pib hauv kev ua haujlwm

Txhawm rau txhim kho bot ntxiv, koj yuav tsum txuas lub keyboard, saib cov piv txwv, piv txwv li, ntawm no

11. Yuav hloov kho li cas thiab rov pib lub bot

Tsis txhob hnov ​​​​qab tias koj yuav tsum hloov kho cov cai tsis yog ntawm github nkaus xwb, tab sis kuj tseem nyob ntawm server. Qhov no yooj yim ua - nres lub bot (nias ctrl + c),

- nkag mus rau hauv lub console thaum nyob rau hauv lub hom phiaj nplaub tshev, git pull
- peb tso lub bot dua nrog cov lus txib node index.js

kAWG

Ntau yam uas tau piav qhia hauv cov ntaub ntawv no yuav pom tseeb rau cov programmers siab heev. Txawm li cas los xij, thaum kuv tus kheej sim dhia hla lub chasm mus rau lub ntiaj teb ntawm bots nyob rau hauv ib tug poob swoop, kuv yeej nco zoo li cov lus qhia. Phau ntawv qhia uas tsis nco tej yam uas pom tseeb thiab yooj yim rau txhua tus kws tshaj lij IT.

Nyob rau hauv lub neej yav tom ntej, kuv tab tom npaj ib tsab xov xwm hais txog yuav ua li cas ua koj thawj daim ntawv thov ntawm ReactNative nyob rau hauv tib style, subscribe!

Tau qhov twg los: www.hab.com

Ntxiv ib saib