Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

Ich habe vor drei Wochen mit dem Einstieg in die IT-Welt begonnen. Ehrlich gesagt, vor drei Wochen verstand ich nicht einmal die Syntax von HTML, und meine Erfahrungen mit Programmiersprachen beschränkten sich auf das Schulprogramm von Pascal, das vor 10 Jahren war. Dennoch entschloss ich mich, in ein IT-Camp zu fahren, um für Kinder einen Bot zu erstellen. Ich dachte, dass es wahrscheinlich nicht so schwer sein würde.

So begann ein langer Weg, auf dem ich:

  • einen Cloud-Server mit Ubuntu eingerichtet habe,
  • mich bei GitHub registriert habe,
  • die grundlegende Syntax von JavaScript gelernt habe,
  • eine Menge Artikel auf Englisch und Russisch gelesen habe,
  • endlich einen Bot erstellt habe,
  • und schließlich diesen Artikel geschrieben habe.

Das Endergebnis sah ungefähr so aus:

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

Ich sage gleich, dies ist ein Artikel für Anfänger, um einfach zu verstehen, wie man grundlegende Dinge von der absoluten Null aus macht.

Und außerdem für fortgeschrittene Programmierer, einfach um sie ein wenig zum Lachen zu bringen.

1. Wie schreibt man Code in JS?

Ich wusste, dass ich zuerst wenigstens die Syntax der Sprache verstehen sollte. Die Wahl fiel auf JavaScript, einfach weil der nächste Schritt für mich die Erstellung einer Anwendung in ReactNative war. Ich begann mit des Kurses Codecademy und war begeistert. Die ersten 7 Tage sind kostenlos. Reale Projekte. Ich empfehle es. Die Bearbeitung dauerte etwa 25 Stunden. In Wirklichkeit war nicht alles davon für mich nützlich. So sieht die Struktur des Kurses ungefähr aus, und hier ist der erste Block im Detail.

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

2. Wie registriert man einen Bot?

Am Anfang hat mir sehr geholfen dieser diesen Artikel Blog von einem gewissen Archakow. Er erklärt die Grundlagen. Aber das Wichtigste, was dort ist, ist die Anleitung zur Registrierung des Bots. Besser kann ich es nicht schreiben, und da dies der einfachste Teil ist, gebe ich nur das Wesentliche wieder. Man muss einen Bot erstellen und seine API erhalten. Dies geschieht über einen anderen Bot – @BotFather. Finden Sie ihn in Telegram, schreiben Sie ihm, gehen Sie diesen einfachen Weg und erhalten Sie (speichern Sie!) den API-Schlüssel (eine Kombination aus Zahlen und Buchstaben). Ich brauchte ihn später.

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

3. Wie sieht der Code des Bots aus?

Nach langer Studienarbeit habe ich verstanden, dass ich eine Bibliothek (dritten Code im Modulformat) verwenden sollte, um mich nicht mit der Studie der Telegram-API und der Erstellung großer Codeabschnitte von Grund auf herumzuschlagen. Ich fand das Framework telegraf., das man irgendwie mit etwas über npm oder yarn verbinden musste. So verstand ich damals, woraus die Bereitstellung des Bots besteht. Hier lachen. Ich werde nicht beleidigt sein. Vor allem bei der späteren Erstellung des Bots haben mir die Beispiele unten auf der Seite geholfen:

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

3. Wie man einen eigenen Cloud-Server für 100 Rubel erstellt

Nach langem Suchen verstand ich, dass der Befehl ‚npm‘ aus dem obenstehenden Bild zur Eingabeaufforderung gehört. Die Eingabeaufforderung gibt es überall, aber um sie auszuführen, muss man den NodePackageManager installieren. Das Problem war, dass ich auf einem PixelBook mit ChromeOS programmiert habe. Ich lasse hier einen großen Abschnitt über meine Erfahrungen mit Linux aus — für die meisten ist das leer und unnötig. Wenn Sie Windows oder ein MacBook haben, haben Sie bereits eine Konsole.

Kurz gesagt, ich habe Linux über Crostini installiert.

Im Prozess verstand ich jedoch, dass ich für den fortlaufenden Betrieb des Bots (und nicht nur, wenn mein Computer eingeschaltet ist) einen Cloud-Server benötige. Ich wählte vscale.io Ich habe 100 Rubel eingezahlt und den günstigsten Ubuntu-Server gekauft (siehe Bild).

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

4. Wie man den Server für den Bot-Start vorbereitet

Danach verstand ich, dass ich auf dem Server einen Ordner erstellen muss, in den ich die Datei mit dem Code lege. Dazu gab ich in der Konsole (direkt auf der Website über die Schaltfläche „Konsole öffnen“ starten) ein

mkdir bot

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

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ich empfehle dringend, in diesem Schritt eine Verbindung zum Server über Ihre eigene Konsole einzurichten. Hier Anleitung Das ermöglicht es Ihnen, direkt über die Konsole Ihres Computers mit dem Server zu arbeiten.

5. Wie man den Code des ersten Bots schreibt.

Und jetzt ist es für mich ganz einfach. Jedes Programm ist einfach nur Textzeilen. Man kann sie überall eingeben, mit der gewünschten Erweiterung speichern und das war's. Du bist großartig. Ich habe verwendet Atom, aber ehrlich gesagt kann man auch einfach im Standard-Notizblock schreiben. Wichtig ist, die Datei später mit der richtigen Erweiterung zu speichern. Das ist wie Text in Word zu schreiben und zu speichern.

Ich habe eine neue Datei erstellt, in die ich den Code aus dem Beispiel auf der Telegraf-Seite eingefügt habe, und sie als index.js gespeichert (es ist nicht unbedingt notwendig, die Datei so zu nennen, aber es ist üblich). Wichtig: Ersetzen Sie den BOT_TOKEN durch Ihren API-Schlüssel aus dem zweiten Punkt.

const Telegraf = require('telegraf')

const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Willkommen!'))
bot.help((ctx) => ctx.reply('Schicken Sie mir einen Aufkleber'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hallo'))
bot.launch()

6. Wie man den Code über GitHub auf den Server hochlädt

Jetzt musste ich diesen Code irgendwie auf den Server hochladen und ausführen. Für mich wurde das zu einer Herausforderung. Letztendlich stellte ich nach langem Suchen fest, dass es einfacher wäre, eine Datei auf github zu erstellen, die es erlaubt, den Code über einen Befehl in der Konsole zu aktualisieren. Ich habe ein Konto auf github eröffnet und ein neues Projekt, in das ich die Datei hochgeladen habe. Danach musste ich herausfinden, wie ich das Hochladen von Dateien von meinem (offenen!) Konto auf den Server in den Ordner bot einrichten kann (falls Sie versehentlich aus diesem herausgegangen sind - geben Sie einfach cd bot ein).

7. Wie man Dateien über github auf den Server hochlädt Teil 2

Ich musste das Programm auf dem Server installieren, das Dateien von git hochlädt. Ich habe git auf dem Server installiert, indem ich in die Konsole eingegeben habe

apt-get install git

Danach musste ich das Hochladen von Dateien einrichten. Dazu habe ich in die Eingabeaufforderung eingegeben

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

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

Ich entschied mich, dieses Problem zu ignorieren.

Und um die Bibliothek telegraf zu laden, die wir in der ersten Zeile des Codes anfordern, geben Sie in die Konsole den Befehl ein.

npm install telegraf

8. Wie man den Bot startet

Dazu sollten Sie sich im Ordner mit der Datei befinden (um von Ordner zu Ordner in der Konsole zu wechseln, verwenden Sie den Befehl im Format cd bot Um sicherzustellen, dass Sie dort sind, wo Sie müssen, können Sie einen Befehl eingeben, der in der Konsole alle Dateien und Ordner anzeigt, die dort liegen ls -a

Um zu starten, habe ich in die Konsole eingegeben

node index.js

Wenn es keinen Fehler gibt - alles ist gut, der Bot funktioniert. Suchen Sie ihn in Telegram. Wenn ein Fehler auftritt - wenden Sie Ihr Wissen aus Punkt 1 an.

9. Wie man den Bot im Hintergrund ausführt

Sie werden schnell feststellen, dass der Bot nur funktioniert, wenn Sie selbst in der Konsole sitzen. Um dieses Problem zu lösen, habe ich den Befehl verwendet

Nun bleibt nur noch, den Bot zu starten. Um Prozesse auf dem Server zu starten, benutze ich gerne

Nach diesem erscheint ein Bildschirm mit irgendeinem Text. Das bedeutet, dass alles gut ist. Sie befinden sich auf einem virtuellen Server in der Cloud. Um besser zu verstehen, wie das alles funktioniert - hier ist ein Artikel. Gehen Sie einfach in Ihren Ordner und geben Sie den Befehl zum Starten des Bots ein

node index.js

10. Wie der Bot funktioniert und wie man seine Funktionalität erweitert

Was kann unser Bot aus dem Beispiel? Er kann

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

„Willkommen!“ beim Start sagen (versuchen Sie, den Text zu ändern)

bot.help((ctx) => ctx.reply('Senden Sie mir einen Sticker'))

als Antwort auf das Standardkommando /help die Nachricht „Senden Sie mir einen Sticker“ senden

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

als Antwort auf einen Sticker Zustimmung senden

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

„Hey there“ antworten, wenn man ihm 'hi' schreibt
bot.launch()

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

Wenn Sie sich den Code ansehen, github, werden Sie schnell feststellen, dass ich von dieser Funktionalität nicht allzu weit abgewichen bin. Was aktiv genutzt wird, ist die Funktion ctx.replyWithPhoto Sie ermöglicht es, ein bestimmtes Bild oder GIF als Antwort auf einen bestimmten Text zu senden.

Ein wesentlicher Teil des Codes wurde von Kindern im Alter von 11-13 Jahren geschrieben, denen ich Zugang zum Bot gewährt habe. Sie haben ihre eigenen Anwendungsfälle eingebracht. Ich denke, es ist leicht zu erkennen, welcher Teil von ihnen erstellt wurde.

Beispielsweise kommt auf die Nachricht „jake“ ein GIF mit einer bekannten Figur aus dem Cartoon Adventure Time.

Leitfaden: Wie man einen einfachen Bot für Telegram in JS für Programmieranfänger erstellt

Um den Bot weiterzuentwickeln, müssen Sie die Tastatur anschließen und Beispiele ansehen, zum Beispiel, von hier

11. Wie man den Code aktualisiert und den Bot neu startet

Vergessen Sie nicht, dass der Code nicht nur auf Github, sondern auch auf dem Server aktualisiert werden muss. Es ist ganz einfach — stoppen Sie den Bot (drücken Sie ctrl+c),

— geben Sie in der Konsole ein, während Sie sich im Zielordner befinden, git pull
— starten Sie den Bot erneut mit dem Befehl node index.js

END

Viele Dinge, die in dieser Datei beschrieben sind, werden super offensichtlich für fortgeschrittene Programmierer sein. Als ich selbst versucht habe, die Kluft zur Welt der Bots auf einmal zu überqueren, hat mir ein solcher Leitfaden sehr gefehlt. Ein Leitfaden, in dem offensichtliche und einfache Dinge für jeden IT-Spezialisten nicht übergangen werden.

In Zukunft plane ich einen Post darüber, wie man seine erste Anwendung in ReactNative im gleichen Stil macht, abonnieren Sie!

Quelle: habr.com

60GB SSD 8Gb DDR4