Ich habe erst vor drei Wochen begonnen, in die IT-Welt einzutauchen. Wirklich, vor drei Wochen verstand ich nicht einmal die Syntax von HTML, und meine Kenntnisse in Programmiersprachen beschränkten sich auf den Schulunterricht über Pascal vor 10 Jahren. Doch ich entschied mich, in ein IT-Camp zu fahren, in dem die Kinder einen Bot entwickeln sollten. Ich dachte, das wäre wahrscheinlich nicht so schwierig.
So begann ein langer Weg, in dessen Verlauf ich:
- einen Cloud-Server mit Ubuntu eingerichtet habe,
- mich bei GitHub registriert habe,
- die grundlegende Syntax von JavaScript gelernt habe,
- eine Menge Artikel in Englisch und Russisch gelesen habe,
- endlich einen Bot erstellt habe,
- und schließlich diesen Artikel geschrieben habe.
Das Endergebnis sah ungefähr so aus:

Ich sage gleich, dies ist ein Artikel für Anfänger – um einfach zu verstehen, wie man grundlegende Dinge von der absoluten Basis aus macht.
Und auch für fortgeschrittene Programmierer – einfach um sie ein wenig zum Lachen zu bringen.
1. Wie schreibt man Code in JS?
Ich wusste, dass ich zunächst zumindest die Syntax der Sprache verstehen sollte. Die Wahl fiel auf JavaScript, einfach weil der nächste Schritt für mich die Entwicklung einer Anwendung in ReactNative war. Ich begann mit auf Codecademy und war sehr begeistert. Die ersten 7 Tage sind kostenlos. Praktische Projekte. Ich empfehle es. Die Durchlaufzeit betrug etwa 25 Stunden. Tatsächlich brauchte ich nicht alles davon. So sieht die Struktur des Kurses aus, und hier ist detailliert der erste Block.

2. Wie registriert man einen Bot?
Am Anfang hat mir sehr geholfen. aus dem Blog eines gewissen Arschakow. Er erklärt die Grundlagen sehr gut. Was dort am wichtigsten ist — ist die Anleitung zur Registrierung des Bots. Ich kann es nicht besser schreiben, und da dies der einfachste Teil ist, komme ich direkt zur Sache. Sie müssen einen Bot erstellen und dessen API erhalten. Dies geschieht über einen anderen Bot — @BotFather. Finden Sie ihn in Telegram, schreiben Sie ihm, folgen Sie dem einfachen Prozess und erhalten Sie (speichern Sie!) den API-Schlüssel (eine Kombination aus Zahlen und Buchstaben). Der war später für mich nützlich.

3. Wie sieht der Code des Bots aus?
Nach eingehendem Studium von Artikeln habe ich verstanden, dass es sinnvoll ist, eine Bibliothek (fremden Code im Modulformat) zu verwenden, um mich nicht mit dem Studium der Telegram-API herumzuschlagen und große Codeabschnitte von Grund auf neu zu erstellen. Ich fand das Framework , den man irgendwie mit etwas über npm oder yarn verbinden musste. So habe ich damals verstanden, aus was das Deployment eines Bots besteht. Hier kann man lachen. Ich nehme es nicht übel. Am meisten haben mir bei der späteren Erstellung des Bots die Beispiele geholfen, die am Ende der Seite angegeben sind:

3. Wie man einen eigenen Cloud-Server für 100 Rubel erstellt
Nach langem Suchen habe ich verstanden, dass der 'npm'-Befehl aus dem obigen 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 Block über meine Erfahrungen mit Linux aus — für die meisten ist das irrelevant und unnötig. Wenn Sie Windows oder ein MacBook haben, haben Sie bereits eine Konsole.
Kurz gesagt, ich habe Linux über Crostini installiert.
Während des Prozesses habe ich jedoch verstanden, dass ich für den dauerhaften Betrieb des Bots (und nicht nur, wenn mein Computer eingeschaltet ist) einen Cloud-Server benötige. Ich habe mich für entschieden und 100 Rubel eingezahlt, um den günstigsten Ubuntu-Server zu kaufen (siehe Bild).

4. Wie man den Server für den Betrieb des Bots vorbereitet
Nachdem ich das verstanden hatte, wurde mir klar, dass ich auf dem Server einen Ordner erstellen muss, in den ich die Datei mit dem Code lege. Dazu habe ich in der Konsole (direkt auf der Website über die Schaltfläche „Konsole öffnen“) eingegeben
mkdir botbot — это стало название моей папки. После этого я установил npm и Node.js, что позволит запускать мне потом код из файликов с разрешением *.js
sudo apt update
sudo apt install nodejs
sudo apt install npmIch empfehle dringend, an diesem Punkt die Verbindung zum Server über Ihre eigene Konsole einzurichten. Hier ist Dies ermöglicht Ihnen, direkt über die Konsole Ihres Computers mit dem Server zu arbeiten.
5. Wie man den Code des ersten Bots schreibt.
Jetzt wird mir klar: Jede Software ist einfach eine Ansammlung von Textzeilen. Man kann sie überall eingeben, mit der richtigen Dateiendung speichern und das war's. Du bist großartig. Ich habe verwendet , aber tatsächlich kann man auch einfach im Standard-Notepad schreiben. Das Wichtigste ist, die Datei später mit der richtigen Endung zu speichern. Das ist wie das Schreiben von Text in Word und das Speichern.
Ich habe eine neue Datei erstellt, in die ich den Code aus dem Beispiel auf der Telegraf-Seite eingefügt habe, und habe sie in index.js gespeichert (es ist nicht erforderlich, die Datei so zu benennen, aber es ist üblich). Wichtig ist, dass Sie anstelle von BOT_TOKEN Ihren API-Schlüssel aus dem zweiten Punkt einsetzen.
const Telegraf = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Willkommen!'))
bot.help((ctx) => ctx.reply('Schick mir einen Sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hallo'))
bot.launch()6. Wie man Code über GitHub auf den Server bringt
Jetzt musste ich diesen Code irgendwie auf den Server hochladen und ausführen. Für mich stellte sich das als Herausforderung dar. Letztendlich habe ich nach langem Überlegen verstanden, dass es einfacher sein würde, eine Datei auf GitHub zu erstellen, die es ermöglicht, den Code über einen Befehl in der Konsole zu aktualisieren. Ich habe ein Konto bei registriert und , wo ich die Datei hochgeladen habe. Danach musste ich herausfinden, wie ich den Upload von Dateien von meinem (öffentlichen!) Account auf den Server in den Ordner bot einrichten kann (falls Sie versehentlich diesen Ordner verlassen haben — einfach cd bot eingeben).
7. Wie man Dateien über GitHub auf den Server lädt Teil 2
Ich musste ein 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 gitDanach musste ich den Dateiupload einrichten. Dazu habe ich in die Eingabeaufforderung eingegeben
git clone git://github.com/b0tank/bot.git bot
В итоге все из проекта загрузилось на сервер. Ошибкой на данном этапе было, что я, по сути, сделал вторую папку внутри уже существующей папки bot. Адрес до файла выглядел как */bot/bot/index.js
Ich habe beschlossen, dieses Problem zu ignorieren.
Um die Bibliothek telegraf, die wir in der ersten Zeile des Codes anfordern, zu laden, geben Sie im Terminal den Befehl ein.
npm install telegraf8. Wie man den Bot startet
Dazu navigieren Sie in das Verzeichnis mit der Datei (um zwischen Verzeichnissen im Terminal zu wechseln, führen Sie den folgenden Befehl aus: cd bot Um sicherzustellen, dass Sie am richtigen Ort sind, können Sie einen Befehl eingeben, der alle Dateien und Ordner auflistet, die dort liegen. ls -a
Um den Bot zu starten, habe ich im Terminal eingegeben:
node index.js
Wenn es keine Fehler gibt – alles in Ordnung, der Bot läuft. Suchen Sie ihn in Telegram. Wenn ein Fehler vorliegt – nutzen Sie Ihr Wissen aus Punkt 1.
9. Wie man den Bot im Hintergrund ausführt
Schnell werden Sie feststellen, dass der Bot nur funktioniert, wenn Sie im Terminal sitzen. Um dieses Problem zu lösen, habe ich den Befehl verwendet:
screenDanach erscheint ein Bildschirm mit einem 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 – . Gehen Sie einfach in Ihr Verzeichnis und geben Sie den Befehl zum Starten des Bots ein.
node index.js10. Wie der Bot funktioniert und wie man seine Funktionalität erweitert
Was kann unser Bot im Beispiel? Er kann
bot.start((ctx) => ctx.reply('Willkommen!'))sagen Sie «Willkommen!» beim Start (versuchen Sie, den Text zu ändern)
bot.help((ctx) => ctx.reply('Senden Sie mir einen Sticker'))auf den Standardbefehl /help mit der Nachricht «Senden Sie mir einen Sticker» antworten
bot.on('sticker', (ctx) => ctx.reply(''))auf einen Sticker mit Zustimmung antworten
bot.hears('hi', (ctx) => ctx.reply('Hallo')) mit «Hallo» antworten, wenn jemand ‘hi’ schreibt
bot.launch()

Wenn Sie den Code auf , anschauen, werden Sie schnell verstehen, dass ich nicht weit von dieser Funktionalität entfernt bin. Was aktiv genutzt wird, ist die Funktion ctx.replyWithPhoto Sie ermöglicht es, ein festgelegtes Foto oder GIF als Antwort auf bestimmten Text zu senden.
Ein bedeutender Teil des Codes wurde von Kindern im Alter von 11-13 Jahren geschrieben, denen ich Zugang zum Bot gegeben habe. Sie haben ihre eigenen Anwendungsfälle eingefügt. Ich denke, es ist leicht zu erkennen, welcher Teil von ihnen stammt.
Zum Beispiel kommt auf die Nachricht «jake» ein GIF mit einer berühmten Figur aus der Zeichentrickserie Adventure Time.

Um den Bot weiterzuentwickeln, müssen Sie Beispiele ansehen, um die Tastatur zu integrieren, zum Beispiel,
11. Wie man den Code aktualisiert und den Bot neu startet
Vergessen Sie nicht, dass Sie den Code nicht nur auf GitHub, sondern auch auf dem Server aktualisieren müssen. Das 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 der Dinge, die in diesem Dokument beschrieben werden, sind für erfahrene Programmierer offensichtlich. Doch als ich selbst versuchte, mit einem Sprung in die Welt der Bots zu gelangen, hätte ich mir so einen Leitfaden gewünscht. Einen Leitfaden, der offensichtliche und einfache Dinge für jeden IT-Spezialisten behandelt.
In Zukunft plane ich einen Beitrag darüber, wie man seine erste Anwendung in ReactNative im gleichen Stil erstellt. Bleiben Sie dran!
Quelle: habr.com
