Crear un Bot de Telegram con PHP


Telegram es una aplicacion de mensajeria que es popular por sus grupos, una comunidad creciente y la posibilidad de crear bots para casi todo, veamos como crear un simple bot.

Para crear un bot es necesario tener una cuenta de telegram o telegram instalado en nuestro telefono o pc.

Para crear un Bot o manejar nuestros bots de telegram es necesario iniciar conversacion con el bot Botfather https://t.me/botfather, este bot nos indicara como crear bots, para ello tenemos que estar en la aplicacion de Telegram, iniciar conversacion con BotFather.

Lo haremos una vez en botfather es enviar el comando /newbot y se iniciara un asistente para la creacion de bots donde le pondremos un nombre al bot, un nombre de usuario con terminacion “bot” y nos retornara el codigo o token del bot.

Tambien nos retornara un enlace para iniciar conversaciones con nuestro Bot por ejemplo : https://t.me/phpzilla_bot

El Token del Bot nos servira para hacer operaciones y comandos usando la API de Telegram.

Una vez que tenemos el Token ahora vamos a hacer el codigo del Bot el cual va de la siguiente manera.

Codigo

A continuacion el codigo php para que nuestro Bot funcione.

<?php
# Ruta para la API de Telegram
$path = "https://api.telegram.org/bot<TU_TOKEN>";
# Leemos los datos que se envian
$update = json_decode(file_get_contents("php://input"), TRUE);
# identificamos el Chat Id
$chatId = $update["message"]["chat"]["id"];
# Identificamos el mensaje
$message = $update["message"]["text"];
# Si el mensaje es /hola le enviamos una respuesta al Chat
if (strpos($message, "/hola") === 0) {
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Que tal");
}
#Si el mensaje es /bien le enviamos Otra Respuesta
else if (strpos($message, "/bien") === 0) {
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Bien igualmente!");
}
# En caso de cualquier otra cosa enviamos Una respuesta diferente
else{
file_get_contents($path."/sendmessage?chat_id=".$chatId."&text=Bienvenido a PHPZilla Bot by Evilnapsis!");
}
?>

En nuestro bot telemos 2 comandos /hola y /bien asi podemos usar nuestros bots para crear menus o respuestas personalizadas.

Este codigo sera nuestro WebHook que recibira los mensajes, los procesara y los enviara a Telegram para que telegram lo envie al receptor.

Registrar la URL del WebHook en Telegram

Primero que nada debemos subir el codigo de nuestro bot a un servidor web, que admita PHP, despues debemos tener a la mano la URL donde subimos el Bot.

En mi caso mi bot lo puse en la siguiente URL: https://evilnapsis.com/demo/bots/bot1/mybot.php

Ahora debemos escribir en el navegador web la siguiente url.

https://api.telegram.org/bot<TU_TOKEN>/setWebhook?url=<TU_WEBHOOK_URL>

Recordando cambiar los valores de <TU_TOKEN> por el token de tu Bot y <TU_WEBHOOK_URL> por la url de tu servidor donde guardaste tu codigo php. Es importante que tu webhook este en un servidor que tenga HTTPS.

Una vez creada y ejecutada la URL en el nacegador nos retornara una respuesta como esta.

{"ok":true,"result":true,"description":"Webhook was set"}

Lo que significa que ya nuestro WebHook fue registrado.

Ahora ya solo nos queda usar el enlace que se nos creo para comunicarnos con nuestro bot. En mi caso https://t.me/phpzilla_bot y empezar a conversar con el.

Y listo ya tenemos nuestro bot para empezar a hacer pruebas y experimentos.