Jag började fördjupa mig i IT-världen för bara tre veckor sedan. Allvarligt talat, för tre veckor sedan förstod jag inte ens HTML-syntax, och min introduktion till programmeringsspråk slutade med en läroplan om Pascal från 10 år sedan. Men jag bestämde mig för att gå på ett IT-läger, där det skulle vara trevligt för barnen att göra en bot. Jag bestämde mig för att det knappast var så svårt.
Detta började en lång resa där jag:
- distribuerade en molnserver med Ubuntu,
- registrerad på GitHub,
- lärt sig grundläggande JavaScript-syntax,
- läs massor av artiklar på engelska och ryska,
- äntligen gjort en bot,
- Jag skrev äntligen den här artikeln.
Slutresultatet såg ut ungefär så här:
Jag ska genast säga att det här är en artikel för nybörjare - bara för att förstå hur man gör grundläggande saker från grunden.
Och även - för avancerade programmerare - bara för att få dem att skratta lite.
1. Hur skriver man kod i JS?
Jag förstod att det var värt att åtminstone förstå syntaxen i språket först. Valet föll på JavaScript, helt enkelt för att nästa steg för mig var att skapa en applikation i ReactNative. Jag började med
2. Hur registrerar man en bot?
Detta hjälpte mig mycket i början
3. Hur ser botkoden ut?
Efter att ha studerat artiklarna under en längre tid insåg jag att det var värt att använda något slags bibliotek (tredjepartskod i modulformat) för att inte behöva oroa mig för att studera Telegram API och skapa stora bitar av kod från grunden. Jag hittade ramverket
3. Hur man skapar din egen molnserver för 100 rubel
Efter mycket letande insåg jag att kommandot 'npm' i bilden ovan hänvisar till kommandoraden. Kommandoraden finns överallt, men för att kunna köra den måste du installera NodePackageManager. Problemet var att jag programmerade på en PixelBook med ChromeOS. Jag hoppar här över ett stort block om hur jag lärde mig Linux - för de flesta är det tomt och onödigt. Om du har Windows eller en MacBook har du redan en konsol.
I ett nötskal, jag installerade Linux via Crostini.
Men i processen insåg jag att för att boten ska fungera konstant (och inte bara när min dator är på) behöver jag en molnserver. jag valde
4. Hur man förbereder en server för att köra en bot
Efter det insåg jag att jag behövde göra någon form av mapp på servern där jag skulle lägga filen med kodtexten. För att göra detta, i konsolen (kör direkt på webbplatsen via knappen "Öppna konsol"), gick jag in
mkdir bot
bot - detta blev namnet på min mapp. Efter det installerade jag npm och Node.js, vilket gör att jag sedan kan köra kod från filer med *.js-upplösning
sudo apt update
sudo apt install nodejs
sudo apt install npm
Jag rekommenderar starkt att du konfigurerar en anslutning till servern via din konsol i detta skede. Här
5. Hur man skriver koden för din första bot.
Men nu är det bara en upptäckt för mig. Alla program är bara rader med text. De kan infogas var som helst, sparas med önskad förlängning, och det är allt. Du är vacker. jag använde
Jag gjorde en ny fil, i vilken jag infogade koden från exemplet på telegrafsidan och sparade den i filen index.js (i allmänhet är det inte nödvändigt att namnge filen på det sättet, men det är vanligt). Viktigt - istället för BOT_TOKEN, infoga din API-nyckel från andra stycket.
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. Hur man laddar upp kod till servern via github
Nu behövde jag på något sätt ladda upp den här koden till servern och köra den. Detta blev en utmaning för mig. Som ett resultat, efter mycket prövning, insåg jag att det skulle vara lättare att skapa en fil på github som låter dig uppdatera koden med ett kommando i konsolen. Jag registrerade ett konto på
7. Hur man laddar upp filer till servern via github del 2
Jag behövde installera ett program på servern som skulle ladda ner filer från git. Jag installerade git på servern genom att skriva in i konsolen
apt-get install git
Efter det behövde jag konfigurera filuppladdningen. För att göra detta skrev jag på kommandoraden
git clone git://github.com/b0tank/bot.git bot
Som ett resultat laddades allt från projektet upp till servern. Felet i detta skede var att jag i princip skapade en andra mapp i den redan befintliga botmappen. Adressen till filen såg ut som */bot/bot/index.js
Jag bestämde mig för att ignorera detta problem.
Och för att ladda telegrafbiblioteket, som vi begär i den första raden kod, skriv kommandot i konsolen.
npm install telegraf
8. Hur man startar en bot
För att göra detta, medan du är i mappen med filen (för att flytta från mapp till mapp via konsolen, kör formatkommandot cd bot
För att se till att du är där du behöver vara kan du ange ett kommando som visar alla filer och mappar som finns där i konsolen ls -a
För att börja gick jag in i konsolen
node index.js
Om det inte finns något fel är allt bra, boten fungerar. Leta efter honom på telegram. Om det finns ett fel, tillämpa dina kunskaper från punkt 1.
9. Hur man kör en bot i bakgrunden
Ganska snabbt kommer du att förstå att boten bara fungerar när du själv sitter i konsolen. För att lösa detta problem använde jag kommandot
screen
Efter detta kommer en skärm med lite text upp. Detta betyder att allt är bra. Du är på en virtuell server på en molnserver. För att bättre förstå hur det hela fungerar -
node index.js
10. Hur boten fungerar och hur man utökar dess funktionalitet
Vad kan vår exempelbot göra? Han kan
bot.start((ctx) => ctx.reply('Welcome!'))
säg "Välkommen!" vid startögonblicket (försök att ändra texten)
bot.help((ctx) => ctx.reply('Send me a sticker'))
som svar på standardkommandot /help, skicka meddelandet "Skicka ett klistermärke"
bot.on('sticker', (ctx) => ctx.reply(''))
skicka godkännande som svar på ett klistermärke
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
svara "Hej där" om de skriver "hej" till honom
bot.launch()
Om du tittar på koden på ctx.replyWithPhoto
Det låter dig skicka ett specifikt foto eller gif som svar på en specifik text.
En betydande del av koden skrevs av barn i åldrarna 11-13, som jag gav tillgång till boten. De angav sitt användarfall. Jag tror att det är lätt att säga vilken del som gjordes av dem.
Till exempel kommer meddelandet "Jake" att få en GIF med en känd karaktär från den tecknade Adventure Time.
För att utveckla boten vidare behöver du ansluta ett tangentbord, se exempel, t.ex.
11. Hur man uppdaterar koden och startar om boten
Glöm inte att du behöver uppdatera koden inte bara på github, utan även på servern. Detta är lätt att göra - stoppa boten (tryck ctrl+c),
- gå in i konsolen medan du är i målmappen, git pull
— vi startar boten igen med kommandot node index.js
SLUT
Många av de saker som beskrivs i den här filen kommer att vara superuppenbara för avancerade programmerare. Men när jag själv försökte hoppa över avgrunden till botsvärlden i ett svep saknade jag verkligen en sådan guide. En guide som inte missar saker som är självklara och enkla för vilken IT-specialist som helst.
I framtiden planerar jag ett inlägg om hur du gör din första ansökan på ReactNative i samma stil, prenumerera!
Källa: will.com