Un bot de chat très simple pour Telegram pour les plus petits



Il existe 100 500 méthodes et outils pour créer un simple robot de discussion sans serveur pour les télégrammes. Et le nôtre sera de toute façon plus facile, du moins par le nombre de clics dans l'interface. Le bot lui-même sera écrit en Python et sera exécuté sur le moteur Swifty sans serveur.

Comme toujours dans nos guides, vous n'aurez pas besoin de connaissances particulières en python ou autres langages de programmation. Tout ce dont vous avez besoin est la possibilité d'exécuter quelque chose sur la ligne de commande. Si vous êtes en Russie, il y a aussi un VPN sur votre ordinateur, car vous devrez atteindre le serveur de télégramme.

Alors que tout est standard - enregistrez un bot


Pour créer un nouveau bot, vous devez demander à un autre bot de le faire. Ouvrez le télégramme et trouvez le bot @BotFather ou ouvrez le lien . Ensuite, tapez / newbot et suivez les instructions de BotPapa. Pour une configuration minimale, il vous suffit de donner au bot un nom d'affichage et un nom d'utilisateur. Après avoir créé le bot, vous recevrez un jeton d'accès et une URL. Gardez-les quelque part.

Bot


Vous devez d'abord vous inscrire auprès de Swifty, notre plateforme sans serveur. Vous pouvez le faire ici . Accédez ensuite au panneau de configuration et procédez comme suit:

  1. Cliquez sur Fonctions -> Nouvelle fonction. Cliquez sur l'onglet Depuis le référentiel (modèles) et sélectionnez le référentiel github.com/swiftycloud/swifty.demo s'il n'est pas sélectionné par défaut. Il s'agit de notre propre référentiel dans lequel nous stockons des modèles de fonctions.
  2. Sélectionnez le modèle Simple Telegram Chatbot (python) et cliquez sur Suivant.
  3. Entrez le nom de votre bot, par exemple, swifty_bot (ci-après j'utiliserai ce nom pour le désigner) et cliquez sur Créer.

Pour que les télégrammes puissent appeler la fonction bot, vous devez créer un lien API vers celle-ci. Accédez à l'onglet Déclencheurs, cliquez sur Ajouter un déclencheur -> API REST (URL). Enregistrez le lien résultant.

Ensuite, vous devez donner aux fonctions du bot l'accès au jeton d'accès que vous avez reçu du télégramme. Swifty a une entité spéciale - Compte, qui vous permet de stocker en toute sécurité toutes les données, par exemple, des paquets ou des jetons de mot de passe de connexion.

  1. Sélectionnez Comptes -> Créer un compte. Utilisez le type d'API Telegram, le nom SWIFTYBOT (exactement en majuscules) et le jeton que vous avez reçu du télégramme.
  2. Sélectionnez Fonctions -> swifty_bot -> Accès -> Ajouter. Sélectionnez Comptes et un compte SWIFTYBOT. Votre fonction dispose désormais d'un accès sécurisé à votre jeton d'accès.

Mettre à jour Faites attention! Le nom SWIFTYBOT du compte est écrit dans le code de fonction ici:

BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMSWIFTYBOT_TOKEN')) 

Si vous souhaitez utiliser un nom de compte différent, vous devez le modifier dans le code de fonction. Par exemple, si votre nom de compte est MYOWNBOT, votre code ressemblera à ceci:

 BASE_URL = "https://api.telegram.org/bot{}".format(os.getenv('ACC_TELEGRAMMYOWNBOT_TOKEN')) 

Comment le nom de la variable d'environnement ACC_TELEGRAMMYOWNBOT_TOKEN est-il formé, par lequel la fonction reçoit la propriété de compte, comme toute autre ressource dans Swifty? Ici:

  • ACC - identifiant auquel vous souhaitez accéder à une ressource de type Compte;
  • TÉLÉGRAMME - type de compte;
  • MYOWNBOT - nom du compte;
  • TOKEN - propriété du compte;

Le code de la fonction résultante:

 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 

C'est le bot le plus simple qui puisse répondre aux commandes / start, / help et / about. Vous pouvez également ajouter n'importe laquelle de vos équipes et étendre ses fonctionnalités à votre guise.

Nous connectons la fonction au bot


Vous devez maintenant indiquer au télégramme sur quel lien se trouve votre bot. Vous devez ouvrir la ligne de commande et y exécuter la commande suivante. Dans le même temps, YOUR_API_URL doit être remplacé par le lien API que vous avez copié précédemment et YOUR_ACCESS_TOKEN avec un jeton.

 curl -XPOST https://api.telegram.org/botYOUR_ACCESS_TOKEN/setWebhook?url=YOUR_API_URL 


Si tout s'est bien passé, vous verrez quelque chose comme ceci:

 { "ok": true, "result": true, "description": "Webhook was set" } 

Si vous êtes en Russie, alors tout ira bien seulement si vous avez un VPN activé.

Peut vérifier


Trouvez un bot avec votre nom dans le télégramme et essayez d'exécuter quelques commandes, par exemple, / start ou / about. Si tout fonctionne, félicitations. Sinon, n'hésitez pas à commenter ici ou sur notre canal mou .

Vous pouvez voir comment fonctionne un tel robot prêt si vous le trouvez dans le télégramme de notre robot avec le nom swifty_test_bot. Je vous remercie

Donnez vie à vos idées, comme on dit dans swifty.cloud .

Source: https://habr.com/ru/post/fr432914/


All Articles