Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

Vaig començar a submergir-me al món informàtic fa només tres setmanes. De debò, fa tres setmanes ni tan sols entenia la sintaxi HTML, i el coneixement dels llenguatges de programació va acabar amb un temari de Pascal de 10 anys. Tanmateix, vaig decidir anar a un campament informàtic, per als fills del qual estaria bé fer un bot. Vaig pensar que no era tan difícil.

Això va començar un llarg viatge, en el qual vaig:

  • va desplegar un servidor en núvol amb Ubuntu,
  • registrat a GitHub,
  • aprendre la sintaxi bàsica de JavaScript,
  • llegir un munt d'articles en anglès i rus,
  • finalment va fer un bot
  • finalment va escriure aquest post.

El resultat final va quedar així:

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

De seguida diré que aquest és un article per a principiants, només per entendre com fer coses elementals des del principi.

I també -per a programadors avançats- només per fer-los riure una mica.

1. Com escriure codi en JS?

Vaig entendre que valia la pena almenys entendre primer la sintaxi de la llengua. L'elecció va recaure en JavaScript, simplement perquè el següent pas per a mi va ser crear una aplicació a ReactNative. Vaig començar amb per descomptat a Codecademy i estava molt entusiasmat. Els primers 7 dies són gratuïts. Projectes reals. Recomano. El trajecte va durar unes 25 hores. De fet, no tot va ser útil. Així es veu l'estructura del curs i el primer bloc en detall.

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

2. Com registrar un bot?

Em va ajudar molt al principi aquest article del blog d'un tal Archakov. Mastega el principi. Però el més important són les instruccions per registrar el bot. No escriuré millor, i com que aquesta és la part més fàcil, només n'escriuré l'essència. Heu de crear un bot i obtenir la seva API. Això es fa mitjançant un altre bot: @BotFather. Trobeu-lo al telegrama, escriu-li, seguiu el camí senzill i obteniu (desa!) la clau API (és un conjunt de números i lletres). Em va ser útil més tard.

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

3. Com és el codi del bot?

Després d'un llarg estudi dels articles, em vaig adonar que val la pena utilitzar algun tipus de biblioteca (codi de tercers en format mòdul) per no patir d'estudiar l'API de telegram i crear grans peces de codi des de zero. Vaig trobar un marc telègraf, que havia d'estar connectat d'alguna manera a alguna cosa utilitzant npm o fil. Així és com vaig entendre llavors en què consistia el desplegament del bot. Riu aquí. No m'oferiré. Els exemples a la part inferior de la pàgina em van ajudar més durant la creació posterior del bot:

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

3. Com crear el vostre propi servidor al núvol per 100 rubles

Després de moltes cerques, vaig descobrir que l'ordre "npm" de la imatge de dalt es refereix a la línia d'ordres. La línia d'ordres és a tot arreu, però per poder executar-la, cal instal·lar el NodePackageManager. El problema era que estava programant en un PixelBook amb ChromeOS. Em saltaré un gran bloc aquí sobre com vaig conèixer Linux; per a la majoria, això és buit i innecessari. Si teniu Windows o un MacBook, ja teniu una consola.

En poques paraules, vaig instal·lar Linux mitjançant Crostini.

Tanmateix, en el procés, em vaig adonar que perquè el bot funcioni tot el temps (i no només quan el meu ordinador està encès), necessito un servidor al núvol. Vaig triar vscale.io Vaig llançar 100 rubles, vaig comprar el servidor Ubuntu més barat (vegeu la imatge).

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

4. Com preparar el servidor per executar el bot

Després d'això, em vaig adonar que necessitava fer alguna carpeta al servidor, en la qual posaria el fitxer amb el text del codi. Per fer-ho, a la consola (executa directament al lloc mitjançant el botó "Obrir la consola"), vaig conduir

mkdir bot

bot - aquest es va convertir en el nom de la meva carpeta. Després d'això, vaig instal·lar npm i Node.js, que em permetran executar codi des dels fitxers *.js.

sudo apt update
sudo apt install nodejs
sudo apt install npm

En aquesta fase, us recomano molt que configureu una connexió al servidor mitjançant la vostra consola. Aquí instrucció Això us permetrà treballar amb el servidor directament a través de la consola del vostre ordinador.

5. Com codificar el primer bot.

Ara això és només una revelació per a mi. Qualsevol programa és només línies de text. Podeu conduir-los a qualsevol lloc, desar-los amb l'extensió desitjada i ja està. Ets preciosa. jo solia Àtom, però realment, només podeu escriure en un bloc de notes estàndard. El més important és desar el fitxer més tard a l'extensió desitjada. És com escriure text en Word i desar-lo.

Vaig fer un fitxer nou, en el qual vaig inserir el codi de l'exemple de la pàgina de telegraf i el vaig desar al fitxer index.js (no cal posar el nom del fitxer així, però s'accepta). Important: en lloc de BOT_TOKEN, inseriu la vostra clau API del segon paràgraf.

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. Com enviar el codi al servidor mitjançant github

Ara havia de pujar d'alguna manera aquest codi al servidor i executar-lo. Per a mi es va convertir en un repte. Al final, després de moltes proves, em vaig adonar que seria més fàcil crear un fitxer a github que us permeti actualitzar el codi mitjançant una ordre a la consola. Vaig registrar un compte amb GitHub i ho va fer nou projecteon he penjat el fitxer. Després d'això, havia d'esbrinar com configurar la càrrega de fitxers des del meu compte (obert!) al servidor de la carpeta del bot (si el vas deixar de sobte, només has d'escriure cd bot).

7. Com pujar fitxers al servidor mitjançant github part 2

Necessitava posar un programa al servidor que descarregués fitxers de git. Vaig instal·lar git al servidor escrivint

apt-get install git

Després d'això, havia de configurar la càrrega de fitxers. Per fer-ho, vaig entrar a la línia d'ordres

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

Com a resultat, tot el projecte es va penjar al servidor. L'error en aquest punt va ser que bàsicament vaig fer una segona carpeta dins de la carpeta del bot ja existent. L'adreça del fitxer semblava */bot/bot/index.js

Vaig decidir ignorar aquest problema.

I per carregar la biblioteca de telegraf, que demanem a la primera línia de codi, escriviu l'ordre a la consola.

npm install telegraf

8. Com iniciar el bot

Per fer-ho, mentre esteu a la carpeta amb el fitxer (per passar d'una carpeta a una altra a través de la consola, executeu l'ordre format cd bot Per assegurar-vos que sou on necessiteu, podeu conduir en una ordre que mostrarà a la consola tots els fitxers i carpetes que hi ha. ls -a

Per començar, vaig entrar a la consola

node index.js

Si no hi ha cap error, tot està bé, el bot funciona. Busqueu-lo al telegrama. Si hi ha un error, apliqueu els vostres coneixements del punt 1.

9. Com executar el bot en segon pla

Ràpidament us adonareu que el bot només funciona quan esteu assegut a la consola. Per resoldre aquest problema he utilitzat l'ordre

screen

Després d'això, apareixerà una pantalla amb una mica de text. Això vol dir que tot està bé. Esteu en un servidor virtual en un servidor en núvol. Per entendre millor com funciona tot - aquí teniu l'article. Només cal que aneu a la vostra carpeta i escriviu l'ordre per iniciar el bot

node index.js

10. Com funciona el bot i com ampliar la seva funcionalitat

Què pot fer el nostre bot de l'exemple? Ell pot

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

digues "Benvingut!" en el moment de començar (intenta canviar el text)

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

en resposta a l'ordre estàndard /help, envieu el missatge "Envia'm un adhesiu"

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

enviar l'aprovació en resposta a un adhesiu

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

respon "Hola" si escriuen "hola"
bot.launch()

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

Si mireu el codi a GitHub, aleshores us adonareu ràpidament que no he anat gaire lluny d'aquesta funcionalitat. El que s'utilitza activament és la funció ctx.replyWithPhoto Us permet enviar una foto o un gif determinats en resposta a un text determinat.

Una part important del codi va ser escrit per nens d'entre 11 i 13 anys, als quals vaig donar accés al bot. Van introduir els seus casos d'usuari. Crec que és fàcil saber quina part van fer ells.

Per exemple, un GIF amb un personatge famós de la caricatura de Adventure Time arriba al missatge "jake".

Guia: com fer un bot senzill per a Telegram en JS per a un principiant en programació

Per desenvolupar encara més el bot, heu de connectar el teclat, vegeu exemples, per exemple, per tant

11. Com actualitzar el codi i reiniciar el bot

No oblideu que heu d'actualitzar el codi no només a github, sinó també al servidor. És fàcil fer-ho: atureu el bot (premeu ctrl + c),

- entrar a la consola, sent a la carpeta de destinació, git pull
- reinicieu el bot amb l'ordre node index.js

FI

Moltes de les coses descrites en aquest fitxer seran molt òbvies per als programadors avançats. Tanmateix, quan jo mateix vaig intentar saltar l'abisme al món dels robots d'un sol cop, vaig trobar a faltar una guia així. Una guia que no perd coses òbvies i senzilles per a qualsevol informàtic.

En el futur, planejaré una publicació sobre com fer la meva primera aplicació a ReactNative amb el mateix estil, subscriu-te!

Font: www.habr.com

Afegeix comentari