Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

Je me suis plongé dans le monde de l'informatique il y a à peine trois semaines. Honnêtement, il y a trois semaines, je ne connaissais même pas la syntaxe HTML, et ma découverte des langages de programmation s'arrêtait à un vieux programme scolaire de Pascal d'il y a dix ans. Pourtant, j'ai décidé de participer à un camp IT, où il serait utile pour les enfants de créer un bot. Je me suis dit que ce n'était probablement pas si difficile.

C'est ainsi qu'a commencé un long chemin, au cours duquel j'ai :

  • déployé un serveur cloud avec Ubuntu,
  • créé un compte sur GitHub,
  • appris les bases de la syntaxe JavaScript,
  • lu une tonne d'articles en anglais et en russe,
  • enfin créé un bot,
  • et enfin écrit cet article.

Le résultat final ressemblait à peu près à ça :

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

Je le dis tout de suite, cet article est destiné aux débutants — pour comprendre simplement comment réaliser des tâches élémentaires depuis le point de départ.

Et aussi — pour les programmeurs avancés — juste pour les faire sourire un peu.

1. Comment écrire du code en JS ?

Je savais qu'il valait la peine de commencer par comprendre la syntaxe du langage. J'ai choisi JavaScript car ma prochaine étape était de créer une application en ReactNative. J'ai commencé par du cours Codecademy et j'ai été vraiment impressionné. Les premiers 7 jours sont gratuits. Projets réels. Je recommande. Cela m'a pris environ 25 heures. En réalité, pas tout n'était utile. Voici à peu près la structure du cours, et un aperçu du premier module.

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

2. Comment enregistrer un bot ?

Au début, j'ai beaucoup été aidé par cet article cet article d'un certain Archakov. Il explique vraiment les bases. Mais le plus important, c'est qu'il contient des instructions pour enregistrer le bot. Je ne peux pas mieux écrire, et puisque c'est la partie la plus facile, je vais simplement expliquer l'essentiel. Il faut créer un bot et obtenir son API. Cela se fait via un autre bot — @BotFather. Cherchez-le dans Telegram, écrivez-lui, suivez ce chemin simple et obtenez (enregistrez !) la clé API (une série de chiffres et de lettres). Je m'en suis servi plus tard.

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

3. À quoi ressemble le code du bot ?

Après une longue étude d'articles, j'ai compris qu'il valait mieux utiliser une bibliothèque (un code tiers sous forme de module), pour ne pas galérer avec l'étude de l'API de Telegram et la création de gros blocs de code depuis zéro. J'ai trouvé le framework telegraf, que je devais connecter à quelque chose via npm ou yarn. C'est à peu près ce que je comprenais alors de ce qu'impliquait le déploiement d'un bot. Riez si vous le souhaitez. Je ne suis pas fâché. Ce qui m'a le plus aidé lors de la création ultérieure du bot, ce sont les exemples mentionnés en bas de la page :

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

3. Comment créer son propre serveur cloud pour 100 roubles

Après de longues recherches, j'ai compris que la commande 'npm' de l'image ci-dessus concerne l'invite de commande. Il y a une invite de commande partout, mais pour pouvoir l'exécuter, il faut installer NodePackageManager. Le problème était que je programmais sur un PixelBook avec ChromeOS. Je vais ici sauter un grand bloc sur ma découverte de Linux — pour la plupart, c'est vide et inutile. Si vous avez Windows ou un MacBook, vous avez déjà une console.

En quelques mots, j'ai installé Linux via Crostini.

Cependant, au cours du processus, j'ai réalisé que pour faire fonctionner le bot en permanence (et pas seulement lorsque mon ordinateur est allumé), j'avais besoin d'un serveur cloud. J'ai choisi vscale.io J'ai déposé 100 roubles, acheté le serveur Ubuntu le moins cher (voir l'image).

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

4. Comment préparer le serveur pour exécuter le bot

Après cela, j'ai compris qu'il fallait créer un dossier sur le serveur où je mettrais le fichier avec le code. Pour cela, dans la console (lancez directement sur le site via le bouton 'Ouvrir la console'), j'ai tapé

mkdir bot

bot — это стало название моей папки. После этого я установил npm и Node.js, что позволит запускать мне потом код из файликов с разрешением *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Je recommande fortement à ce stade de configurer la connexion au serveur via votre propre console. Voici l'instruction Cela vous permettra de travailler sur le serveur directement depuis la console de votre ordinateur.

5. Comment écrire le code du premier bot.

Et maintenant, c'est une révélation pour moi. Tout programme n'est que des lignes de texte. On peut les taper n'importe où, les enregistrer avec l'extension souhaitée, et voilà. Vous êtes génial. J'ai utilisé Atom, mais en réalité, on peut simplement écrire dans le bloc-notes standard. L'important est d'enregistrer le fichier avec la bonne extension. C'est comme écrire du texte dans Word et l'enregistrer.

J'ai créé un nouveau fichier, dans lequel j'ai collé le code de l'exemple sur la page telegraf et je l'ai sauvegardé dans le fichier index.js (il n'est pas nécessaire de nommer le fichier ainsi, mais c'est la convention). Important : au lieu de BOT_TOKEN, insérez votre clé API du deuxième point.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Bienvenue!'))
bot.help((ctx) => ctx.reply('Envoyez-moi un autocollant'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Salut'))
bot.launch()

6. Comment transférer le code sur le serveur via github

Maintenant, j'avais besoin de mettre ce code sur le serveur et de le lancer. Cela a été un défi pour moi. Finalement, après de longues recherches, j'ai compris qu'il était plus simple de créer un fichier sur GitHub, qui permettrait de mettre à jour le code via une commande dans le terminal. J'ai créé un compte sur github et j'ai fait nouveau projet, où j'ai téléchargé le fichier. Après cela, je devais comprendre comment configurer le téléchargement des fichiers depuis mon compte (ouvert !) sur le serveur dans le dossier bot (si vous en êtes sorti — il suffit d'écrire cd bot).

7. Comment télécharger des fichiers sur le serveur via GitHub ch.2

Je devais installer sur le serveur un programme qui téléchargerait les fichiers depuis git. J'ai installé git sur le serveur en tapant dans le terminal

apt-get install git

Après cela, je devais configurer le téléchargement des fichiers. Pour cela, j'ai tapé dans la ligne de commande

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

В итоге все из проекта загрузилось на сервер. Ошибкой на данном этапе было, что я, по сути, сделал вторую папку внутри уже существующей папки bot. Адрес до файла выглядел как */bot/bot/index.js

J'ai décidé d'ignorer ce problème.

Et pour charger la bibliothèque telegraf, que nous demandons à la première ligne du code, tapez dans le terminal la commande.

npm install telegraf

8. Comment lancer le bot

Pour cela, étant dans le dossier contenant le fichier (pour naviguer entre les dossiers à l'aide du terminal — exécutez la commande au format cd bot Pour vous assurer que vous êtes bien là, vous pouvez taper la commande qui affichera dans le terminal tous les fichiers et dossiers qui s'y trouvent. ls -a

Pour lancer, j'ai tapé dans le terminal

node index.js

S'il n'y a pas d'erreur — tout va bien, le bot fonctionne. Cherchez-le sur Telegram. S'il y a une erreur — appliquez vos connaissances du point 1.

9. Comment lancer le bot en arrière-plan

Vous réaliserez assez vite que le bot ne fonctionne que lorsque vous êtes vous-même dans le terminal. Pour résoudre ce problème, j'ai utilisé la commande

screen

Après cela, un écran apparaîtra avec du texte. Cela signifie que tout va bien. Vous êtes sur un serveur virtuel dans le cloud. Pour mieux comprendre comment cela fonctionne — voici un article. Il suffit d'entrer dans votre dossier et de taper la commande pour lancer le bot.

node index.js

10. Comment fonctionne le bot et comment étendre ses fonctionnalités

Quelles sont les capacités de notre bot d'exemple ? Il peut

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

dire «Welcome!» au moment du démarrage (essayez de changer le texte)

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

en réponse à la commande standard /help, envoyer le message «Send me a sticker»

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

en réponse à un sticker, envoyer une approbation

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

répondre «Hey there» lorsqu'on lui écrit ‘hi’
bot.launch()

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

Si vous regardez le code sur github, vous comprendrez rapidement que je ne me suis pas éloigné de cette fonctionnalité. Ce qui est largement utilisé, c'est la fonction ctx.replyWithPhoto . Elle permet d'envoyer une photo ou un gif spécifié en réponse à un texte donné.

Une partie significative du code a été écrite par des enfants de 11 à 13 ans, à qui j'ai donné accès au bot. Ils ont introduit leurs cas d'utilisation. Je pense qu'il est facile de déterminer quelle partie a été réalisée par eux.

Par exemple, à un message « jake », une gif d'un personnage célèbre du dessin animé Adventure Time est envoyée.

Guide : comment créer un simple bot pour Telegram en JS pour les débutants en programmation

Pour développer davantage le bot, pour connecter le clavier, il faut regarder des exemples, par exemple, d'ici

11. Comment mettre à jour le code et redémarrer le bot

N'oubliez pas qu'il faut mettre à jour le code non seulement sur github, mais aussi sur le serveur. C'est facile à faire : arrêtez le bot (appuyez sur ctrl+c),

— saisissez dans la console, en étant dans le dossier cible, git pull
— redémarrez à nouveau le bot avec la commande node index.js

FIN

Beaucoup de choses décrites dans ce fichier seront super évidentes pour des programmeurs avancés. Cependant, lorsque j'ai tenté de sauter tout de suite dans le monde des bots, il me manquait vraiment un tel guide. Un guide qui ne passe pas sur des choses évidentes et simples pour n'importe quel spécialiste IT.

Je prévois un post sur la façon de créer votre première application en ReactNative dans le même style, abonnez-vous !

Source : habr.com

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster