Bot de Telegram sin programación. Escribimos un bot en Telegram en PHP: ejemplos listos para usar. ¿Por qué el bot flibusta no funciona en Telegram?

Los robots en Telegram son programas que realizan automáticamente ciertas acciones y responden a los comandos del usuario. Los desarrolladores de mensajería fomentan su creación, por lo que es líder en número de robots. ¿Cómo crear un bot de Telegram para tu negocio o para uso habitual? Consideremos las posibilidades y tecnologías.

Opciones existentes

Hay tres formas de crear un bot en Telegram:

  1. Crear en el constructor. Este podría ser otro servicio de mensajería, por ejemplo @manybot. O un shell en línea como Chatfuel.
  2. Desarrollo independiente. Para hacer esto, debe tener habilidades en programación e implementación de aplicaciones de servidor, comenzando con la instalación del software.
  3. Compra. Hoy en día existen muchas empresas y desarrolladores privados que ofrecen productos personalizados. Los precios comienzan en 500 rublos, pero en promedio son de 10 a 15 mil.

Si tiene tiempo y algunas habilidades de software, le recomendamos intentar crearlo en el diseñador. Esto le ayudará a comprender cómo funcionan los programas, lo que le resultará útil a la hora de realizar el pedido si decide hacerlo.

Proceso de programación


Puedes crear un bot de Telegram tú mismo, pero solo si sabes programar. En general, el esquema de desarrollo se ve así:

  1. Redacción de especificaciones técnicas detalladas. Ayudará a resaltar los principales requisitos del programa y estructurar el proceso.
  2. Elegir un entorno de programación.
  3. Comprar hosting o buscar uno gratis. Sus requisitos están determinados por el entorno seleccionado. Por ejemplo, para desarrollar en PHP, se requiere un certificado SSL.
  4. Configuración de programas.
  5. Codificación.
  6. Despliegue. La dificultad depende del entorno elegido. Para Python, este es un proceso completo, pero en PHP todo se hace de manera relativamente simple.
  7. Depuración.

El proceso es bastante complejo y requiere muchas habilidades. Entonces, como puedes ver, no todo el mundo puede escribir un bot para Telegram por su cuenta.

Lenguajes de programación

¿Cómo hacer un bot en Telegram y qué idioma es mejor elegir? En principio, puede elegir cualquier lenguaje que admita la programación del servidor y el envío de solicitudes a través del protocolo https. Más a menudo para , también C++, C#, Ruby.

Vincular pago

Muchos servicios están diseñados para simplificar el proceso de compra online. El desarrollo utiliza métodos de API de pago, que le permiten vincular sistemas de pago al programa. El proceso se lleva a cabo según el algoritmo:

  1. El desarrollador incorpora las claves y selecciona un proveedor conectado al sistema para realizar transacciones.
  2. El botón "Pagar" aparece en el bot.
  3. El usuario del robot puede realizar pagos proporcionando sus datos. Están vinculados a su cuenta. Los pagos móviles también están disponibles.
  4. Las transacciones financieras se realizan directamente entre el cliente y el sistema de pago. Telegram no participa en este proceso. Su tarea es proporcionar una plataforma para implementar funciones. Debido a esto, los datos de pago no están disponibles para terceros.
  5. El cliente recibe un informe de transacción que incluye todos los detalles de la compra.

Al mismo tiempo, los desarrolladores del Messenger no aceptan ningún reclamo, transfiriendo toda la responsabilidad al sistema de pago y al propio usuario.

Pero prometen bloquear proveedores no confiables basándose en revisiones. Hoy puedes crear un bot en Telegram para vender por Qiwi y Yandex.Money.

Crea un bot tú mismo

El simulador de interlocutor de Telegram es un programa que se inicia y trabaja de tu lado. Envía solicitudes a la API de Telegram Bot, que es bastante simple:

  • El programa accede a los parámetros establecidos por referencia;
  • Telegram responde con una matriz JSON.

En Telegram, en lugar de subir mensajes manualmente, puedes instalar un webhook para que ellos mismos envíen cada carta. Para crear un bot de Telegram en Python, es mejor utilizar algún tipo de reactor, por ejemplo, tornado.web.

Antes de crear un bot de Telegram y ejecutarlo, debe ir a la dirección deseada y captar la señal de salida. Esto se hace para devolver el comportamiento de descarga manual de eventos.

La lógica estará en la clase tornado.web.RequestHandler, que el reactor acepta para procesar solicitudes.

CMD significa diccionario de todos los comandos disponibles. Send_reply es la función para enviar una respuesta. Acepta una matriz de mensajes ya preparada.

equipos

Primero necesitas enseñarle al programa bot de Telegram las constantes /start y /help:

El objeto mensaje['de'] es una matriz de tipo Usuario. De él el bot recibe los datos del usuario, su DNI y nombre. Será mejor si la función de respuesta pertenece al mensaje ['chat'] ['id']. Entonces, al comunicarse, habrá un Usuario y, en el caso de un chat, la identificación de este último.

La instalación /start tiene dos funciones a la vez:

Se necesita un comando sin parámetros para mostrar datos sobre el bot;
con parámetros – para identificación.

Ahora puedes crear cualquier tarea personalizada. Por ejemplo, /base64.

Para quienes utilizan Telegram móvil, será útil darle a @BotFather una lista de comandos que el nuevo interlocutor virtual debe aceptar:

Si un usuario de Telegram quiere ver una lista de tareas disponibles (por ejemplo, para saber cómo cerrar un programa después de completar una tarea), deberá escribir "/".

Cómo enseñar a un robot a hablar

Telegram envía el mensaje completo. La restricción sobre la necesidad de anteponer una barra diagonal a los comandos se creó únicamente para comodidad de los usuarios. Esto le permite enseñarle al programa a responder como un ser humano. Para darle la oportunidad de recibir todos los mensajes en grupos, debes escribir /setprivacy al asistente @BotFather, deshabilitando así la privacidad.

Deberías agregar un controlador a Handler:

La lista de comandos debe incluir voz:

El valor de 75 aquí representa la probabilidad de lo que el usuario quiere decir. La constante format_map es conveniente para describir cadenas que requieren sustitución.

De esta forma el bot podrá responder a los saludos y dirigirse al interlocutor por su nombre.

Los mensajes enviados no pueden ser solo texto.

Ahora que sabes cómo crear un bot de Telegram, podrás hacer posible no sólo escribir frases, sino también compartir imágenes y archivos de audio.

Por ejemplo, puedes expandir el diccionario RESPUESTAS de esta manera:

Y captaremos mensajes:

Ahora el objeto Mensaje no incluye texto, por lo que necesitas cambiar send_reply:

Entonces, el robot a veces enviará una imagen en lugar de la hora:

Como ves, crear un interlocutor virtual de Telegram y enseñarle a comunicarse no es nada complicado. Puedes eliminarlo en cualquier momento con otro comando enviado por @BotFather.

Hacemos un bot sencillo para publicar noticias en un canal y responder preguntas automáticamente en 6 pasos.

A marcadores

Material preparado con el apoyo de

Tras acaloradas discusiones en la prensa informática sobre la eficacia de los chatbots, han encontrado su hueco en el ecosistema de usuarios y empresas. Por ejemplo, los proyectos suelen implementar bots para notificar ciertos eventos y los servicios de soporte los utilizan para responder rápidamente a las preguntas frecuentes de los clientes.

En este tutorial, veremos la forma más sencilla de crear un bot con tus propias manos y explicaremos cómo funciona.

Comencemos por desarrollar un bot que pueda enviar automáticamente al canal Telegram las noticias de la empresa publicadas en el sitio web o en Facebook.

Paso 1. Crea un bot en Telegram

Un bot de Telegram se crea utilizando otro bot llamado BotFather. Le enviamos el comando /newbot, seleccionamos el nombre que se mostrará en la lista de contactos y la dirección. Por ejemplo, "Bot para DTF" con la dirección "dtf_news_bot".

Si la dirección no está ocupada y el nombre se ingresa correctamente, BotFather responderá con un mensaje con un token: la "clave" para acceder al bot creado. Debe conservarse y no mostrarse a nadie.

A través de BotFather también puedes agregar un avatar para el bot, una descripción, etc.

Paso 2. Crea un canal en Telegram

Ahora creamos un canal con cualquier nombre y dirección, y vamos a su configuración. Todo lo que se requiere es agregar el bot que creamos a la lista de administradores; será el que publicará notas en el canal.

Para buscar un bot, puede utilizar su dirección. Por ejemplo, "dtf_news_bot".

Paso 3: crea una condición

El siguiente paso es enseñarle al bot a enviar noticias desde el sitio al canal creado. Para ello utilizaremos el popular servicio de automatización IFTTT.

Con su ayuda, puedes crear instrucciones para que funcione el bot. En nuestro caso, se ve así: cada vez que aparece una nueva entrada en el feed RSS del sitio, debe enviar un mensaje al canal Telegram.

IFTTT significa Si esto, entonces aquello

Vaya a la sección "Mis subprogramas" de IFTTT, haga clic en el botón "Nuevo subprograma" y luego en el enlace "Este". Busque el activador Feed, Nuevo elemento de feed en la lista de funciones e indique la URL de nuestro feed RSS. Por ejemplo, para los sitios de Wordpress, generalmente se encuentra en example.com/feed/.

En lugar de una fuente RSS, puede realizar un seguimiento de la aparición de nuevas publicaciones en su cuenta de Twitter o Facebook: IFTTT tiene módulos separados para cada función.

Ahora pasemos al segundo paso: seleccione la acción que se realizará cuando se detecte una nueva entrada en RSS. Haga clic en "Eso" y busque Maker Webhook, "Realizar una solicitud web". Con este módulo puede enviar solicitudes a cualquier servicio. En nuestro caso, a un bot en Telegram.

En el formulario que se abre, en el campo URL debe especificar el enlace https://api.telegram.org/bot SIMBÓLICO/sendMessage, sustituyendo en él el token generado en el primer paso. Método: POST, tipo de contenido: aplicación/json.

Cuerpo: campo de la plantilla de solicitud que se enviará a Telegram. En él indicamos a qué canal se debe enviar el mensaje y qué se debe escribir en él:

("chat_id":"@channel_address", "text":"((EntryTitle)) ((FeedUrl))")

  • id_chat- dirección del canal al que se debe enviar el mensaje. Por lo tanto, un bot se puede conectar a varios canales a la vez. También puede especificar un usuario específico como destinatario. En este caso, en lugar de la dirección del canal, debe especificar su ID (se puede obtener mediante un bot).
  • texto- contenido del mensaje. Por ejemplo, el título del material de RSS (EntryTitle), su contenido (EntryContent) y enlace (FeedUrl). La lista de opciones disponibles se puede ver haciendo clic en el botón Ingrediente.

Si todo está configurado correctamente, el bot enviará un mensaje desde el feed RSS al canal. El activador en IFTTT tiene un retraso, por lo que un mensaje que aparece en el feed RSS no se enviará a Telegram inmediatamente, sino después de 30 a 60 minutos.

Puede seleccionar cualquier otro escenario disponible en IFTTT como condición para enviar un mensaje. Por ejemplo, Weather Underground puede enviar un mensaje todos los días con el pronóstico del tiempo para mañana. El activador de acciones se puede configurar para enviar los precios de las acciones al cierre de la operación.

Ahora resolveremos un problema más complejo: enseñaremos al bot creado a responder a los mensajes de los usuarios. Por ejemplo, enviar una lista de precios, contactos o responder preguntas frecuentes de los clientes.

Paso 4. Conecte el servidor

En esta etapa, necesitará alojamiento web y un certificado SSL, que puede obtener de forma gratuita utilizando el servicio Let's Encrypt.

La forma más conveniente es crear un subdominio separado para el bot, por ejemplo, bot.example.com, y colocar un archivo index.php en él. Dentro del archivo colocamos el código de un simple bot de la web de Telegram.

Sólo necesitas realizar dos cambios en el código del bot:

  • en línea define("BOT_TOKEN", "12345678:reemplázame-con-token-real"); en lugar de 12345678:reemplázame-con-token-real escribe el token obtenido en el primer paso;
  • en línea define("WEBHOOK_URL", "https://mi-sitio.example.com/ruta-secreta-para-webhooks/"); En lugar de https://my-site.example.com/secret-path-for-webhooks/, especifique la URL del archivo con el código del bot: https://bot.example.com/index.php.

Paso 5. Vincular el bot de Telegram y el servidor

Ahora necesitamos vincular Telegram y el archivo en el servidor para que nuestro script procese las solicitudes enviadas al bot en el Messenger.

Necesitará una consola para esto. Para diferentes proveedores de alojamiento, puede estar ubicado en diferentes secciones de la interfaz de administración del sitio. También puede utilizar el programa Terminal en macOS ingresando el comando ssh nombre de usuario@dirección de dominio.

Después de ingresar la contraseña, imprimimos un comando simple para nuestro subdominio. :

php -f /var/www/bot.example.com/index.php

Encantado de conocerte: la respuesta del bot a un mensaje enviado por el usuario.

A continuación, en el código, agregamos respuestas adicionales. Por ejemplo, para que dependiendo de la palabra enviada, el bot envíe la información necesaria al usuario (como en

Le escribimos /start y obtenemos una lista de todos sus comandos.
El primero y principal, /newbot, se lo enviamos y el bot le pide que le dé un nombre a nuestro nuevo bot. La única restricción en el nombre es que debe terminar en “bot”. Si tiene éxito, BotFather devuelve el token del bot y un enlace para agregar rápidamente el bot a sus contactos; de lo contrario, tendrá que devanarse los sesos con el nombre.

Esto ya es suficiente para empezar. Aquellos que sean especialmente pedantes ya pueden asignar aquí un avatar, una descripción y un mensaje de bienvenida al bot.

No olvide verificar el token recibido usando el enlace api.telegram.org/bot /getMe, dicen, no siempre funciona la primera vez.

2. Programación

Crearé el bot en Python3, sin embargo, debido a la idoneidad de este lenguaje, los algoritmos se pueden transferir fácilmente a cualquier otro.

Telegram te permite no subir mensajes manualmente, sino instalar un webHook, y luego ellos mismos enviarán cada mensaje. Para Python, para no molestarse con cgi y subprocesos, es conveniente usar algún tipo de reactor, así que elegí tornado.web para la implementación. (para GAE es conveniente usar la combinación Python2+Flask)

Marco de robot:

URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN MyURL = "https://example.com/hook" api = request.Session() aplicación = tornado.web.Application([ ( r"/", Handler), ]) if __name__ == "__main__": signal.signal(signal.SIGTERM, signal_term_handler) intente: set_hook = api.get(URL + "setWebhook?url=%s" % MyURL) if set_hook.status_code != 200: logging.error("No se puede configurar el gancho: %s. Salir." % set_hook.text) exit(1) application.listen(8888) tornado.ioloop.IOLoop.current().start () excepto KeyboardInterrupt: signal_term_handler(signal.SIGTERM, Ninguno)
Aquí, al iniciar el bot, instalamos un webhook en nuestra dirección y captamos la señal de salida para devolver el comportamiento con la descarga manual de eventos.

La aplicación tornado para procesar solicitudes acepta la clase tornado.web.RequestHandler, que contendrá la lógica del bot.

Controlador de clase (tornado.web.RequestHandler): def post(self): prueba: logging.debug("Recibí la solicitud: %s" % self.request.body) actualización = tornado.escape.json_decode(self.request.body) mensaje = actualizar["mensaje"] texto = mensaje.get("texto") if texto: logging.info("MENSAJE\t%s\t%s" % (mensaje["chat"]["id"], texto)) si texto == "/": comando, *argumentos = text.split(" ", 1) respuesta = CMD.get(comando, not_found)(argumentos, mensaje) logging.info("REPLY\t%s \t%s" % (mensaje["chat"]["id"], respuesta)) send_reply(respuesta) excepto Excepción como e: logging.warning(str(e))
Aquí CMD es un diccionario de comandos disponibles y send_reply es una función para enviar una respuesta, que toma como entrada un objeto Mensaje ya generado.

En realidad, su código es bastante simple:

Def send_reply(respuesta): si "texto" en respuesta: api.post(URL + "enviarMensaje", datos=respuesta)

Ahora que se describe toda la lógica del bot, puedes empezar a crear comandos para él.

3. equipos

En primer lugar, debes seguir la convención de Telegram y enseñarle al bot dos comandos: /start y /help:

Def help_message(argumentos, mensaje): respuesta = ("chat_id": mensaje["chat"]["id"]) resultado = ["¡Hola, %s!" % mensaje["from"].get("first_name"), "\rSolo puedo aceptar estos comandos:"] para el comando en CMD: result.append(command) respuesta["text"] = "\n\t" .join(resultado) devolver respuesta

La estructura mensaje["de"] es un objeto de tipo Usuario, proporciona al bot información tanto sobre la identificación del usuario como sobre su nombre. Para las respuestas, es más útil utilizar el mensaje["chat"]["id"]; en el caso de una comunicación personal, habrá un Usuario, y en el caso de un chat, la identificación del chat. De lo contrario, puede darse una situación en la que el usuario escriba en el chat y el bot responda en un mensaje personal.

El comando /start sin parámetros está destinado a mostrar información sobre el bot y con parámetros está destinado a la identificación. Es útil utilizarlo para acciones que requieren autorización.

Después de esto, puedes agregar algunos de tus propios comandos, por ejemplo /base64:

Def base64_decode(argumentos, mensaje): respuesta = ("chat_id": mensaje["chat"]["id"]) intente: respuesta["text"] = b64decode(" ".join(argumentos).encode("utf8 ")) excepto: respuesta["texto"] = "No puedo decodificarlo" finalmente: devolver respuesta

Para los usuarios móviles de Telegram, será útil decirle a @BotFather qué comandos acepta nuestro bot:
Yo: /establecercomandos
BotFather: elige un bot para cambiar la lista de comandos.
Yo: @******_bot
Padre Bot: Está bien. Envíame una lista de comandos para tu bot. Utilice este formato:

Comando1 - Descripción
comando2 - Otra descripción
I:
whoisyourdaddy - Información sobre el autor
base64 - decodificación Base64
BotFather: ¡Éxito! Lista de comandos actualizada. /ayuda

Con esta descripción, si el usuario escribe /, Telegram mostrará útilmente una lista de todos los comandos disponibles.

4. Libertad

Como puede ver, Telegram envía el mensaje completo, no dividido, y la restricción de que los comandos comiencen con una barra es solo para comodidad de los usuarios de dispositivos móviles. Gracias a esto, podrás enseñarle al bot a hablar un poco humanamente.

ACTUALIZACIÓN: Como sugirieron correctamente, esto sólo sucederá a través de comunicación personal. En los chats solo se aceptan mensajes que comiencen con el comando (/ ) (https://core.telegram.org/bots#privacy-mode)

Para que el bot reciba todos los mensajes en grupos, escriba el comando @BotFather /setprivacidad y desactivar la privacidad.

Primero, agregue un controlador a Handler:

Si texto == "/": ... más: respuesta = CMD[" "](mensaje) logging.info("RESPUESTA\t%s\t%s" % (mensaje["chat"]["id"], respuesta)) send_reply(respuesta)
Y luego agregamos pseudo-voz a la lista de comandos:

RESPUESTAS = ( "Hola": ["¡Hola!", "¡Hola!", "¡Bienvenido!", "¡Hola, (nombre)!"], "Hola": ["¡Hola!", "Hola, (nombre) )!", "¡Hola!", "¡Bienvenido!"], "¡Hola!": ["¡Hola!", "¡Hola, (nombre)!", "¡Bienvenido!", "¡Hola!"], "Bienvenido" : ["¡Hola!", "¡Hola!", "¡Hola!", "¡Hola, (nombre)!",], ) def human_response(mensaje): leven = fuzzywuzzy.process.extract(message.get("texto ", ""), RESPONSES.keys(), límite=1) respuesta = ("chat_id": mensaje["chat"]["id"]) si es leve< 75: response["text"] = "I can not understand you" else: response["text"] = random.choice(RESPONSES.get(leven)).format_map({"name": message["from"].get("first_name", "")}) return response
Aquí, la constante empírica 75 refleja relativamente bien la probabilidad de que el usuario realmente quisiera decir. Y format_map es conveniente para la misma descripción de cadenas que requieren y sin sustitución. Ahora el bot responderá a los saludos y, a veces, incluso te llamará por tu nombre.

5. No mensajes de texto.

Los bots, como cualquier usuario normal de Telegram, no sólo pueden escribir mensajes, sino también compartir imágenes, música y pegatinas.

Por ejemplo, ampliemos el diccionario de RESPUESTAS:

RESPUESTAS["¿Qué hora es?"] = [" ", "(fecha) UTC"]
Y captaremos el texto. :

Si respuesta["texto"] == " ": respuesta["sticker"] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC" del respuesta["texto"]
Se puede ver que ahora la estructura del Mensaje ya no contiene texto, por lo que es necesario modificar send_reply:

Def send_reply(respuesta): si "etiqueta" en respuesta: api.post(URL + "enviarSticker", datos=respuesta) elif "texto" en respuesta: api.post(URL + "enviarMensaje", datos=respuesta)
Y listo, ahora el bot ocasionalmente enviará una pegatina en lugar de la hora:

6. Oportunidades

Gracias a la comodidad de la API y al inicio rápido, los bots de Telegram pueden convertirse en una buena plataforma para automatizar sus acciones, configurar notificaciones, crear cuestionarios y competiciones basadas en tareas (CTF, DozoR y otros).

Mirando hacia atrás, puedo decir que ahora hay menos perversiones y el trabajo es más transparente.

7. Limitaciones

Desafortunadamente, en este momento existe una limitación en el uso de webHook: solo funciona a través de https y solo con un certificado válido, lo cual, por ejemplo, sigue siendo crítico para mí debido a la falta de soporte para DNS dinámico por parte de las autoridades de certificación.

Afortunadamente, Telegram también puede funcionar con actualizaciones manuales, por lo que sin cambiar el código, puedes crear otro servicio Puller que las descargará y las enviará a una dirección local:

Mientras que es verdadero: r = request.get(URL + "?offset=%s" % (último + 1)) si r.status_code == 200: para mensaje en r.json()["resultado"]: último = int (mensaje["update_id"]) request.post("http://localhost:8888/", data=json.dumps(message), headers=("Content-type": "application/json", "Aceptar" : "texto/sin formato")) else: logging.warning("FAIL " + r.text) time.sleep(3)

PD Con respecto al punto 7, encontré una solución conveniente: alojar el bot no en casa, sino en Heroku, ya que todos los nombres como *.herokuapp.com están protegidos por su propio certificado.

UPD: Telegram ha mejorado el Bot Api, por lo que ya no es necesario tener una función separada para enviar mensajes cuando se instala un webhook, y en respuesta a una solicitud POST puedes responder con el mismo JSON generado con un mensaje de respuesta. , donde uno de los campos está configurado como h "method": "sendMessage" (o cualquier otro método utilizado por el bot).

Etiquetas: Agregar etiquetas

Marketing de contenidos

¿Cómo crear un bot en Telegram sin conocimientos de programación?

¿Necesitas tu propio chatbot? Para diseñarlo, no es necesario poseer código: las tecnologías modernas y los servicios gratuitos permiten crear un bot de Telegram sin programación, de forma rápida y sencilla.

Si necesita un producto simple sin inteligencia artificial, puede hacerlo usted mismo. Hoy analizaremos el proceso de creación y configuración de un chatbot básico: usando el servicio Manybot como ejemplo.

Pero primero - teoría :)

Ya hemos escrito por qué se necesitan bots en Telegram, Facebook, WhatsApp y otros mensajeros, pero lo repetiremos. Si nos fijamos en los números, los chatbots se convertirán en la "próxima gran novedad"; por ejemplo, la audiencia de mensajería instantánea ya ha superado a la audiencia de las redes sociales y la brecha sigue creciendo. Los beneficios de los bots para la audiencia son obvios. Esto es cómodo: reservan billetes, piden comida, piden taxis, buscan información y son adecuados para muchas otras funciones. También se abren interesantes oportunidades para los negocios:

  • nuevo canal de comercialización;
  • baja (todavía) competencia;
  • alta interactividad (los robots interactúan bien);
  • el beneficio real de la herramienta (si la proporcionas crearás valor y fortalecerás la imagen de marca).

Así es más o menos cómo funcionan los robots de Telegram para crear la "cara" de una empresa. Por cierto, su propio interlocutor de chat le dará a su empresa un toque "progresista"; después de todo, esta es una tendencia ruidosa, pero aún poco común, en Rusia.

¿Cómo funcionan los chatbots?

Veamos los principios de funcionamiento de dichos programas. Hay dos tipos de bots. Los primeros son “sencillos”, basados ​​en comandos, mientras que los segundos están dotados de inteligencia artificial. Con los primeros está más claro: su "sistema nervioso" está sujeto a estrictos algoritmos y reglas. "Si el usuario envía la solicitud A, yo hago B". Hierro y sin interpretación.

Pero, ¿cómo funcionan los robots de Telegram “cargados” de conciencia? Se basan en el aprendizaje automático y la minería de datos. Para explorar completamente estos términos, debe escribir una disertación. Pero el punto es crear algoritmos que puedan aprender. Hay dos formas: inductiva (aprendizaje mediante la búsqueda de patrones generales) y deductiva: aprendizaje mediante la descarga de toda la matriz de datos. Aún es controvertido si la segunda vía tiene algo que ver con los sistemas de autoaprendizaje. Y lo más probable es que no sea así. Por lo tanto, en la ciencia moderna, se acostumbra considerar que los algoritmos de aprendizaje automático funcionan de manera inductiva, buscando patrones en los datos e interpretándolos.

Pero dejemos atrás las matemáticas. Las plataformas especiales con una interfaz "humana" saben cómo funciona un bot de Telegram, y esto es suficiente para crearlo sin poseer el código.

Lanzar un bot sin conocer el código

Volvamos al tema del artículo: hablemos de cómo crear un bot de chat de Telegram utilizando el servicio Manybot. Lo elegimos por varias razones. Lo principal es que hoy en día es la solución más adecuada en ruso con una interfaz sencilla. El sistema realmente ayuda a crear un bot en todas las etapas y no requiere conocimientos de código o API. Hay alternativas en inglés, pero o son más complejas o no son “amigables” con el mensajero Telegram. Así que por ahora - Manybot :)

Esta plataforma fue creada por Mikael Jan, hijo del fundador de Abbyy y un talentoso emprendedor por derecho propio. Pero no se trata de él, sino de su creación. Manybot es un chatbot que te ayuda a personalizar tu bot. Veamos el proceso paso a paso.

1. En el sitio web, vaya a la CTA."Abrir Manybot en Telegram": la acción supone que ya tienes una cuenta en Messenger :)

2. Esto te llevará al robot asistente. Después del saludo, como en los cuentos de hadas o en los juegos de computadora, inmediatamente entregará la siguiente misión :) Todos los bots en Telegram se registran y configuran a través del "bot principal", cuyo nombre es @BotFather.

Por lo tanto, para agregar un bot, primero debes registrarlo con el “Padrino” del mensajero. En la siguiente captura de pantalla, el propio Manybot nos lo explica.


3. Bien, vayamos a @BotFather- Por cierto, habla inglés. Primero, le das el comando /newbot, después de lo cual te preguntará sobre el nombre y el "nombre de usuario" del bot. El primero se mostrará como el nombre del chat y el segundo será la "dirección" del bot en el sistema.

Después de elegir un nombre (o encontrar uno gratuito entre los que sean adecuados), ingrese el comando /token. Es necesario regresar a Manybot. Por cierto, aquí se explica cómo crear un chatbot en Telegram; después de todo, formalmente está listo. Lo más interesante sigue siendo: configurarlo y "aprender" los comandos.


4. Copie el token y regrese a Manybot. Ya solo queda enviar el código copiado al sistema y configurar la descripción del bot. Esta es una especie de CTA: un pequeño texto que saluda a los nuevos usuarios. Explique por qué los clientes potenciales necesitan un bot de Telegram y por qué deberían suscribirse a él.


5. Manybot devolvió un enlace a tu bot. Ya puede hacer algunas cosas; por ejemplo, usando el comando /start, muestra el texto ingresado previamente y el menú del desarrollador. Nota: las funciones después del texto "Usar/desactivar para pausar su suscripción" no son visibles y no están disponibles para los usuarios normales.

Las interacciones con los bots se basan en comandos, por lo que crearemos varios para los nuestros. Seleccione /comandos.


6. Crea un equipo. Por cierto, si resulta confuso de dónde provienen la interfaz y los comandos de un bot apenas registrado, repitamos, esta es la interfaz del servicio Manybot. Sus clientes no verán la funcionalidad. Entonces, la plataforma del bot te pide que elijas un nombre de equipo.


7. Ahora haremos el botón del menú principal., atado al equipo. Seleccione los elementos: "Personalizar el menú principal" / "Agregar elemento de menú", seleccione el comando ("/read_news" en nuestro caso) y establezca el nombre del elemento (para nosotros es "Artículos nuevos").


8. La siguiente captura de pantalla es una "prueba" de nuestro equipo. Funciona como un reloj :)


9. Agregue un boletín aleatorio. Seleccione el elemento del menú "Habilitar modo de mensajes aleatorios" y adjunte publicaciones al equipo: de dos a varios cientos, el límite no está especificado. Así, a petición del usuario, el sistema emitirá una de estas publicaciones en orden aleatorio.

Decidimos agregar el comando /random_article, vinculado al elemento "Obtener artículo aleatorio". Hay tres mensajes adjuntos al equipo con enlaces a publicaciones del blog de RoboMarketing.

Las capturas de pantalla a continuación muestran cómo lo hicimos:

Y otra “prueba de funcionamiento”. Funciona genial :)

En lugar de una conclusión

Por supuesto, estos son los conceptos básicos: sólo dos puntos elementales. Pero ahora tienes una idea de cómo crear un bot de Telegram para tontos. Tienes una base que se amplía con la lectura de artículos, el estudio de lenguajes de programación y la autoeducación en general.

Manybot está lejos de ser el único servicio. Hay un Meya en inglés para creadores de bots más avanzados, ChatFuel para Facebook Messenger y muchas otras opciones... de las que hablaremos en los siguientes materiales 😉

Hacemos un bot sencillo para publicar noticias en un canal y responder preguntas automáticamente en 6 pasos.

A marcadores

Material preparado con el apoyo de

Tras acaloradas discusiones en la prensa informática sobre la eficacia de los chatbots, han encontrado su hueco en el ecosistema de usuarios y empresas. Por ejemplo, los proyectos suelen implementar bots para notificar ciertos eventos y los servicios de soporte los utilizan para responder rápidamente a las preguntas frecuentes de los clientes.

En este tutorial, veremos la forma más sencilla de crear un bot con tus propias manos y explicaremos cómo funciona.

Comencemos por desarrollar un bot que pueda enviar automáticamente al canal Telegram las noticias de la empresa publicadas en el sitio web o en Facebook.

Paso 1. Crea un bot en Telegram

Un bot de Telegram se crea utilizando otro bot llamado BotFather. Le enviamos el comando /newbot, seleccionamos el nombre que se mostrará en la lista de contactos y la dirección. Por ejemplo, "Bot para DTF" con la dirección "dtf_news_bot".

Si la dirección no está ocupada y el nombre se ingresa correctamente, BotFather responderá con un mensaje con un token: la "clave" para acceder al bot creado. Debe conservarse y no mostrarse a nadie.

A través de BotFather también puedes agregar un avatar para el bot, una descripción, etc.

Paso 2. Crea un canal en Telegram

Ahora creamos un canal con cualquier nombre y dirección, y vamos a su configuración. Todo lo que se requiere es agregar el bot que creamos a la lista de administradores; será el que publicará notas en el canal.

Para buscar un bot, puede utilizar su dirección. Por ejemplo, "dtf_news_bot".

Paso 3: crea una condición

El siguiente paso es enseñarle al bot a enviar noticias desde el sitio al canal creado. Para ello utilizaremos el popular servicio de automatización IFTTT.

Con su ayuda, puedes crear instrucciones para que funcione el bot. En nuestro caso, se ve así: cada vez que aparece una nueva entrada en el feed RSS del sitio, debe enviar un mensaje al canal Telegram.

IFTTT significa Si esto, entonces aquello

Vaya a la sección "Mis subprogramas" de IFTTT, haga clic en el botón "Nuevo subprograma" y luego en el enlace "Este". Busque el activador Feed, Nuevo elemento de feed en la lista de funciones e indique la URL de nuestro feed RSS. Por ejemplo, para los sitios de Wordpress, generalmente se encuentra en example.com/feed/.

En lugar de una fuente RSS, puede realizar un seguimiento de la aparición de nuevas publicaciones en su cuenta de Twitter o Facebook: IFTTT tiene módulos separados para cada función.

Ahora pasemos al segundo paso: seleccione la acción que se realizará cuando se detecte una nueva entrada en RSS. Haga clic en "Eso" y busque Maker Webhook, "Realizar una solicitud web". Con este módulo puede enviar solicitudes a cualquier servicio. En nuestro caso, a un bot en Telegram.

En el formulario que se abre, en el campo URL debe especificar el enlace https://api.telegram.org/bot SIMBÓLICO/sendMessage, sustituyendo en él el token generado en el primer paso. Método: POST, tipo de contenido: aplicación/json.

Cuerpo: campo de la plantilla de solicitud que se enviará a Telegram. En él indicamos a qué canal se debe enviar el mensaje y qué se debe escribir en él:

("chat_id":"@channel_address", "text":"((EntryTitle)) ((FeedUrl))")

  • id_chat- dirección del canal al que se debe enviar el mensaje. Por lo tanto, un bot se puede conectar a varios canales a la vez. También puede especificar un usuario específico como destinatario. En este caso, en lugar de la dirección del canal, debe especificar su ID (se puede obtener mediante un bot).
  • texto- contenido del mensaje. Por ejemplo, el título del material de RSS (EntryTitle), su contenido (EntryContent) y enlace (FeedUrl). La lista de opciones disponibles se puede ver haciendo clic en el botón Ingrediente.

Si todo está configurado correctamente, el bot enviará un mensaje desde el feed RSS al canal. El activador en IFTTT tiene un retraso, por lo que un mensaje que aparece en el feed RSS no se enviará a Telegram inmediatamente, sino después de 30 a 60 minutos.

Puede seleccionar cualquier otro escenario disponible en IFTTT como condición para enviar un mensaje. Por ejemplo, Weather Underground puede enviar un mensaje todos los días con el pronóstico del tiempo para mañana. El activador de acciones se puede configurar para enviar los precios de las acciones al cierre de la operación.

Ahora resolveremos un problema más complejo: enseñaremos al bot creado a responder a los mensajes de los usuarios. Por ejemplo, enviar una lista de precios, contactos o responder preguntas frecuentes de los clientes.

Paso 4. Conecte el servidor

En esta etapa, necesitará alojamiento web y un certificado SSL, que puede obtener de forma gratuita utilizando el servicio Let's Encrypt.

La forma más conveniente es crear un subdominio separado para el bot, por ejemplo, bot.example.com, y colocar un archivo index.php en él. Dentro del archivo colocamos el código de un simple bot de la web de Telegram.

Sólo necesitas realizar dos cambios en el código del bot:

  • en línea define("BOT_TOKEN", "12345678:reemplázame-con-token-real"); en lugar de 12345678:reemplázame-con-token-real escribe el token obtenido en el primer paso;
  • en línea define("WEBHOOK_URL", "https://mi-sitio.example.com/ruta-secreta-para-webhooks/"); En lugar de https://my-site.example.com/secret-path-for-webhooks/, especifique la URL del archivo con el código del bot: https://bot.example.com/index.php.

Paso 5. Vincular el bot de Telegram y el servidor

Ahora necesitamos vincular Telegram y el archivo en el servidor para que nuestro script procese las solicitudes enviadas al bot en el Messenger.

Necesitará una consola para esto. Para diferentes proveedores de alojamiento, puede estar ubicado en diferentes secciones de la interfaz de administración del sitio. También puede utilizar el programa Terminal en macOS ingresando el comando ssh nombre de usuario@dirección de dominio.

Después de ingresar la contraseña, imprimimos un comando simple para nuestro subdominio. :

php -f /var/www/bot.example.com/index.php

Encantado de conocerte: la respuesta del bot a un mensaje enviado por el usuario.

A continuación, en el código, agregamos respuestas adicionales. Por ejemplo, para que dependiendo de la palabra enviada, el bot envíe la información necesaria al usuario (como en




Arriba