Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

Ich habe erst vor drei Wochen begonnen, in die IT-Welt einzutauchen. Im Ernst, vor drei Wochen verstand ich nicht einmal die HTML-Syntax und die Bekanntschaft mit Programmiersprachen endete mit einem 10 Jahre alten Pascal-Lehrplan. Ich beschloss jedoch, an einem IT-Camp teilzunehmen, für dessen Kinder es schön wäre, einen Bot zu bauen. Ich dachte, es wäre nicht so schwer.

Damit begann eine lange Reise, auf der ich:

  • einen Cloud-Server mit Ubuntu bereitgestellt,
  • auf GitHub registriert,
  • erlernte die grundlegende JavaScript-Syntax,
  • eine Menge Artikel auf Englisch und Russisch lesen,
  • Endlich einen Bot gemacht
  • habe endlich diesen Beitrag geschrieben.

Das Endergebnis sah so aus:

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

Ich sage gleich, dass dies ein Artikel für Anfänger ist – nur um von Anfang an zu verstehen, wie man elementare Dinge macht.

Und auch – für fortgeschrittene Programmierer – nur um sie ein wenig zum Lachen zu bringen.

1. Wie schreibe ich Code in JS?

Ich habe verstanden, dass es sich lohnt, zumindest zuerst die Syntax der Sprache zu verstehen. Die Wahl fiel auf JavaScript, einfach weil der nächste Schritt für mich darin bestand, eine Anwendung in ReactNative zu erstellen. Ich begann mit natürlich auf Codecademy und war sehr begeistert. Die ersten 7 Tage sind kostenlos. Echte Projekte. Ich empfehle. Die Überfahrt dauerte etwa 25 Stunden. Tatsächlich war nicht alles davon nützlich. So sieht der Kursaufbau und der erste Block im Detail aus.

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

2. Wie registriere ich einen Bot?

Hat mir am Anfang sehr geholfen dieser Artikel aus dem Blog eines gewissen Archakov. Er kaut gleich am Anfang. Aber das Wichtigste ist die Anleitung zur Registrierung des Bots. Ich werde nicht besser schreiben, und da dies der einfachste Teil ist, schreibe ich nur das Wesentliche. Sie müssen einen Bot erstellen und seine API erhalten. Dies geschieht über einen anderen Bot – @BotFather. Finden Sie ihn im Telegramm, schreiben Sie ihm, folgen Sie dem einfachen Weg und erhalten (speichern!) Sie den API-Schlüssel (das ist eine Reihe von Zahlen und Buchstaben). Es hat sich später als nützlich für mich erwiesen.

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

3. Wie sieht der Bot-Code aus?

Nach langem Studium der Artikel wurde mir klar, dass es sich lohnt, eine Art Bibliothek (Code von Drittanbietern im Modulformat) zu verwenden, um nicht die Mühe zu machen, die Telegram-API zu studieren und große Codeteile von Grund auf neu zu erstellen. Ich habe einen Rahmen gefunden Telegraf, das mithilfe von npm oder Garn irgendwie mit etwas verbunden werden musste. So habe ich damals verstanden, woraus der Einsatz des Bots besteht. Lache hier. Ich werde nicht beleidigt sein. Die Beispiele unten auf der Seite haben mir bei der späteren Erstellung des Bots am meisten geholfen:

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

3. So erstellen Sie Ihren eigenen Cloud-Server für 100 Rubel

Nach langem Suchen habe ich herausgefunden, dass sich der Befehl „npm“ aus dem Bild oben auf die Befehlszeile bezieht. Die Befehlszeile ist überall, aber um sie ausführen zu können, müssen Sie den NodePackageManager installieren. Das Problem war, dass ich auf einem PixelBook mit ChromeOS programmierte. Ich überspringe hier einen großen Block darüber, wie ich Linux kennengelernt habe – 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.

Dabei wurde mir jedoch klar, dass ich einen Cloud-Server benötige, damit der Bot jederzeit funktioniert (und nicht nur, wenn mein Computer eingeschaltet ist). Ich entschied mich vscale.io Ich habe 100 Rubel ausgegeben und den günstigsten Ubuntu-Server gekauft (siehe Bild).

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

4. So bereiten Sie den Server für die Ausführung des Bots vor

Danach wurde mir klar, dass ich einen Ordner auf dem Server erstellen musste, in dem ich die Datei mit dem Codetext ablegen würde. Dazu bin ich in der Konsole (direkt auf der Site über die Schaltfläche „Konsole öffnen“) gefahren

mkdir bot

bot – das wurde der Name meines Ordners. Danach habe ich npm und Node.js installiert, wodurch ich später Code aus *.js-Dateien ausführen kann

sudo apt update
sudo apt install nodejs
sudo apt install npm

Ich empfehle zu diesem Zeitpunkt dringend, über Ihre Konsole eine Verbindung zum Server einzurichten. Hier Unterricht Dadurch können Sie direkt über die Konsole Ihres Computers mit dem Server arbeiten.

5. So programmieren Sie den ersten Bot.

Für mich ist das jetzt einfach eine Offenbarung. Jedes Programm besteht nur aus Textzeilen. Sie können sie überallhin fahren, mit der gewünschten Erweiterung speichern und fertig. Du bist schön. ich benutzte Atom, aber eigentlich können Sie einfach in einen Standard-Notizblock schreiben. Die Hauptsache ist, die Datei später in der gewünschten Erweiterung zu speichern. Es ist, als würde man Text in Word schreiben und speichern.

Ich habe eine neue Datei erstellt, in die ich den Code aus dem Beispiel auf der Telegraf-Seite eingefügt und in der Datei index.js gespeichert habe (es ist überhaupt nicht notwendig, die Datei so zu benennen, aber es wird akzeptiert). Wichtig: Geben Sie anstelle von BOT_TOKEN Ihren API-Schlüssel aus dem zweiten Absatz ein.

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. So übertragen Sie den Code über Github an den Server

Jetzt musste ich diesen Code irgendwie auf den Server hochladen und ausführen. Für mich wurde es zu einer Herausforderung. Am Ende wurde mir nach langem Hin und Her klar, dass es einfacher wäre, eine Datei auf Github zu erstellen, mit der Sie den Code mithilfe eines Befehls in der Konsole aktualisieren können. Ich habe ein Konto bei registriert github und tat es neues Projektwo ich die Datei hochgeladen habe. Danach musste ich herausfinden, wie ich das Hochladen von Dateien von meinem (offenen!) Konto auf den Server im Bot-Ordner einrichten kann (wenn Sie ihn plötzlich verlassen haben, schreiben Sie einfach cd bot).

7. So laden Sie Dateien über Github auf den Server hoch, Teil 2

Ich musste ein Programm auf dem Server installieren, das Dateien von Git herunterlädt. Ich habe Git durch Eingabe auf dem Server installiert

apt-get install git

Danach musste ich Datei-Uploads einrichten. Dazu bin ich in die Kommandozeile gefahren

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

Infolgedessen wurde alles aus dem Projekt auf den Server hochgeladen. Der Fehler in dieser Phase bestand darin, dass ich im Wesentlichen einen zweiten Ordner innerhalb des bereits vorhandenen Bot-Ordners erstellt habe. Die Adresse der Datei sah wie folgt aus: */bot/bot/index.js

Ich beschloss, dieses Problem zu ignorieren.

Und um die Telegraf-Bibliothek zu laden, die wir in der ersten Codezeile anfordern, geben Sie den Befehl in die Konsole ein.

npm install telegraf

8. So starten Sie den Bot

Führen Sie dazu den Befehl format aus, während Sie sich im Ordner mit der Datei befinden (um über die Konsole von Ordner zu Ordner zu wechseln). cd bot Um sicherzustellen, dass Sie an der richtigen Stelle sind, können Sie einen Befehl eingeben, der in der Konsole alle dort vorhandenen Dateien und Ordner anzeigt ls -a

Um zu beginnen, betrat ich die Konsole

node index.js

Liegt kein Fehler vor, ist alles in Ordnung, der Bot funktioniert. Suchen Sie ihn per Telegramm. Wenn ein Fehler vorliegt, wenden Sie Ihr Wissen aus Punkt 1 an.

9. So führen Sie den Bot im Hintergrund aus

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

screen

Danach erscheint ein Bildschirm mit etwas Text. Das bedeutet, dass alles in Ordnung ist. Sie befinden sich auf einem virtuellen Server auf einem Cloud-Server. Um besser zu verstehen, wie das alles funktioniert – Hier ist der Artikel. Gehen Sie einfach zu Ihrem Ordner und geben Sie den Befehl ein, um den Bot zu starten

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('Welcome!'))

Sagen Sie „Willkommen!“ im Moment des Starts (versuchen Sie, den Text zu ändern)

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

Senden Sie als Antwort auf den Standardbefehl /help die Nachricht „Senden Sie mir einen Aufkleber“.

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

Senden Sie die Genehmigung als Antwort auf einen Aufkleber

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

Antworten Sie mit „Hey“, wenn sie „Hallo“ schreiben.
bot.launch()

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

Wenn Sie sich den Code ansehen github, dann werden Sie schnell merken, dass ich von dieser Funktionalität nicht weit entfernt bin. Aktiv genutzt wird die Funktion ctx.replyWithPhoto Es ermöglicht Ihnen, ein bestimmtes Foto oder GIF als Antwort auf einen bestimmten Text zu senden.

Ein erheblicher Teil des Codes wurde von Kindern im Alter von 11 bis 13 Jahren geschrieben, denen ich Zugang zum Bot gewährt habe. Sie haben ihre Benutzerfälle eingegeben. Ich denke, es ist leicht zu erkennen, welcher Teil von ihnen erledigt wurde.

Zur Nachricht „Jake“ kommt beispielsweise ein GIF mit einer berühmten Figur aus dem Adventure Time-Cartoon.

Anleitung: So erstellen Sie einen einfachen Bot für Telegram in JS für einen Programmieranfänger

Um den Bot weiterzuentwickeln, müssen Sie die Tastatur anschließen, siehe Beispiele, zum Beispiel daher

11. So aktualisieren Sie den Code und starten den Bot neu

Vergessen Sie nicht, dass Sie den Code nicht nur auf Github, sondern auch auf dem Server aktualisieren müssen. Das geht ganz einfach: Stoppen Sie den Bot (drücken Sie Strg + C),

- Geben Sie in die Konsole ein und befinden Sie sich im Zielordner. git pull
- Starten Sie den Bot mit dem Befehl neu node index.js

ENDE

Viele der in dieser Datei beschriebenen Dinge werden für fortgeschrittene Programmierer sehr offensichtlich sein. Als ich jedoch selbst versuchte, auf einen Schlag über den Abgrund in die Welt der Bots zu springen, habe ich einen solchen Leitfaden wirklich vermisst. Ein Leitfaden, der für jeden IT-Spezialisten das Offensichtliche und Einfache nicht außer Acht lässt.

Für die Zukunft plane ich einen Beitrag darüber, wie ich meine erste Bewerbung auf ReactNative im gleichen Stil verfassen kann. Abonnieren Sie!

Source: habr.com

Kommentar hinzufügen