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í:
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
2. Como rexistrar un bot?
Isto axudoume moito ao principio
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
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
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í
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
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
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 -
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()
Se miras o código en 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.
Para desenvolver aínda máis o bot, cómpre conectar un teclado, ver exemplos, por exemplo,
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