Guía: como facer un simple bot de Telegram en JS para un principiante en programación

Comecei a mergullarme no mundo das TIC hai só tres semanas. En serio, hai tres semanas nin sequera entendía a sintaxe HTML, e a miña introdución ás linguaxes de programación rematou cun currículo escolar sobre Pascal de hai 10 anos. Non obstante, decidín ir a un campamento de informática, onde sería bo que os nenos fixeran un bot. Decidín que non era tan difícil.

Isto comezou unha longa viaxe na que eu:

  • implementou un servidor na nube con Ubuntu,
  • rexistrado en GitHub,
  • aprendeu a sintaxe básica de JavaScript,
  • le un montón de artigos en inglés e ruso,
  • finalmente fixo un bot,
  • Finalmente escribín este artigo.

O resultado final foi algo así:

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

Direi de inmediato que este é un artigo para principiantes, só para entender como facer cousas básicas desde cero.

E tamén -para programadores avanzados- só para facerlles rir un pouco.

1. Como escribir código en JS?

Entendín que pagaba a pena polo menos comprender antes a sintaxe da lingua. A elección recaeu en JavaScript, simplemente porque o seguinte paso para min foi crear unha aplicación en ReactNative. Comecei con curso en Codecademy e quedou moi encantado. Os primeiros 7 días son gratuítos. Proxectos reais. Eu recomendo. Completalo levou unhas 25 horas. De feito, non todo foi útil. Así se ve a estrutura do curso e o primeiro bloque en detalle.

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

2. Como rexistrar un bot?

Isto axudoume moito ao principio este artigo do blog dun tal Archakov. El mastiga o principio. Pero o principal é que hai instrucións para rexistrar un bot. Non podo escribilo mellor, e como esta é a parte máis sinxela, escribirei a esencia. Debes crear un bot e obter a súa API. Isto faise a través doutro bot - @BotFather. Atópao en Telegram, escríbeo, segue o camiño sinxelo e obtén (garda!) unha clave API (este é un conxunto de números e letras). Foi útil despois.

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

3. Como é o código do bot?

Despois de estudar os artigos durante moito tempo, decateime de que pagaba a pena utilizar algún tipo de biblioteca (código de terceiros en formato módulo) para non ter que preocuparse de estudar a API de Telegram e de crear grandes pezas de código dende cero. Atopei o marco telégrafo, que debía estar conectado dalgún xeito a algo usando npm ou yarn. Así é aproximadamente como entendín entón en que consistía a implantación dun bot. Ri aquí. Non me ofenderei. Os exemplos da parte inferior da páxina servíronme máis durante a posterior creación do bot:

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

3. Como crear o teu propio servidor na nube por 100 rublos

Despois de moitas buscas, decateime de que o comando "npm" da imaxe superior refírese á liña de comandos. A liña de comandos está en todas partes, pero para poder executala, cómpre instalar NodePackageManager. O problema foi que estaba programando nun PixelBook con ChromeOS. Saltarei aquí un gran bloque sobre como aprendín Linux - para a maioría é baleiro e innecesario. Se tes Windows ou un MacBook, xa tes unha consola.

En poucas palabras, instalei Linux a través de Crostini.

Non obstante, no proceso, decateime de que para que o bot funcione constantemente (e non só cando o meu ordenador está acendido), necesito un servidor na nube. escollín vscale.io Gastei 100 rublos e comprei o servidor Ubuntu máis barato (ver imaxe).

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

4. Como preparar un servidor para executar un bot

Despois diso, decateime de que necesitaba facer algún tipo de cartafol no servidor no que poñería o ficheiro co texto do código. Para iso, na consola (executa directamente no sitio web a través do botón "Abrir consola"), entrei

mkdir bot

bot - este pasou a ser o nome do meu cartafol. Despois diso, instalei npm e Node.js, o que me permitirá executar código desde ficheiros con resolución *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Recomendo encarecidamente configurar unha conexión co servidor a través da súa consola nesta fase. Aquí educación Isto permitirache traballar co servidor directamente a través da consola do teu ordenador.

5. Como escribir o código do teu primeiro bot.

Pero agora só é un descubrimento para min. Calquera programa é só liñas de texto. Pódense inserir en calquera lugar, gardar a extensión desexada e xa está. Eres fermosa. usei Átomo, pero en realidade, só pode escribir nun bloc de notas estándar. O principal é gardar o ficheiro máis tarde na extensión desexada. É como escribir texto en Word e gardalo.

Fixen un ficheiro novo, no que introducín o código do exemplo da páxina telegraf e gardeino no ficheiro index.js (en xeral non é necesario nomear o ficheiro así, pero é habitual). Importante: en lugar de BOT_TOKEN, insira a súa clave API desde o segundo parágrafo.

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. Como cargar código ao servidor a través de github

Agora necesitaba dalgunha maneira cargar este código ao servidor e executalo. Isto converteuse nun reto para min. Como resultado, despois de moito calvario, decateime de que sería máis doado crear un ficheiro en github que che permita actualizar o código mediante un comando na consola. Rexistrei unha conta en GitHub e fixo novo proxecto, onde subín o ficheiro. Despois diso, necesitaba descubrir como configurar a carga de ficheiros da miña conta (aberto!) ao servidor no cartafol do bot (se o deixaches de súpeto, só tes que escribir cd bot).

7. Como cargar ficheiros ao servidor mediante github parte 2

Necesitaba instalar un programa no servidor que descargase ficheiros de git. Instalei git no servidor escribindo na consola

apt-get install git

Despois diso necesitaba configurar a carga do ficheiro. Para facelo, escribín na liña de comandos

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

Como resultado, todo o proxecto foi cargado ao servidor. O erro nesta fase foi que esencialmente fixen un segundo cartafol dentro do cartafol do bot xa existente. O enderezo do ficheiro parecía */bot/bot/index.js

Decidín ignorar este problema.

E para cargar a biblioteca de telegraf, que solicitamos na primeira liña de código, escriba o comando na consola.

npm install telegraf

8. Como lanzar un bot

Para iso, mentres está no cartafol co ficheiro (para pasar de cartafol a cartafol a través da consola, execute o comando format cd bot Para asegurarse de que está onde precisa estar, pode introducir un comando que mostrará na consola todos os ficheiros e cartafoles que hai ls -a

Para comezar, entrei na consola

node index.js

Se non hai erro, todo está ben, o bot funciona. Búscao no telegram. Se hai algún erro, aplica os teus coñecementos do punto 1.

9. Como executar un bot en segundo plano

Moi rápido entenderás que o bot só funciona cando ti estás sentado na consola. Para resolver este problema usei o comando

screen

Despois disto, aparecerá unha pantalla con algún texto. Isto significa que todo está ben. Estás nun servidor virtual nun servidor na nube. Para entender mellor como funciona todo - aquí está o artigo. Só tes que ir ao teu cartafol e introducir o comando para iniciar o bot

node index.js

10. Como funciona o bot e como ampliar a súa funcionalidade

Que pode facer o noso bot de exemplo? El pode

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

dicir "Benvido!" no momento de comezar (proba a cambiar o texto)

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

en resposta ao comando estándar /help, envía a mensaxe "Envíame un adhesivo"

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

enviar a aprobación en resposta a un adhesivo

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

contesta "Ola" se lle escriben "ola".
bot.launch()

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

Se miras o código en GitHub, entón entenderás axiña que non fun moi lonxe desta funcionalidade. O que se usa activamente é a función ctx.replyWithPhoto Permítelle enviar unha foto ou gif especificada en resposta a un texto específico.

Unha parte importante do código foi escrita por nenos de 11 a 13 anos, aos que lles dei acceso ao bot. Introduciron o seu caso de usuario. Creo que é doado saber que parte fixeron eles.

Por exemplo, a mensaxe "Jake" recibirá un GIF cun famoso personaxe do debuxo animado Adventure Time.

Guía: como facer un simple bot de Telegram en JS para un principiante en programación

Para desenvolver aínda máis o bot, cómpre conectar un teclado, ver exemplos, por exemplo, por iso

11. Como actualizar o código e reiniciar o bot

Non esquezas que precisas actualizar o código non só en github, senón tamén no servidor. Isto é doado de facer: detén o bot (preme ctrl+c),

- entrar na consola mentres está no cartafol de destino, git pull
— iniciamos de novo o bot co comando node index.js

FIN

Moitas das cousas descritas neste ficheiro serán moi obvias para os programadores avanzados. Non obstante, cando eu mesmo tentei saltar o abismo ao mundo dos bots dunha soa vez, perdín moito tal guía. Unha guía que non perde cousas que resultan obvias e sinxelas para calquera especialista en informática.

No futuro, estou a planear unha publicación sobre como facer a túa primeira aplicación en ReactNative co mesmo estilo, subscríbete!

Fonte: www.habr.com

Engadir un comentario