
Es gibt 100.500 Möglichkeiten und Tools, um einen einfachen serverlosen Chat-Bot für Telegramme zu erstellen. Und unsere wird sowieso einfacher, zumindest durch die Anzahl der Klicks in der Benutzeroberfläche. Der Bot selbst wird in Python geschrieben und auf der serverlosen Swifty-Engine ausgeführt.
Wie immer in unseren Handbüchern benötigen Sie keine besonderen Kenntnisse in Python oder anderen Programmiersprachen. Alles was Sie brauchen ist die Fähigkeit, etwas in der Kommandozeile auszuführen. Wenn Sie in Russland sind, befindet sich auf Ihrem Computer auch ein VPN, da Sie den Telegrammserver erreichen müssen.
Während alles Standard ist - registrieren Sie einen Bot
Um einen neuen Bot zu erstellen, müssen Sie einen anderen Bot bitten, dies zu tun. Öffnen Sie das Telegramm und suchen Sie dort den @ BotFather-Bot oder öffnen Sie den
Link . Geben Sie als Nächstes / newbot ein und befolgen Sie die Anweisungen von BotPapa. Für eine minimale Konfiguration müssen Sie dem Bot nur einen Anzeigenamen und einen Benutzernamen geben. Nach dem Erstellen des Bots erhalten Sie Zugriffstoken und URL. Speichern Sie sie irgendwo.
Bot
Zuerst müssen Sie sich bei Swifty, unserer serverlosen Plattform, registrieren. Sie können es
hier tun. Gehen Sie dann zum Bedienfeld und gehen Sie wie folgt vor:
- Klicken Sie auf Funktionen -> Neue Funktion. Klicken Sie auf die Registerkarte Von Repo (Vorlagen) und wählen Sie das Repository github.com/swiftycloud/swifty.demo aus, wenn es nicht standardmäßig ausgewählt ist. Dies ist unser eigenes Repository, in dem wir Funktionsvorlagen speichern.
- Wählen Sie die Vorlage Simple Telegram Chatbot (Python) aus und klicken Sie auf Weiter.
- Geben Sie den Namen Ihres Bots ein, z. B. swifty_bot (im Folgenden werde ich diesen Namen verwenden, um ihn zu kennzeichnen), und klicken Sie auf Erstellen.
Damit Telegramme die Bot-Funktion aufrufen können, müssen Sie einen API-Link dazu erstellen. Gehen Sie zur Registerkarte Trigger und klicken Sie auf Trigger hinzufügen -> REST-API (URL). Speichern Sie den resultierenden Link.
Anschließend müssen Sie den Bot-Funktionen Zugriff auf das Zugriffstoken gewähren, das Sie vom Telegramm erhalten haben. Swifty verfügt über eine spezielle Entität - das Konto, mit dem Sie alle Daten sicher speichern können, z. B. Login-Passwort-Bundles oder Token.
- Wählen Sie Konten -> Konto erstellen. Verwenden Sie den Telegramm-API-Typ, den Namen SWIFTYBOT (genau in Großbuchstaben) und das Token, das Sie vom Telegramm erhalten haben.
- Wählen Sie Funktionen -> swifty_bot -> Zugriff -> Hinzufügen. Wählen Sie Konten und ein SWIFTYBOT-Konto. Ihre Funktion hat jetzt sicheren Zugriff auf Ihr Zugriffstoken.
Update Beachten Sie! Der Name SWIFTYBOT für das Konto wird hier im Funktionscode geschrieben:
BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN'))
Wenn Sie einen anderen Kontonamen verwenden möchten, müssen Sie diesen im Funktionscode ändern. Wenn Ihr Kontoname beispielsweise MYOWNBOT lautet, sieht Ihr Code folgendermaßen aus:
BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN'))
Wie wird der Name der Umgebungsvariablen ACC_TELEGRAMMYOWNBOT_TOKEN gebildet, über die die Funktion wie jede andere Ressource in Swifty die Kontoeigenschaft empfängt? Hier:
- ACC - Kennung, auf die Sie auf eine Ressource vom Typ Konto zugreifen möchten;
- TELEGRAM - Kontotyp;
- MYOWNBOT - Kontoname;
- TOKEN - Kontoeigentum;
Der Code der resultierenden Funktion:
import json import os import sys import requests BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) def Main(req): try: data = json.loads(req.body.encode()) message = str(data["message"]["text"]) chat_id = data["message"]["chat"]["id"] first_name = data["message"]["chat"]["first_name"] response = "Please /start, {}".format(first_name) if "start" in message: response = "Hello {}! Type /help to get list of actions.".format(first_name) if "help" in message: response = "/about - get information about Swifty" if "about" in message: response = ("Swifty is the serverless platform that allows startups, developers and enterprises to develop and run application backend with minimal time-to-market, costs and without infrastructure management.\n" "Start creating your backend at\n" "https://swifty.cloud") data = {"text": response.encode("utf8"), "chat_id": chat_id} url = BASE_URL + "/sendMessage" requests.post(url, data) except Exception as e: print(e) return {"statusCode": 200}, None
Dies ist der einfachste Bot, der auf die Befehle / start, / help und / about reagieren kann. Sie können auch jedes Ihrer Teams hinzufügen und die Funktionalität nach Bedarf erweitern.
Wir verbinden die Funktion mit dem Bot
Jetzt müssen Sie dem Telegramm mitteilen, auf welchem Link sich Ihr Bot befindet. Sie müssen die Befehlszeile öffnen und den folgenden Befehl ausführen. Gleichzeitig muss YOUR_API_URL durch den zuvor kopierten API-Link und YOUR_ACCESS_TOKEN durch ein Token ersetzt werden.
curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL
Wenn alles gut gegangen ist, sehen Sie ungefähr Folgendes:
{ "ok": true, "result": true, "description": "Webhook was set" }
Wenn Sie in Russland sind, läuft alles nur dann gut, wenn Sie ein VPN aktiviert haben.
Kann überprüfen
Suchen Sie einen Bot mit Ihrem Namen im Telegramm und versuchen Sie, einige Befehle auszuführen, z. B. / start oder / about. Wenn alles funktioniert, herzlichen Glückwunsch. Wenn nicht, können
Sie dies gerne hier oder in unserem
Slack-Kanal kommentieren.
Sie können sehen, wie ein solcher fertiger Bot funktioniert, wenn Sie ihn im Telegramm unseres Bots mit dem Namen swifty_test_bot finden. Vielen Dank.
Machen Sie Ihre Ideen App, wie sie in
swifty.cloud sagen.