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
-
Configuraci贸n de Variables de Entorno:
-
Se importa
dotenv/configpara el uso de variables de entorno definidas en el archivo.env. -
Importaci贸n de Proveedor de Telegram:
-
Se importa el
TelegramProvidercomoProviderdesde la librer铆a@elimeleth/telegram, la cual se utiliza para gestionar el env铆o y recepci贸n de mensajes en Telegram. -
Configuraci贸n del Proveedor:
-
Se instancia el
provider, quien act煤a como el canal de comunicaci贸n entre la aplicaci贸n y el cliente en Telegram. -
Definici贸n del Flujo de Activaci贸n (
Workflow): -
Se crea un
Workflowllamadogeneralcon un disparador (trigger) inicial: "hola". - Primer Paso: Env铆a un mensaje inicial solicitando el email del usuario (
addAction), capturando la respuesta del cliente. - Acci贸n Fallback: Define una acci贸n
fallbackpara 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.
- Validaci贸n: Comprueba si el mensaje recibido incluye un s铆mbolo
-
Configuraci贸n de Enrutador Global (
GlobalRouter): -
Se inicializa
GlobalRouter, usando elproviderde Telegram. - El enrutador agrega el flujo
generaly 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();