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:
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
2. Wie registriere ich einen Bot?
Hat mir am Anfang sehr geholfen
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
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
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
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
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
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 –
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()
Wenn Sie sich den Code ansehen 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.
Um den Bot weiterzuentwickeln, müssen Sie die Tastatur anschließen, siehe Beispiele, zum Beispiel
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