El otro día vimos como crear nuestro propio bot para telegram y comprobamos que es muy sencillo crearlo. Ahora el siguiente paso es que nuestro robot pueda mandarnos algún mensaje.

Para ello usaremos el metodo sendMessage. Los parámetros obligatorios son chat_id y text.

Analizando el código json que obtenemos con getupdate vemos que podemos obtener el identificador del chat con el que habíamos establecido la conversación en el anterior ejemplo. Cuando nuestro robot recibe un mensaje desde un grupo, si ejecutamos getUpdate vemos que obtenemos el siguiente trozo de código:

 

En el bloque “chat”, podemos ver el identificador del chat donde se ha recibido ese mensaje. En nuestro ejemplo es 13728746. Así que con el token de nuestro bot y el chat_id ya tenemos todo lo necesario para poder mandar un mensaje a esa conversación mediante código php.

 

El código quedaría de la siguiente manera:

 

 

Al ejecutar el código anterior, recibiremos un mensaje de nuestro robot:

Contestacion de Robot

 

Si añadimos el parámetro parse_mode podremos elegir en que manera formatear y pasar nuestros mensajes. Si elegimos el valor Markdown, para enviar texto en negrita por ejemplo, simplemente debemos ponerasteriscos al inicio y final del texto que queremos pasar en negrita *texto* . O si lo que queremos es ponerlo en cursiva, usaremos guiones bajos _texto_. Aquí podemos ver los formatos soportados.

 

Mensajes formateados

 

Por defecto, cuando mandemos una url como texto, telegram nos hará una vista previa.

Previsualización de la url

Esta opción la podemos desactivar con el parámetro disable_web_page_preview y poniendolo a true. El mismo mensaje con el parámetro a true tenemos:

Previsualizacion desactivada

 

También podemos hacer que nuestro robot conteste a un mensaje en concreto. Para ello necesitamos saber el id del mensaje que queremos contestar. En nuestro ejemplo es el id=2 que corresponde al message_id. Añadiendo ese parámetro a nuestro código:

 

 

Vemos que en telegram obtenemos el siguiente mensaje.

 

Mensaje cContestacion

 

El parámetro reply_markup lo trataremos más adelante ya que es algo más complejo.