¿Por qué PHP es un excelente lenguaje para un chatbot?
\nCuando se habla de crear chatbots, muchos piensan inmediatamente en Python o Node.js. Pero PHP, en el que funciona pythonlib.ru y gran parte de internet, no se queda atrás en esta tarea. PHP tiene tres ventajas principales: facilidad de implementación en cualquier hosting, una gran cantidad de bibliotecas listas y una sintaxis clara. Si ya estás familiarizado con PHP, podrás escribir tu primer chatbot en una tarde. En este artículo, analizaremos la creación de un chatbot en PHP desde cero, comenzando con el registro en Telegram y terminando con el procesamiento de comandos complejos.
\nNo usaremos frameworks, solo PHP puro y una biblioteca oficial. Esto te permitirá entender cómo funciona todo "bajo el capó". Luego, podrás migrar fácilmente a cualquier framework moderno (Laravel, Symfony) para escalar.
\n\n¿Qué necesitas para empezar?
\nAntes de escribir código, preparemos el entorno de trabajo. Para el desarrollo de un bot en PHP necesitarás:
\n- \n
- Servidor web (Apache o Nginx) con PHP 7.4 o superior: cualquier hosting o OpenServer en tu máquina local servirá. \n
- Acceso a HTTPS — Telegram requiere una conexión segura para Webhook (puedes usar ngrok para desarrollo local). \n
- Composer — gestor de paquetes para PHP (instalación con un solo comando). \n
- Cuenta de Telegram — para registrar el bot y probarlo. \n
Si ya tienes un sitio web en PHP, como pythonlib.ru, puedes agregar el bot directamente en un subdominio; es conveniente y no requiere costos adicionales.
\n\nRegistro del bot en Telegram
\nAbre Telegram, busca a BotFather (el bot oficial para crear bots) y envía el comando:
\n/newbot\nBotFather te pedirá que inventes un nombre y un username para tu bot. El username debe terminar en bot, por ejemplo: MyFirstPHPBot. Después del registro exitoso, recibirás un token, una cadena larga como esta:
1234567890:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw\nGuarda este token — lo necesitarás para todas las solicitudes a la API. No lo compartas con nadie, de lo contrario tu bot podría ser hackeado.
\n\nArquitectura del chatbot: Long Polling vs Webhook
\nHay dos formas de hacer que el bot reciba mensajes:
\n- \n
- Long Polling — el bot "consulta" constantemente al servidor de Telegram preguntando: "¿Hay mensajes nuevos?". Es más fácil para depurar, pero carga el servidor. \n
- Webhook — Telegram envía una solicitud POST a tu URL cuando alguien le escribe al bot. Es más rápido y confiable, requiere HTTPS. \n
En esta guía práctica usaremos Webhook, ya que es el estándar moderno para bots en producción. Se puede configurar con un solo comando a través del navegador.
\n\nPaso 1: Instalamos la biblioteca para trabajar con Telegram API
\nPara no tener que escribir el análisis JSON y el envío de solicitudes manualmente, instalaremos la biblioteca oficial de PHP de Telegram. Abre la terminal en la carpeta de tu proyecto y ejecuta:
\ncomposer require telegram-bot/api\nEsta biblioteca soporta todos los métodos de la API y se actualiza junto con Telegram. Después de la instalación, aparecerán las carpetas vendor y el archivo composer.json.
Paso 2: Script básico para procesar mensajes entrantes
\nCrea un archivo bot.php — este será el punto de entrada para Webhook. Aquí tienes el código mínimo que responde "¡Hola!" a cualquier mensaje:
<?php\nrequire_once __DIR__ . '/vendor/autoload.php';\n\nuse Telegram\\Bot\\Api;\n\n$token = 'TU_TOKEN_AQUÍ';\n$telegram = new Api($token);\n\n// Obtenemos la actualización entrante\n$update = $telegram->getWebhookUpdate();\n\n// Extraemos el texto del mensaje y el ID del chat\n$message = $update->getMessage();\n$chatId