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

J'ai commencé à me plonger dans le monde de l'informatique il y a seulement trois semaines. Sérieusement, il y a trois semaines, je ne comprenais même pas la syntaxe HTML, et mon introduction aux langages de programmation s'est terminée par un programme scolaire sur Pascal d'il y a 10 ans. Cependant, j'ai décidé d'aller dans un camp informatique, où ce serait bien que les enfants créent un robot. J'ai décidé que ce n'était pas si difficile.

C’est le début d’un long voyage au cours duquel j’ai :

  • déployé un serveur cloud avec Ubuntu,
  • enregistré sur GitHub,
  • appris la syntaxe JavaScript de base,
  • lire une tonne d'articles en anglais et en russe,
  • j'ai enfin créé un bot,
  • J'ai finalement écrit cet article.

Le résultat final ressemblait à ceci :

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

Je dirai tout de suite qu'il s'agit d'un article destiné aux débutants - juste pour comprendre comment faire les choses de base à partir de zéro.

Et aussi – pour les programmeurs avancés – juste pour les faire rire un peu.

1. Comment écrire du code en JS ?

J'ai compris qu'il valait au moins comprendre d'abord la syntaxe du langage. Le choix s'est porté sur JavaScript, tout simplement parce que la prochaine étape pour moi était de créer une application en ReactNative. J'ai commencé avec cours sur Codecademy et j'ai été très ravi. Les 7 premiers jours sont gratuits. De vrais projets. Je recommande. Il a fallu environ 25 heures pour le terminer. En fait, tout cela n’a pas été utile. Voici à quoi ressemble la structure du cours et le premier bloc en détail.

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

2. Comment enregistrer un bot ?

Cela m'a beaucoup aidé au début Cet article du blog d'un certain Archakov. Il mâche dès le début. Mais l’essentiel, ce sont les instructions pour enregistrer un bot. Je ne peux pas mieux l’écrire, et comme c’est la partie la plus simple, je vais juste écrire l’essentiel. Vous devez créer un bot et obtenir son API. Cela se fait via un autre bot - @BotFather. Trouvez-le sur Telegram, écrivez-lui, suivez le chemin simple et obtenez (enregistrez !) une clé API (il s'agit d'un ensemble de chiffres et de lettres). Cela s'est avéré utile plus tard.

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

3. À quoi ressemble le code du bot ?

Après avoir longuement étudié les articles, j'ai réalisé qu'il valait la peine d'utiliser une sorte de bibliothèque (code tiers au format module) pour ne pas avoir à se soucier d'étudier l'API Telegram et de créer de gros morceaux de code à partir de zéro. J'ai trouvé le cadre télégraf, qui devait être connecté d'une manière ou d'une autre à quelque chose utilisant npm ou fil. C’est à peu près ainsi que j’ai compris alors en quoi consistait le déploiement d’un bot. Riez ici. Je ne serai pas offensé. Les exemples en bas de page m'ont le plus aidé lors de la création ultérieure du bot :

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

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

Après de nombreuses recherches, j'ai réalisé que la commande 'npm' dans l'image ci-dessus fait référence à la ligne de commande. La ligne de commande est partout, mais pour pouvoir l'exécuter, vous devez installer NodePackageManager. Le problème était que je programmais sur un PixelBook avec ChromeOS. Je vais sauter ici un gros bloc sur la façon dont j'ai appris Linux - pour la plupart, c'est vide et inutile. Si vous possédez Windows ou un MacBook, vous disposez déjà d'une console.

En un mot, j'ai installé Linux via Crostini.

Cependant, au cours du processus, j'ai réalisé que pour que le bot fonctionne 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épensé 100 roubles et acheté le serveur Ubuntu le moins cher (voir photo).

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

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

Après cela, j'ai réalisé que je devais créer une sorte de dossier sur le serveur dans lequel je mettrais le fichier avec le texte du code. Pour cela, dans la console (exécutable directement sur le site via le bouton « Ouvrir la console »), j'ai saisi

mkdir bot

bot - c'est devenu le nom de mon dossier. Après cela, j'ai installé npm et Node.js, ce qui me permettra ensuite d'exécuter du code à partir de fichiers avec une résolution *.js

sudo apt update
sudo apt install nodejs
sudo apt install npm

Je recommande fortement de configurer une connexion au serveur via votre console à ce stade. Ici instruction Cela vous permettra de travailler avec le serveur directement via la console de votre ordinateur.

5. Comment écrire le code de votre premier bot.

Mais maintenant, ce n’est qu’une découverte pour moi. Tout programme n'est que des lignes de texte. Ils peuvent être insérés n’importe où, enregistrés avec l’extension souhaitée, et c’est tout. Tu es belle. j'ai utilisé Atom, mais en réalité, vous pouvez simplement écrire dans un bloc-notes standard. L'essentiel est de sauvegarder le fichier ultérieurement dans l'extension souhaitée. C'est comme écrire du texte dans Word et l'enregistrer.

J'ai créé un nouveau fichier dans lequel j'ai inséré le code de l'exemple sur la page Telegraf et je l'ai enregistré dans le fichier index.js (en général, il n'est pas nécessaire de nommer le fichier de cette façon, mais c'est habituel). Important : au lieu de BOT_TOKEN, insérez votre clé API du deuxième paragraphe.

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. Comment télécharger du code sur le serveur via github

Maintenant, je devais d'une manière ou d'une autre télécharger ce code sur le serveur et l'exécuter. C’est devenu un défi pour moi. Du coup, après bien des épreuves, j'ai réalisé qu'il serait plus simple de créer sur github un fichier permettant de mettre à jour le code à l'aide d'une commande dans la console. J'ai créé un compte sur github et a fait nouveau projet, où j'ai téléchargé le fichier. Après cela, j'avais besoin de comprendre comment configurer le téléchargement de fichiers depuis mon compte (ouvert !) vers le serveur dans le dossier du bot (si vous le quittiez soudainement, écrivez simplement cd bot).

7. Comment télécharger des fichiers sur le serveur via github partie 2

J'avais besoin d'installer un programme sur le serveur qui téléchargerait des fichiers depuis git. J'ai installé git sur le serveur en tapant dans la console

apt-get install git

Après cela, j'ai dû configurer le téléchargement de fichiers. Pour ce faire, j'ai tapé dans la ligne de commande

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

En conséquence, tout le projet a été téléchargé sur le serveur. L'erreur à ce stade était que j'avais essentiellement créé un deuxième dossier dans le dossier du bot déjà existant. L'adresse du fichier ressemblait à */bot/bot/index.js

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

Et pour charger la bibliothèque telegraf, que nous demandons dans la première ligne de code, tapez la commande dans la console.

npm install telegraf

8. Comment lancer un bot

Pour cela, étant dans le dossier contenant le fichier (pour passer de dossier en dossier via la console, exécutez la commande format cd bot Pour vous assurer que vous êtes là où vous devez être, vous pouvez entrer une commande qui affichera dans la console tous les fichiers et dossiers qui s'y trouvent ls -a

Pour commencer, je suis entré dans la console

node index.js

S’il n’y a pas d’erreur, tout va bien, le bot fonctionne. Cherchez-le sur télégramme. S'il y a une erreur, appliquez vos connaissances du point 1.

9. Comment exécuter un bot en arrière-plan

Assez vite, vous vous rendrez compte que le bot ne fonctionne que lorsque vous êtes vous-même assis dans la console. Pour résoudre ce problème, j'ai utilisé la commande

screen

Après cela, un écran avec du texte apparaîtra. Cela signifie que tout va bien. Vous êtes sur un serveur virtuel sur un serveur cloud. Pour mieux comprendre comment tout cela fonctionne - voici l'article. Allez simplement dans votre dossier et entrez la commande pour lancer le bot

node index.js

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

Que peut faire notre exemple de bot ? Il peut

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

dites "Bienvenue!" 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, envoyez le message « Envoyez-moi un autocollant »

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

envoyer une approbation en réponse à un autocollant

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

répondez « Salut » s'ils lui écrivent « salut »
bot.launch()

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

Si vous regardez le code sur github, alors vous comprendrez vite que je ne suis pas allé très loin de cette fonctionnalité. Ce qui est activement utilisé, c'est la fonction ctx.replyWithPhoto Il vous permet d'envoyer une photo ou un gif spécifié en réponse à un texte spécifique.

Une partie importante du code a été écrite par des enfants âgés de 11 à 13 ans, à qui j'ai donné accès au bot. Ils ont saisi leur cas utilisateur. Je pense qu'il est facile de dire quelle pièce a été fabriquée par eux.

Par exemple, le message « Jake » recevra un GIF avec un personnage célèbre du dessin animé Adventure Time.

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

Pour développer davantage le bot, vous devez connecter un clavier, voir des exemples, par exemple, par conséquent,

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

N'oubliez pas que vous devez mettre à jour le code non seulement sur github, mais également sur le serveur. C'est facile à faire - arrêtez le bot (appuyez sur ctrl+c),

- entrer dans la console en étant dans le dossier cible, git pull
— on relance le bot avec la commande node index.js

FIN

La plupart des éléments décrits dans ce fichier seront très évidents pour les programmeurs avancés. Cependant, lorsque j'ai moi-même essayé de sauter par-dessus le gouffre vers le monde des robots d'un seul coup, un tel guide m'a vraiment manqué. Un guide qui ne manque pas de choses évidentes et simples pour tout informaticien.

À l'avenir, je prévois un article sur la façon de réaliser votre première application sur ReactNative dans le même style, abonnez-vous !

Source: habr.com

Ajouter un commentaire