Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

Aloin uppoutua IT-maailmaan vasta kolme viikkoa sitten. Vakavasti, kolme viikkoa sitten en edes ymmärtänyt HTML-syntaksia, ja ohjelmointikielten johdannoni päättyi 10 vuoden takaiseen Pascal-koulun opetussuunnitelmaan. Päätin kuitenkin mennä IT-leirille, jossa olisi kiva lasten tehdä botti. Päätin, että se tuskin on niin vaikeaa.

Tästä alkoi pitkä matka, jossa minä:

  • otti käyttöön pilvipalvelimen Ubuntun kanssa,
  • rekisteröity GitHubiin,
  • oppinut JavaScriptin perussyntaksin,
  • lukea paljon artikkeleita englanniksi ja venäjäksi,
  • vihdoin teki botin,
  • Kirjoitin vihdoin tämän artikkelin.

Lopputulos näytti tältä:

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

Sanon heti, että tämä on artikkeli aloittelijoille - vain ymmärtääkseni, kuinka perusasiat tehdään tyhjästä.

Ja myös - edistyneille ohjelmoijille - vain saadakseen heidät nauramaan.

1. Kuinka kirjoittaa koodia JS:ssä?

Ymmärsin, että kannattaa ensin ymmärtää ainakin kielen syntaksi. Valinta putosi JavaScriptiin yksinkertaisesti siksi, että seuraava askel minulle oli sovelluksen luominen ReactNativessa. Aloitin kanssa valuuttakurssi Codecademyssa ja oli erittäin iloinen. Ensimmäiset 7 päivää ovat ilmaisia. Oikeita projekteja. Minä suosittelen. Sen valmistuminen kesti noin 25 tuntia. Itse asiassa kaikesta ei ollut hyötyä. Tältä näyttää kurssin rakenne ja ensimmäinen lohko yksityiskohtaisesti.

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

2. Miten botti rekisteröidään?

Tämä auttoi minua paljon alussa Tämä artikkeli tietyn Archakovin blogista. Hän pureskelee alusta. Mutta tärkeintä on botin rekisteröintiohjeet. En voi kirjoittaa sitä paremmin, ja koska tämä on helpoin osa, kirjoitan vain olemuksen. Sinun on luotava botti ja hankittava sen API. Tämä tehdään toisen botin kautta - @BotFather. Etsi hänet sähkeestä, kirjoita hänelle, seuraa yksinkertaista polkua ja hanki (tallenna!) API-avain (tämä on joukko numeroita ja kirjaimia). Siitä tuli myöhemmin hyötyä.

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

3. Miltä bot-koodi näyttää?

Pitkään tutkittuani artikkeleita ymmärsin, että kannattaa käyttää jonkinlaista kirjastoa (kolmannen osapuolen koodi moduulimuodossa), jotta ei tarvitsisi huolehtia Telegram API:n opiskelusta ja suurten koodipalojen luomisesta tyhjästä. Löysin puitteet lennätin, joka piti jotenkin yhdistää johonkin npm:llä tai langalla. Suunnilleen näin ymmärsin silloin, mistä botin käyttöönotto koostuu. Naura täällä. En loukkaannu. Sivun alareunassa olevat esimerkit auttoivat minua eniten myöhemmässä botin luomisessa:

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

3. Kuinka luoda oma pilvipalvelin 100 ruplaa

Pitkän etsimisen jälkeen tajusin, että yllä olevan kuvan 'npm'-komento viittaa komentoriville. Komentorivi on kaikkialla, mutta jotta voit suorittaa sen, sinun on asennettava NodePackageManager. Ongelmana oli, että ohjelmoin PixelBookilla, jossa oli ChromeOS. Ohitan tässä suuren osan siitä, kuinka opin Linuxin - useimmille se on tyhjä ja tarpeeton. Jos sinulla on Windows tai MacBook, sinulla on jo konsoli.

Lyhyesti sanottuna asensin Linuxin Crostinin kautta.

Kuitenkin prosessin aikana ymmärsin, että tarvitsen pilvipalvelimen, jotta botti toimisi jatkuvasti (eikä vain tietokoneen ollessa päällä). minä valitsin vscale.io Käytin 100 ruplaa ja ostin halvimman Ubuntu-palvelimen (katso kuva).

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

4. Kuinka valmistella palvelin ajamaan bottia

Sen jälkeen tajusin, että minun piti tehdä palvelimelle jonkinlainen kansio, johon laittaisin tiedoston kooditekstineen. Tätä varten kirjoitin konsoliin (suorita suoraan verkkosivustolla "Avaa konsoli" -painikkeen kautta)

mkdir bot

bot - tästä tuli kansioni nimi. Sen jälkeen asensin npm:n ja Node.js:n, joiden avulla voin suorittaa koodin tiedostoista *.js-resoluutiolla

sudo apt update
sudo apt install nodejs
sudo apt install npm

Suosittelen tässä vaiheessa yhteyden muodostamista palvelimeen konsolin kautta. Tässä opetus Näin voit työskennellä palvelimen kanssa suoraan tietokoneesi konsolin kautta.

5. Kuinka kirjoittaa koodi ensimmäiselle bottillesi.

Mutta nyt se on minulle vain löytö. Mikä tahansa ohjelma on vain tekstirivejä. Ne voidaan lisätä mihin tahansa, tallentaa halutulla laajennuksella, ja siinä se. Sinä olet kaunis. käytin Atomi, mutta todellisuudessa voit kirjoittaa tavalliseen muistilehtiöön. Tärkeintä on tallentaa tiedosto myöhemmin haluttuun laajennukseen. Se on kuin tekstin kirjoittaminen Wordiin ja sen tallentaminen.

Tein uuden tiedoston, johon laitoin telegraf-sivulla olevan esimerkin koodin ja tallensin sen index.js tiedostoon (yleensä tiedostoa ei tarvitse nimetä sillä tavalla, mutta tämä on tapana). Tärkeää - lisää API-avain toisesta kappaleesta BOT_TOKENin sijaan.

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. Kuinka ladata koodi palvelimelle githubin kautta

Nyt minun piti jotenkin ladata tämä koodi palvelimelle ja suorittaa se. Tästä tuli minulle haaste. Tämän seurauksena monien koettelemusten jälkeen tajusin, että olisi helpompi luoda githubiin tiedosto, jonka avulla voit päivittää koodin konsolin komennolla. Rekisteröin tilin GitHub ja teki uusi projekti, johon latasin tiedoston. Sen jälkeen minun piti selvittää, kuinka määrittää tiedostojen lataaminen tililtäni (avoin!) bot-kansion palvelimelle (jos jätit sen yhtäkkiä, kirjoita vain cd bot).

7. Kuinka ladata tiedostoja palvelimelle githubin osan 2 kautta

Minun piti asentaa palvelimelle ohjelma, joka lataa tiedostoja gitistä. Asensin git palvelimelle kirjoittamalla konsoliin

apt-get install git

Sen jälkeen minun piti määrittää tiedoston lataus. Tätä varten kirjoitin komentoriville

git clone git://github.com/b0tank/bot.git bot

Tämän seurauksena kaikki projektista ladattiin palvelimelle. Virhe tässä vaiheessa oli, että tein käytännössä toisen kansion jo olemassa olevan bot-kansion sisään. Tiedoston osoite näytti muodossa */bot/bot/index.js

Päätin jättää tämän ongelman huomioimatta.

Ja ladataksesi telegraf-kirjaston, jota pyydämme ensimmäisellä koodirivillä, kirjoita komento konsoliin.

npm install telegraf

8. Kuinka käynnistää botti

Voit tehdä tämän ollessasi kansiossa tiedoston kanssa (siirtyäksesi kansiosta kansioon konsolin kautta, suorita format-komento cd bot Varmistaaksesi, että olet siellä, missä sinun on oltava, voit kirjoittaa komennon, joka näyttää konsolissa kaikki siellä olevat tiedostot ja kansiot ls -a

Aluksi astuin konsoliin

node index.js

Jos virhettä ei ole, kaikki on hyvin, botti toimii. Etsi häntä sähkeestä. Jos on virhe, käytä tietämystäsi kohdasta 1.

9. Kuinka käyttää bottia taustalla

Melko nopeasti huomaat, että botti toimii vain, kun itse istut konsolissa. Tämän ongelman ratkaisemiseksi käytin komentoa

screen

Tämän jälkeen näyttöön tulee tekstiä sisältävä näyttö. Tämä tarkoittaa, että kaikki on hyvin. Olet virtuaalipalvelimella pilvipalvelimella. Ymmärtääksesi paremmin, kuinka se kaikki toimii - Tässä on artikkeli. Mene vain kansioon ja anna komento käynnistääksesi botin

node index.js

10. Miten botti toimii ja miten sen toimintoja voidaan laajentaa

Mitä esimerkkibotimme voi tehdä? Hän voi

bot.start((ctx) => ctx.reply('Welcome!'))

sano "Tervetuloa!" aloitushetkellä (kokeile muuttaa tekstiä)

bot.help((ctx) => ctx.reply('Send me a sticker'))

vastauksena tavalliseen /help-komentoon, lähetä viesti "Lähetä minulle tarra"

bot.on('sticker', (ctx) => ctx.reply(''))

lähetä hyväksyntä vastauksena tarraan

bot.hears('hi', (ctx) => ctx.reply('Hey there'))

vastaa "Hei", jos he kirjoittavat hänelle "hei".
bot.launch()

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

Jos katsot koodia osoitteessa GitHub, ymmärrät nopeasti, että en ole mennyt kovin kauas tästä toiminnosta. Se, mitä aktiivisesti käytetään, on toiminto ctx.replyWithPhoto Sen avulla voit lähettää tietyn kuvan tai gif-tiedoston vastauksena tiettyyn tekstiin.

Merkittävä osa koodista oli 11-13-vuotiaiden lasten kirjoittamia, joille annoin pääsyn bottiin. He tulivat sisään käyttäjätapaukseensa. Mielestäni on helppo sanoa, mikä osa on heidän valmistamansa.

Esimerkiksi viesti "Jake" saa GIF-kuvan, jossa on kuuluisa hahmo sarjakuvasta Adventure Time.

Opas: kuinka tehdä yksinkertainen Telegram-botti JS:ssä ohjelmoinnin aloittelijalle

Botin kehittämiseksi edelleen sinun on yhdistettävä näppäimistö, katso esimerkkejä esim. siten

11. Kuinka päivittää koodi ja käynnistää botti uudelleen

Älä unohda, että sinun on päivitettävä koodi paitsi githubissa myös palvelimella. Tämä on helppo tehdä - pysäytä botti (paina ctrl+c),

- mene konsoliin ollessasi kohdekansiossa, git pull
- käynnistämme botin uudelleen komennolla node index.js

END

Monet tässä tiedostossa kuvatuista asioista ovat erittäin ilmeisiä edistyneille ohjelmoijille. Kuitenkin, kun itse yritin hypätä kuilun yli bottien maailmaan yhdellä iskulla, ikävöin todella tällaista opasta. Opas, joka ei unohda asioita, jotka ovat ilmeisiä ja yksinkertaisia ​​kenelle tahansa IT-asiantuntijalle.

Tulevaisuudessa suunnittelen postauksen siitä, kuinka voit tehdä ensimmäisen hakemuksesi ReactNativessa samalla tyylillä, tilaa!

Lähde: will.com

Lisää kommentti