Saltar a contenido

Fallback

Fallback para Verificaci贸n de Email en Telegram

Este c贸digo define un flujo en una aplicaci贸n de mensajer铆a de Telegram, configurado para solicitar al cliente que verifique y corrobore su direcci贸n de correo electr贸nico. En caso de recibir un email incorrecto, el flujo pedir谩 la correcci贸n de los datos.

Descripci贸n y Componentes Principales

  1. Configuraci贸n de Variables de Entorno:

  2. Se importa dotenv/config para el uso de variables de entorno definidas en el archivo .env.

  3. Importaci贸n de Proveedor de Telegram:

  4. Se importa el TelegramProvider como Provider desde la librer铆a @elimeleth/telegram, la cual se utiliza para gestionar el env铆o y recepci贸n de mensajes en Telegram.

  5. Configuraci贸n del Proveedor:

  6. Se instancia el provider, quien act煤a como el canal de comunicaci贸n entre la aplicaci贸n y el cliente en Telegram.

  7. Definici贸n del Flujo de Activaci贸n (Workflow):

  8. Se crea un Workflow llamado general con un disparador (trigger) inicial: "hola".

  9. Primer Paso: Env铆a un mensaje inicial solicitando el email del usuario (addAction), capturando la respuesta del cliente.
  10. Acci贸n Fallback: Define una acci贸n fallback para validar el mensaje del usuario:
    • Validaci贸n: Comprueba si el mensaje recibido incluye un s铆mbolo @.
    • Respuesta: Si el email es v谩lido, responde "Email recibido". De lo contrario, pide al cliente que proporcione un email correcto.
  11. Configuraci贸n de Enrutador Global (GlobalRouter):

  12. Se inicializa GlobalRouter, usando el provider de Telegram.

  13. El enrutador agrega el flujo general y comienza a escuchar las interacciones del usuario.

C贸digo Completo

import "dotenv/config"
import { TelegramProvider as Provider } from "@elimeleth/telegram"
import { Workflow, GlobalRouter } from "@elimeleth/vaincentflow"

// Proveedor: Gestiona el env铆o y recepci贸n de mensajes con el cliente
let provider = new Provider({})

// Flujos de activaci贸n
const general = new Workflow("hola", {
    metadata: {
        name: "general"
    }
})
.addAction("Hola, 驴me podr铆as proporcionar tu email?", { capture: true })
.addAction({
  fallback: async (msg) => {
    const passed = msg.includes('@')
    return {
      passed,
      message: passed ? "Email recibido" : "Ingresa un email correcto, por favor"
    }
  }
})

// Enrutador de mensajes
new GlobalRouter({
    provider
})
.addFlows([general])
.listen();