Nilianza kujitumbukiza katika ulimwengu wa IT wiki tatu zilizopita. Kwa kweli, wiki tatu zilizopita hata sikuelewa sintaksia ya HTML, na utangulizi wangu kwa lugha za programu ulimalizika na mtaala wa shule juu ya Pascal kutoka miaka 10 iliyopita. Hata hivyo, niliamua kwenda kwenye kambi ya IT, ambapo itakuwa nzuri kwa watoto kufanya bot. Niliamua kwamba haikuwa ngumu sana.
Hii ilianza safari ndefu ambayo mimi:
- ilipeleka seva ya wingu na Ubuntu,
- imesajiliwa kwenye GitHub,
- kujifunza syntax ya msingi ya JavaScript,
- soma tani ya nakala kwa Kiingereza na Kirusi,
- hatimaye alifanya bot,
- Hatimaye niliandika makala hii.
Matokeo ya mwisho yalionekana kama hii:
Nitasema mara moja kwamba hii ni makala kwa Kompyuta - tu kuelewa jinsi ya kufanya mambo ya msingi kutoka mwanzo.
Na pia - kwa waandaaji wa programu za hali ya juu - kuwafanya wacheke kidogo.
1. Jinsi ya kuandika msimbo katika JS?
Nilielewa kuwa ilifaa angalau kuelewa sintaksia ya lugha kwanza. Chaguo lilianguka kwenye JavaScript, kwa sababu hatua iliyofuata kwangu ilikuwa kuunda programu katika ReactNative. Nilianza na
2. Jinsi ya kusajili bot?
Hii ilinisaidia sana hapo mwanzo
3. Je, msimbo wa bot unaonekanaje?
Baada ya kusoma nakala kwa muda mrefu, niligundua kuwa inafaa kutumia aina fulani ya maktaba (msimbo wa mtu wa tatu katika muundo wa moduli) ili usiwe na wasiwasi juu ya kusoma API ya Telegraph na kuunda vipande vikubwa vya nambari kutoka mwanzo. Nimepata mfumo
3. Jinsi ya kuunda seva yako ya wingu kwa rubles 100
Baada ya utaftaji mwingi, niligundua kuwa amri ya 'npm' kwenye picha hapo juu inarejelea safu ya amri. Mstari wa amri iko kila mahali, lakini ili uweze kutekeleza, unahitaji kusakinisha NodePackageManager. Shida ilikuwa kwamba nilikuwa nikipanga kwenye PixelBook na ChromeOS. Nitaruka hapa kizuizi kikubwa kuhusu jinsi nilivyojifunza Linux - kwa wengi ni tupu na sio lazima. Ikiwa una Windows au MacBook, tayari unayo console.
Kwa kifupi, niliweka Linux kupitia Crostini.
Walakini, katika mchakato huo, niligundua kuwa ili bot ifanye kazi kila wakati (na sio tu wakati kompyuta yangu iko), ninahitaji seva ya wingu. Nilichagua
4. Jinsi ya kuandaa seva ili kuendesha bot
Baada ya hapo, niligundua kuwa nilihitaji kutengeneza aina fulani ya folda kwenye seva ambayo ningeweka faili na maandishi ya nambari. Ili kufanya hivyo, katika console (kukimbia moja kwa moja kwenye tovuti kupitia kifungo cha "Fungua console"), niliingia
mkdir bot
bot - hili likawa jina la folda yangu. Baada ya hapo, nilisakinisha npm na Node.js, ambayo itaniruhusu kuendesha msimbo kutoka kwa faili zilizo na azimio la *.js
sudo apt update
sudo apt install nodejs
sudo apt install npm
Ninapendekeza sana kusanidi muunganisho kwa seva kupitia koni yako katika hatua hii. Hapa
5. Jinsi ya kuandika msimbo wa roboti yako ya kwanza.
Lakini sasa ni ugunduzi tu kwangu. Mpango wowote ni mistari tu ya maandishi. Wanaweza kuingizwa popote, kuokolewa na ugani unaohitajika, na ndivyo. Wewe ni mrembo. nilitumia
Nilifanya faili mpya, ambayo niliingiza msimbo kutoka kwa mfano kwenye ukurasa wa telegraf na kuihifadhi kwenye faili ya index.js (kwa ujumla si lazima kutaja faili kwa njia hiyo, lakini hii ni desturi). Muhimu - badala ya BOT_TOKEN, weka ufunguo wako wa API kutoka kwa aya ya pili.
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. Jinsi ya kupakia msimbo kwa seva kupitia github
Sasa nilihitaji kupakia nambari hii kwa seva na kuiendesha. Hii ikawa changamoto kwangu. Kama matokeo, baada ya shida nyingi, niligundua kuwa itakuwa rahisi kuunda faili kwenye github ambayo hukuruhusu kusasisha nambari kwa kutumia amri kwenye koni. Nilisajili akaunti kwenye
7. Jinsi ya kupakia faili kwa seva kupitia github sehemu ya 2
Nilihitaji kusanikisha programu kwenye seva ambayo ingepakua faili kutoka kwa git. Niliweka git kwenye seva kwa kuandika kwenye koni
apt-get install git
Baada ya hapo nilihitaji kusanidi upakiaji wa faili. Ili kufanya hivyo, niliandika kwenye mstari wa amri
git clone git://github.com/b0tank/bot.git bot
Kama matokeo, kila kitu kutoka kwa mradi kilipakiwa kwenye seva. Kosa katika hatua hii ni kwamba kimsingi nilitengeneza folda ya pili ndani ya folda iliyopo tayari ya bot. Anwani ya faili ilionekana kama */bot/bot/index.js
Niliamua kupuuza shida hii.
Na kupakia maktaba ya telegraf, ambayo tunaomba katika mstari wa kwanza wa kanuni, chapa amri kwenye console.
npm install telegraf
8. Jinsi ya kuzindua bot
Ili kufanya hivyo, ukiwa kwenye folda na faili (kuhama kutoka folda hadi folda kupitia koni, endesha amri ya umbizo cd bot
Ili kuhakikisha kuwa uko mahali unahitaji kuwa, unaweza kuingiza amri ambayo itaonyesha kwenye koni faili zote na folda zilizo hapo. ls -a
Kuanza, niliingia kwenye koni
node index.js
Ikiwa hakuna kosa, kila kitu ni sawa, bot inafanya kazi. Mtafute kwenye telegramu. Ikiwa kuna hitilafu, tumia ujuzi wako kutoka kwa nukta ya 1.
9. Jinsi ya kuendesha bot kwa nyuma
Haraka sana utagundua kuwa bot inafanya kazi tu wakati wewe mwenyewe umekaa kwenye koni. Ili kutatua shida hii nilitumia amri
screen
Baada ya hayo, skrini iliyo na maandishi fulani itaonekana. Hii inamaanisha kuwa kila kitu kiko sawa. Uko kwenye seva pepe kwenye seva ya wingu. Ili kuelewa vizuri jinsi yote inavyofanya kazi -
node index.js
10. Jinsi bot inavyofanya kazi na jinsi ya kupanua utendaji wake
Mfano wetu unaweza kufanya nini? Anaweza
bot.start((ctx) => ctx.reply('Welcome!'))
sema "Karibu!" wakati wa kuanza (jaribu kubadilisha maandishi)
bot.help((ctx) => ctx.reply('Send me a sticker'))
kwa kujibu amri ya kawaida / msaada, tuma ujumbe "Nitumie kibandiko"
bot.on('sticker', (ctx) => ctx.reply(''))
tuma idhini kwa kujibu kibandiko
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
jibu "Halo huko" ikiwa wanamwandikia "hi".
bot.zindua()
Ukiangalia kanuni katika ctx.replyWithPhoto
Inakuruhusu kutuma picha au gif maalum kwa kujibu maandishi mahususi.
Sehemu kubwa ya kanuni iliandikwa na watoto wenye umri wa miaka 11-13, ambao niliwapa ufikiaji wa bot. Waliingia kwenye kesi ya mtumiaji. Nadhani ni rahisi kusema ni sehemu gani ilitengenezwa nao.
Kwa mfano, ujumbe "Jake" utapokea GIF na mhusika maarufu kutoka kwa Wakati wa Matangazo ya katuni.
Ili kuendeleza bot zaidi, unahitaji kuunganisha kibodi, angalia mifano, kwa mfano,
11. Jinsi ya kusasisha msimbo na kuanzisha upya bot
Usisahau kwamba unahitaji kusasisha msimbo sio tu kwenye github, lakini pia kwenye seva. Hii ni rahisi kufanya - simamisha bot (bonyeza ctrl+c),
- ingiza kwenye koni ukiwa kwenye folda inayolengwa, git pull
- tunazindua bot tena kwa amri node index.js
MWISHO
Mambo mengi yaliyofafanuliwa katika faili hii yatakuwa dhahiri sana kwa watengeneza programu wa hali ya juu. Walakini, nilipojaribu kuruka juu ya shimo kwenye ulimwengu wa roboti kwa haraka, nilikosa mwongozo kama huo. Mwongozo ambao haukosa mambo ambayo ni dhahiri na rahisi kwa mtaalamu yeyote wa IT.
Katika siku zijazo, ninapanga chapisho kuhusu jinsi ya kutuma ombi lako la kwanza kwenye ReactNative kwa mtindo sawa, jisajili!
Chanzo: mapenzi.com