Počeo sam uroniti u svijet IT-a tek prije tri tjedna. Ozbiljno, prije tri tjedna nisam ni razumio HTML sintaksu, a moj uvod u programske jezike završio je školskim programom o Pascalu od prije 10 godina. Ipak, odlučio sam otići u informatički kamp, gdje bi bilo lijepo da djeca naprave bota. Zaključio sam da to i nije tako teško.
Ovo je počelo dugo putovanje na kojem sam:
- postavio poslužitelj u oblaku s Ubuntuom,
- registriran na GitHubu,
- naučili osnovnu JavaScript sintaksu,
- pročitao tonu članaka na engleskom i ruskom,
- napokon napravio bota,
- Napokon sam napisao ovaj članak.
Konačni rezultat je izgledao otprilike ovako:
Odmah ću reći da je ovo članak za početnike - samo da biste razumjeli kako raditi osnovne stvari od nule.
I također - za napredne programere - čisto da se malo nasmiju.
1. Kako napisati kod u JS?
Shvatio sam da je vrijedno barem prvo razumjeti sintaksu jezika. Izbor je pao na JavaScript, jednostavno zato što je sljedeći korak za mene bio kreiranje aplikacije u ReactNative-u. Počeo sam sa
2. Kako registrirati bota?
Ovo mi je puno pomoglo u početku
3. Kako izgleda kod bota?
Nakon što sam dugo proučavao članke, shvatio sam da se isplati koristiti neku vrstu biblioteke (kod treće strane u formatu modula) kako ne bih morao brinuti o proučavanju Telegram API-ja i stvaranju velikih dijelova koda od nule. Našao sam okvir
3. Kako stvoriti vlastiti poslužitelj u oblaku za 100 rubalja
Nakon dosta traženja, shvatio sam da se naredba 'npm' na gornjoj slici odnosi na naredbeni redak. Naredbeni redak je posvuda, ali da biste ga mogli izvršiti, morate instalirati NodePackageManager. Problem je bio u tome što sam programirao na PixelBooku s ChromeOS-om. Ovdje ću preskočiti veliki blok o tome kako sam naučio Linux - za većinu je prazan i nepotreban. Ako imate Windows ili MacBook, već imate konzolu.
Ukratko, instalirao sam Linux preko Crostinija.
Međutim, u procesu sam shvatio da mi je za konstantan rad bota (a ne samo kada mi je računalo uključeno) potreban cloud server. izabrao sam
4. Kako pripremiti poslužitelj za pokretanje bota
Nakon toga sam shvatio da moram na serveru napraviti nekakav folder u koji ću staviti datoteku s tekstom koda. Da bih to učinio, u konzolu (pokrenite izravno na web-mjestu putem gumba "Otvori konzolu") unio sam
mkdir bot
bot - ovo je postao naziv moje mape. Nakon toga sam instalirao npm i Node.js, što će mi omogućiti pokretanje koda iz datoteka s *.js rezolucijom
sudo apt update
sudo apt install nodejs
sudo apt install npm
Toplo preporučujem da u ovoj fazi postavite vezu s poslužiteljem putem svoje konzole. Ovdje
5. Kako napisati kod za svog prvog bota.
Ali sada je to za mene samo otkriće. Svaki program su samo linije teksta. Mogu se umetnuti bilo gdje, spremiti sa željenim nastavkom i to je to. prelijepa si Koristio sam
Napravio sam novu datoteku u koju sam ubacio kod iz primjera na telegraf stranici i spremio je u datoteku index.js (općenito nije potrebno tako imenovati datoteku, ali to je uobičajeno). Važno - umjesto BOT_TOKEN, umetnite svoj API ključ iz drugog paragrafa.
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. Kako uploadati kod na server putem githuba
Sada sam trebao nekako učitati ovaj kod na poslužitelj i pokrenuti ga. Ovo je za mene postao izazov. Kao rezultat toga, nakon mnogo muke, shvatio sam da bi bilo lakše stvoriti datoteku na githubu koja vam omogućuje ažuriranje koda pomoću naredbe u konzoli. Registrirao sam račun na
7. Kako uploadati datoteke na poslužitelj putem githuba 2. dio
Trebao sam instalirati program na poslužitelju koji će preuzimati datoteke s gita. Instalirao sam git na server upisivanjem u konzolu
apt-get install git
Nakon toga sam trebao konfigurirati prijenos datoteke. Da bih to učinio, upisao sam u naredbeni redak
git clone git://github.com/b0tank/bot.git bot
Kao rezultat toga, sve iz projekta je uploadano na server. Pogreška u ovoj fazi bila je ta što sam u biti napravio drugu mapu unutar već postojeće mape bota. Adresa datoteke izgledala je kao */bot/bot/index.js
Odlučio sam ignorirati ovaj problem.
A za učitavanje telegrafske biblioteke, koju tražimo u prvom redu koda, upišite naredbu u konzolu.
npm install telegraf
8. Kako pokrenuti bot
Da biste to učinili, dok ste u mapi s datotekom (za prelazak iz mape u mapu putem konzole, pokrenite naredbu format cd bot
Kako biste bili sigurni da ste tamo gdje trebate biti, možete unijeti naredbu koja će na konzoli prikazati sve datoteke i mape koje se tamo nalaze ls -a
Za početak sam ušao u konzolu
node index.js
Ako nema greške, sve je u redu, bot radi. Potražite ga na telegramu. Ako postoji greška, primijenite svoje znanje iz točke 1.
9. Kako pokrenuti bot u pozadini
Vrlo brzo ćete shvatiti da bot radi samo kada vi sami sjedite u konzoli. Za rješavanje ovog problema koristio sam naredbu
screen
Nakon toga pojavit će se zaslon s nekim tekstom. To znači da je sve u redu. Nalazite se na virtualnom poslužitelju na poslužitelju u oblaku. Da bismo bolje razumjeli kako sve to funkcionira -
node index.js
10. Kako bot radi i kako proširiti njegovu funkcionalnost
Što naš ogledni bot može učiniti? On može
bot.start((ctx) => ctx.reply('Welcome!'))
reci "Dobro došli!" u trenutku početka (pokušajte promijeniti tekst)
bot.help((ctx) => ctx.reply('Send me a sticker'))
kao odgovor na standardnu naredbu /help pošaljite poruku "Pošalji mi naljepnicu"
bot.on('sticker', (ctx) => ctx.reply(''))
poslati odobrenje kao odgovor na naljepnicu
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
odgovori "Hej tamo" ako mu napišu "bok".
bot.launch()
Ako pogledate kod na ctx.replyWithPhoto
Omogućuje vam da pošaljete određenu fotografiju ili gif kao odgovor na određeni tekst.
Značajan dio koda napisala su djeca od 11-13 godina, kojima sam dao pristup botu. Unijeli su svoj korisnički slučaj. Mislim da je lako reći koji su dio oni napravili.
Na primjer, poruka “Jake” dobit će GIF s poznatim likom iz crtića Vrijeme avanture.
Za daljnji razvoj bota morate spojiti tipkovnicu, pogledajte primjere, na primjer,
11. Kako ažurirati kod i ponovno pokrenuti bota
Ne zaboravite da morate ažurirati kod ne samo na githubu, već i na poslužitelju. To je lako učiniti - zaustavite bota (pritisnite ctrl+c),
- unesite u konzolu dok ste u ciljnoj mapi, git pull
— ponovno pokrećemo bot naredbom node index.js
KRAJ
Mnoge stvari opisane u ovoj datoteci bit će super očigledne naprednim programerima. Međutim, kada sam i sam jednim potezom pokušao preskočiti provaliju u svijet botova, takav vodič mi je jako nedostajao. Vodič koji ne propušta stvari koje su očite i jednostavne svakom IT stručnjaku.
U budućnosti planiram post o tome kako napraviti svoju prvu aplikaciju na ReactNative u istom stilu, pretplatite se!
Izvor: www.habr.com