Un bot de chat muy simple para Telegram para los más pequeños.



Hay 100.500 formas y herramientas para crear un simple bot de chat sin servidor para telegramas. Y el nuestro de todos modos será más fácil, al menos por el número de clics en la interfaz. El bot en sí mismo se escribirá en Python y se ejecutará en el motor Swifty sin servidor.

Como siempre en nuestras guías, no necesitará ningún conocimiento especial de Python u otros lenguajes de programación. Todo lo que necesitas es la capacidad de ejecutar algo en la línea de comando. Si se encuentra en Rusia, también hay una VPN en su computadora, ya que necesitará comunicarse con el servidor de telegramas.

Si bien todo es estándar, registre un bot


Para crear un nuevo bot, debes pedirle a otro bot que haga esto. Abra el telegrama y encuentre el bot @BotFather allí o abra el enlace . Luego, escriba / newbot y siga las instrucciones de BotPapa. Para una configuración mínima, solo necesita darle al bot un nombre para mostrar y un nombre de usuario. Después de crear el bot, se le dará token de acceso y URL. Guárdalos en alguna parte.

Bot


Primero debe registrarse en Swifty, nuestra plataforma sin servidor. Puedes hacerlo aquí . Luego vaya al panel de control y haga lo siguiente:

  1. Haga clic en Funciones -> Nueva función. Haga clic en la pestaña Del repositorio (Plantillas) y seleccione el repositorio github.com/swiftycloud/swifty.demo si no está seleccionado de forma predeterminada. Este es nuestro propio repositorio en el que almacenamos plantillas de funciones.
  2. Seleccione la plantilla Simple Telegram Chatbot (python) y haga clic en Siguiente.
  3. Ingrese el nombre de su bot, por ejemplo, swifty_bot (en adelante usaré este nombre para designarlo) y haga clic en Crear.

Para que los telegramas puedan llamar a la función bot, debe crear un enlace de API. Vaya a la pestaña Activadores, haga clic en Agregar activador -> REST API (URL). Guarda el enlace resultante.

Luego, debe dar acceso a las funciones del bot al token de acceso que recibió del telegrama. Swifty tiene una entidad especial: Cuenta, que le permite almacenar de forma segura cualquier dato, por ejemplo, paquetes o tokens de inicio de sesión y contraseña.

  1. Seleccione Cuentas -> Crear cuenta. Use el tipo de API de Telegram, el nombre SWIFTYBOT (exactamente en mayúscula) y el token que recibió de Telegram.
  2. Seleccione Funciones -> swifty_bot -> Acceso -> Agregar. Seleccione Cuentas y una cuenta SWIFTYBOT. Su función ahora tiene acceso seguro a su token de acceso.

Actualización ¡Presta atención! El nombre SWIFTYBOT para la cuenta está escrito en el código de función aquí:

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

Si desea utilizar un nombre de cuenta diferente, debe cambiarlo en el código de función. Por ejemplo, si el nombre de su cuenta es MYOWNBOT, su código se verá así:

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

¿Cómo se forma el nombre de la variable de entorno ACC_TELEGRAMMYOWNBOT_TOKEN, a través del cual la función recibe la propiedad de la cuenta, como cualquier otro recurso en Swifty? Aquí:

  • ACC: identificador al que desea acceder a un recurso de tipo Cuenta;
  • TELEGRAMA - tipo de cuenta;
  • MYOWNBOT - nombre de la cuenta;
  • TOKEN - propiedad de la cuenta;

El código de la función resultante:

 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 

Este es el bot más simple que puede responder a los comandos / start, / help y / about. También puede agregar cualquiera de sus equipos y expandir su funcionalidad según lo desee.

Conectamos la función al bot


Ahora necesita decirle al telegrama en qué enlace está su bot. Debe abrir la línea de comando y ejecutar el siguiente comando en ella. Al mismo tiempo, YOUR_API_URL debe reemplazarse con el enlace de la API que copió anteriormente, y YOUR_ACCESS_TOKEN con el token.

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


Si todo salió bien, verá algo como lo siguiente:

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

Si estás en Rusia, entonces todo irá bien solo si tienes una VPN habilitada.

Puede comprobar


Encuentre un bot con su nombre en el telegrama e intente ejecutar un par de comandos, por ejemplo, / start o / about. Si todo funciona, felicidades. Si no, por favor siéntase libre de comentar aquí o en nuestro canal flojo .

Puedes ver cómo funciona un bot tan listo si lo encuentras en el telegrama de nuestro bot con el nombre swifty_test_bot. Gracias

Haga que sus ideas se hagan realidad, como dicen en swifty.cloud .

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


All Articles