Bot de Telegram en PHP

En este articulo vamos a explicar como enviar mensajes a un canal de telegram con un bot. Primero hay que crear un bot e inclurlo en el canal. En este ejemplo vamos a enviar mensajes cuando las olas sean superiores a 4 metros por lo que tenemos una tabla (prediccion) mySQL con varias columnas una de ellas es la fecha y la otra es la altura de las olas

fechaalturaolas
2020-12-085
2020-12-092
La tabla preddiccion tendrá este aspecto

Programaremos un script en PHP para que compruebe si en el día actual hay olas de mas de 4 metros y si es así que envie un mensaje al canal.
Para esto necesitamos el id del canal que lo conseguimos mandando un mensaje al canal y ejecutando la consulta:

https://api.telegram.org:443/bot<TOKEN>/getUpdates

También necesitamos el TOKEN que nos proporciona Telegram al crear el bot.

Para ello crearemos dos funciones en PHP hayOlas() que comprobará si hay olas y en caso que superen los 4 metros se ejecutará la función sendMessage() que recibirá como parametros (id canal,textoMensaje) y enviará el mensaje.
Veamos el codigo

<?php
function hayOlas(){
	
	$db=mysqli_connect($server,$user,$password,$database);
	$fecha=date('Y-m-d');
	$result=mysqli_query($db,"SELECT alturaolas from prediccion where alturaolas> 4 and fecha='$fecha'");
	$numeroFilas=mysqli_num_rows($result);
	if($numeroFilas==1){
		$texto="Hay olas de mas de 4 metros. ";
		sendMessage(<ID_CANAL>,$texto);
	}
}


function sendMessage($chatId, $text) 
{
  $TOKEN = "<NUESTRO_TOKEN>";
  $TELEGRAM = "https://api.telegram.org:443/bot$TOKEN"; 

  $query = http_build_query(array(
    'chat_id'=> $chatId,
    'text'=> $text,
    'parse_mode'=> "Markdown", // Optional: Markdown | HTML
  ));

  $response = file_get_contents("$TELEGRAM/sendMessage?$query");
 
  return $response;
}

hayOlas();
?>

Una vez escrito el script en PHP, necesitamos automatizar la tarea, para que todos los dias se ejecute el script y haga la comprobación de si hay olas, por lo que es recomendable crear una tarea programada para ejecutarlo, por ejemplo con el CRON

Mas info

En el canal DorniSoft de Telegram ya está activo este bot
Espero que te guste… 😉

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

DorniSoft Inc.