Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

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:

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

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 tečaj na Codecademyju i bio jako oduševljen. Prvih 7 dana je besplatno. Pravi projekti. Preporučam. Izrada je trajala oko 25 sati. Zapravo, nije sve bilo korisno. Ovako izgleda struktura kolegija i prvi blok u detaljima.

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

2. Kako registrirati bota?

Ovo mi je puno pomoglo u početku ovaj članak s bloga izvjesnog Archakova. Žvače sam početak. Ali glavna stvar koja je tu su upute za registraciju bota. Ne mogu bolje napisati, a kako je ovo najlakši dio, napisat ću samo bit. Morate izraditi bota i dobiti njegov API. To se radi preko drugog bota - @BotFather. Pronađite ga na telegramu, pišite mu, slijedite jednostavnu stazu i nabavite (sačuvajte!) API ključ (ovo je skup brojeva i slova). Kasnije mi je dobro došlo.

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

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 telegraf, koje je trebalo nekako povezati s nečim pomoću npm-a ili pređe. Otprilike tako sam tada shvatio u čemu se sastoji implementacija bota. Smijte se ovdje. Neću se uvrijediti. U kasnijoj izradi bota najviše su mi pomogli primjeri na dnu stranice:

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

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 vscale.io Potrošio sam 100 rubalja i kupio najjeftiniji Ubuntu poslužitelj (vidi sliku).

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

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 nastava To će vam omogućiti da radite s poslužiteljem izravno putem konzole vašeg računala.

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 Atom, ali u stvarnosti možete jednostavno pisati u standardnu ​​bilježnicu. Glavna stvar je kasnije spremiti datoteku u željenu ekstenziju. To je kao da pišete tekst u Wordu i spremate ga.

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 Github i učinio novi projekt, gdje sam učitao datoteku. Nakon toga, morao sam smisliti kako postaviti prijenos datoteka s mog računa (otvorenog!) na poslužitelj u mapi bot (ako ste je iznenada napustili, samo napišite cd bot).

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 - ovdje je članak. Samo idite u svoju mapu i unesite naredbu za pokretanje bota

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()

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

Ako pogledate kod na Github, onda ćete brzo shvatiti da nisam otišao daleko od ove funkcionalnosti. Ono što se aktivno koristi je funkcija 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.

Vodič: kako napraviti jednostavan Telegram bot u JS za početnike u programiranju

Za daljnji razvoj bota morate spojiti tipkovnicu, pogledajte primjere, na primjer, stoga

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

Dodajte komentar