Chatbots en PHP: guía práctica para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción: ¿por qué PHP es una excelente opción para un chatbot?

\n

¿Alguna vez te has preguntado cómo funcionan esos asistentes inteligentes que responden preguntas en Telegram, VK o en un sitio web? Muchos piensan que para crear un chatbot se necesita saber Python o Node.js. Pero la verdad es que un chatbot en PHP no solo es posible, sino también muy conveniente. PHP es un lenguaje maduro con una gran comunidad y es perfecto para la creación rápida de prototipos y el lanzamiento de bots.

\n

En esta guía, recorreremos el camino desde cero hasta tener un bot de Telegram en PHP funcionando. Analizaremos dos enfoques: un bot eco simple en Localhost y un bot con conexión a una base de datos. Spoiler: habrá mucho código que podrás copiar y ejecutar ahora mismo.

\n\n

¿Qué es un chatbot y cómo funciona?

\n

Antes de escribir código, analicemos la arquitectura. Un chatbot es un programa que recibe un mensaje de un usuario, lo procesa y envía una respuesta. En el contexto de Telegram (la plataforma más popular para bots), el esquema es el siguiente:

\n
    \n
  • El usuario le escribe al bot en Telegram.
  • \n
  • Telegram envía una solicitud POST a tu servidor (Webhook) o tú consultas el servidor constantemente (Long Polling).
  • \n
  • Tu script PHP procesa la solicitud y envía una respuesta a través de la API de Telegram.
  • \n
\n

Usaremos Webhook, que es una forma moderna y rápida. Imagina que Telegram llama a la puerta de tu servidor cada vez que llega un nuevo mensaje. Práctico, ¿verdad?

\n\n

Preparación: ¿qué necesitas para empezar?

\n

Para crear un chatbot simple en PHP necesitarás:

\n
    \n
  • Un hosting o un servidor local (OpenServer, XAMPP, MAMP) con PHP 7.4+.
  • \n
  • Acceso a Internet (para registrar el bot en Telegram).
  • \n
  • Conocimientos básicos de PHP (variables, funciones, trabajo con JSON).
  • \n
\n

Si no tienes hosting, no te preocupes: en la fase de pruebas puedes usar Localhost con la utilidad ngrok, que crea una URL pública temporal. Pero hablaremos de eso más adelante.

\n\n

Paso 1. Registro del bot en Telegram

\n

Ve a Telegram, busca a BotFather (el bot oficial para crear bots) y escribe el comando /newbot. Responde las preguntas: dale un nombre (por ejemplo, MyTestBot) y un username (debe terminar en bot, por ejemplo my_test_pythonlib_bot).

\n

Después de un registro exitoso, BotFather te dará un token: esta es la clave de acceso a la API. Se ve así: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11. Guárdalo en un lugar seguro (mejor en un archivo .env, pero para simplificar, por ahora lo pondremos directamente en el código).

\n

Importante: ¡No le muestres tu token a nadie! Es la contraseña de tu bot.

\n\n

Paso 2. Bot eco simple en PHP (Webhook)

\n

Crea un archivo bot.php en la raíz de tu sitio web. Este script recibirá solicitudes de Telegram y responderá con el mismo texto (eco).

\n\n
<?php\n// Recibimos los datos de Telegram\n$content = file_get_contents("php://input");\n$update = json_decode($content, true);\n\n// Verificamos si hay un mensaje\nif (!$update) {\n    exit;\n}\n\n// Extraemos el ID del chat y el texto del mensaje\n$chat_id = $update['message']['chat']['id'];\n$text = $update['message']['text'];\n\n// Token de tu bot\n$token = "TU_TOKEN_AQUÍ";\n\n// Enviamos la respuesta (eco)\n$url = "https://api.telegram.org/bot{$token}/sendMessage";\n$data = [\n    'chat_id' => $chat_id,\n    'text' => "Escribiste: " . $text\n];\n\n// Usamos cURL para enviar la solicitud\n$ch = curl_init();\ncurl_setopt($ch, CURLOPT_URL, $url);\ncurl_setopt($ch, CURLOPT_POST, 1);\ncurl_setopt($ch, CURLOPT_POSTFIELDS, $data);\ncurl_setopt($ch, CURLOPT_RETURNTRANSFER, true);\n$result = curl_exec($ch);\ncurl_close($ch);\n?>
\n\n

¿Cómo funciona?

\n
    \n
  1. Telegram envía una solicitud POST a tu archivo bot.php.
  2. \n
  3. Leemos la entrada

Blogs

Book Recommendations