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 :
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
2. Comment enregistrer un bot ?
Cela m'a beaucoup aidé au début
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
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
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
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é
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
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 -
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()
Si vous regardez le code sur 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.
Pour développer davantage le bot, vous devez connecter un clavier, voir des exemples, par exemple,
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