Dim ond tair wythnos yn Γ΄l y dechreuais blymio i'r byd TG. O ddifrif, tair wythnos yn Γ΄l doeddwn i ddim hyd yn oed yn deall cystrawen HTML, a daeth adnabyddiaeth o ieithoedd rhaglennu i ben gyda maes llafur Pascal 10-mlwydd-oed. Fodd bynnag, penderfynais fynd i wersyll TG, y byddai'n braf gwneud bot ar gyfer eu plant. Roeddwn i'n meddwl nad oedd hi mor anodd.
Dechreuodd hyn daith hir, lle gwnes i:
- defnyddio gweinydd cwmwl gyda Ubuntu,
- wedi cofrestru ar GitHub,
- wedi dysgu cystrawen JavaScript sylfaenol,
- darllen tunnell o erthyglau yn Saesneg a Rwsieg,
- o'r diwedd gwnaeth bot
- ysgrifennodd y post hwn o'r diwedd.
Roedd y canlyniad terfynol yn edrych fel hyn:
Fe ddywedaf ar unwaith mai erthygl ar gyfer dechreuwyr yw hon - dim ond i ddeall sut i wneud pethau elfennol o'r cychwyn cyntaf.
A hefyd - ar gyfer rhaglenwyr uwch - dim ond i wneud iddynt chwerthin ychydig.
1. Sut i ysgrifennu cod yn JS?
Deallais ei bod yn werth o leiaf ddeall cystrawen yr iaith yn gyntaf. Syrthiodd y dewis ar JavaScript, yn syml oherwydd y cam nesaf i mi oedd creu cais yn ReactNative. Dechreuais gyda
2. Sut i gofrestru bot?
Wedi fy helpu llawer yn y dechrau
3. Sut olwg sydd ar y cod bot?
Ar Γ΄l astudiaeth hir o'r erthyglau, sylweddolais ei bod yn werth defnyddio rhyw fath o lyfrgell (cod trydydd parti ar ffurf modiwl) er mwyn peidio Γ’ dioddef o astudio'r API telegram a chreu darnau mawr o god o'r dechrau. Des i o hyd i fframwaith
3. Sut i greu eich gweinydd cwmwl eich hun ar gyfer 100 rubles
Ar Γ΄l llawer o chwilio, sylweddolais fod y gorchymyn 'npm' o'r llun uchod yn cyfeirio at y llinell orchymyn. Mae'r llinell orchymyn ym mhobman, ond er mwyn gallu ei gweithredu, mae angen i chi osod y NodePackageManager. Y broblem oedd fy mod yn rhaglennu ar PixelBook gyda ChromeOS. Byddaf yn sgipio bloc mawr yma am sut y deuthum i adnabod Linux - i'r mwyafrif, mae hyn yn wag ac yn ddiangen. Os oes gennych chi Windows neu MacBook, mae gennych chi gonsol yn barod.
Yn gryno, gosodais Linux trwy Crostini.
Fodd bynnag, yn y broses, sylweddolais fod angen gweinydd cwmwl arnaf er mwyn i'r bot weithio drwy'r amser (ac nid dim ond pan fydd fy nghyfrifiadur ymlaen). Rwy'n dewis
4. Sut i baratoi'r gweinydd i redeg y bot
Ar Γ΄l hynny, sylweddolais fod angen i mi wneud rhywfaint o ffolder ar y gweinydd, lle byddwn yn rhoi'r ffeil gyda thestun y cod. I wneud hyn, yn y consol (rhedeg yn uniongyrchol ar y safle trwy'r botwm "Console Agored"), gyrrais
mkdir bot
bot - daeth hwn yn enw fy ffolder. Ar Γ΄l hynny, gosodais npm a Node.js, a fydd yn caniatΓ‘u imi redeg cod yn ddiweddarach o ffeiliau * .js
sudo apt update
sudo apt install nodejs
sudo apt install npm
Rwy'n argymell yn fawr ar hyn o bryd i sefydlu cysylltiad Γ’'r gweinydd trwy'ch consol. Yma
5. Sut i godio'r bot cyntaf.
Nawr mae hyn yn ddim ond datguddiad i mi. Dim ond llinellau testun yw unrhyw raglen. Gallwch eu gyrru yn unrhyw le, arbed gyda'r estyniad dymunol a dyna ni. Rydych chi'n brydferth. Defnyddiais i
Gwneuthum ffeil newydd, lle rhoddais y cod o'r enghraifft ar y dudalen telegraf a'i gadw i'r ffeil index.js (nid oes angen enwi'r ffeil fel 'na o gwbl, ond fe'i derbynnir). Pwysig - yn lle BOT_TOKEN, mewnosodwch eich allwedd API o'r ail baragraff.
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. Sut i wthio'r cod i'r gweinydd trwy github
Nawr roedd yn rhaid i mi rywsut uwchlwytho'r cod hwn i'r gweinydd a'i redeg. I mi daeth yn her. Yn y diwedd, ar Γ΄l llawer o ddioddefaint, sylweddolais y byddai'n haws creu ffeil ar github sy'n eich galluogi i ddiweddaru'r cod gan ddefnyddio gorchymyn yn y consol. Cofrestrais i gyfrif gyda
7. Sut i uwchlwytho ffeiliau i'r gweinydd trwy github rhan 2
Roedd angen i mi roi rhaglen ar y gweinydd a fyddai'n lawrlwytho ffeiliau o git. Gosodais git ar y gweinydd trwy deipio
apt-get install git
Ar Γ΄l hynny, roedd angen i mi sefydlu uwchlwythiadau ffeil. I wneud hyn, gyrrais i'r llinell orchymyn
git clone git://github.com/b0tank/bot.git bot
O ganlyniad, lanlwythwyd popeth o'r prosiect i'r gweinydd. Y camgymeriad ar y pwynt hwn oedd fy mod yn ei hanfod wedi gwneud ail ffolder y tu mewn i'r ffolder bot sydd eisoes yn bodoli. Roedd cyfeiriad y ffeil yn edrych fel */bot/bot/index.js
Penderfynais anwybyddu'r broblem hon.
Ac i lwytho'r llyfrgell telegraf, y gofynnwn amdani yn y llinell gyntaf o god, teipiwch y gorchymyn i'r consol.
npm install telegraf
8. Sut i gychwyn y bot
I wneud hyn, tra yn y ffolder gyda'r ffeil (i symud o ffolder i ffolder drwy'r consol, rhedeg y gorchymyn fformat cd bot
I wneud yn siΕ΅r eich bod lle mae angen i chi, gallwch yrru mewn gorchymyn a fydd yn dangos yn y consol yr holl ffeiliau a ffolderi sydd yno ls -a
I ddechrau, fe wnes i fynd i mewn i'r consol
node index.js
Os nad oes gwall, mae popeth yn iawn, mae'r bot yn gweithio. Chwiliwch amdano ar telegram. Os oes gwall, cymhwyswch eich gwybodaeth o bwynt 1.
9. Sut i redeg y bot yn y cefndir
Byddwch yn sylweddoli'n gyflym mai dim ond pan fyddwch chi'ch hun yn eistedd yn y consol y bydd y bot yn gweithio. I ddatrys y broblem hon defnyddiais y gorchymyn
screen
Ar Γ΄l hynny, bydd sgrin gyda rhywfaint o destun yn ymddangos. Mae hyn yn golygu bod popeth yn iawn. Rydych chi ar weinydd rhithwir ar weinydd cwmwl. Er mwyn deall yn well sut mae'r cyfan yn gweithio -
node index.js
10. Sut mae'r bot yn gweithio a sut i ehangu ei swyddogaethau
Beth all ein bot o'r enghraifft ei wneud? Mae'n gallu
bot.start((ctx) => ctx.reply('Welcome!'))
dweud "Croeso!" ar hyn o bryd (ceisiwch newid y testun)
bot.help((ctx) => ctx.reply('Send me a sticker'))
mewn ymateb i'r gorchymyn safonol / help, anfonwch y neges "Anfon sticer ataf"
bot.on('sticker', (ctx) => ctx.reply(''))
anfon cymeradwyaeth mewn ymateb i sticer
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
ateb "Hei yna" os ydyn nhw'n ysgrifennu 'hi'
bot.launch()
Os edrychwch ar y cod ar ctx.replyWithPhoto
Mae'n caniatΓ‘u ichi anfon llun neu gif penodol mewn ymateb i destun penodol.
Ysgrifennwyd rhan sylweddol o'r cod gan blant 11-13 oed, a rhoddais fynediad i'r bot iddynt. Aethant i mewn i'w hachosion defnyddwyr. Rwy'n meddwl ei bod yn hawdd dweud pa ran a wnaed ganddynt.
Er enghraifft, mae GIF gyda chymeriad enwog o'r cartΕ΅n Adventure Time yn dod i'r neges βjakeβ.
I ddatblygu'r bot ymhellach, mae angen i chi gysylltu'r bysellfwrdd, gweler enghreifftiau, er enghraifft,
11. Sut i ddiweddaru'r cod ac ailgychwyn y bot
Peidiwch ag anghofio bod angen i chi ddiweddaru'r cod nid yn unig ar github, ond hefyd ar y gweinydd. Mae'n hawdd gwneud hyn - stopiwch y bot (pwyswch ctrl + c),
- mynd i mewn i'r consol, gan fod yn y ffolder targed, git pull
- ailgychwyn y bot gyda'r gorchymyn node index.js
DIWEDD
Bydd llawer o'r pethau a ddisgrifir yn y ffeil hon yn hynod amlwg i raglenwyr uwch. Fodd bynnag, pan geisiais i fy hun neidio dros yr affwys i fyd y bots mewn un swoop syrthio, collais arweiniad o'r fath yn fawr. Canllaw nad yw'n colli pethau amlwg a syml i unrhyw arbenigwr TG.
Yn y dyfodol, rwy'n cynllunio post ar sut i wneud fy nghais cyntaf ar ReactNative yn yr un arddull, tanysgrifiwch!
Ffynhonnell: hab.com