Funciones para enviar y editar mensajes
Cómo enviar mensajes usando una cuenta de Telegram Business
tg_send_message(platform_id, text,client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities)
Parámetros:
! platform_id
ID de usuario de Telegram al que se debe enviar un mensaje *
! text
Texto del mensaje
client_message_id
ID del mensaje que se citará
reply_markup
Configuración del botón **
parse_mode
Formato de texto en negrita y cursiva en la descripción ***. Puede tener valores como html, markdown, markdownV2.
disable_web_page_preview
Mostrar vista previa del enlace. Para desactivarla, pasa 1; de lo contrario, pasa 0 o déjalo vacío "".
protect_content
Bandera de protección del contenido. Pasa cualquier valor excepto 0, False o '' para activarla.
disable_notification
Bandera de notificación sonora (predeterminado: 0). Pasa 1 para desactivar la notificación, 0 para activarla.
message_thread_id
ID del tema (disponible para supergrupos con la funcionalidad de foro habilitada)
entities
Esto te permite copiar texto preformateado junto con todos sus estilos y simplemente especificar el rango de caracteres donde debe aplicarse una fuente concreta. Puedes encontrar un ejemplo en tg_request en el campo correspondiente. El parámetro debe ser un diccionario. Consulta la pestaña de ejemplo como referencia.
Ejemplo detallado
Consideremos un ejemplo sencillo con un conjunto de parámetros obligatorios:

platform_id especifica el identificador de un cliente concreto.
Ve el mismo ejemplo, pero usando variables:

En este ejemplo, la variable soob contendrá la respuesta del servidor después de enviar un mensaje.

Si guardas el message_id de la respuesta recibida, te permitirá luego trabajar con este mensaje (editar, eliminar, reenviar, comentar).
A menudo surgen dificultades al usar todos los parámetros. Consideremos el siguiente ejemplo:
Primero, declara todos los parámetros usados en la función. Recuerda que los parámetros pueden pasarse no solo como valores, sino también como variables, lo que suele ser más cómodo y claro. Variables como platform_id y client_message_id pueden obtenerse de la tarjeta de perfil del cliente. platform_id — ID del cliente de Telegram al que debe enviarse el mensaje * >Responderemos en el mismo chat donde escribe el cliente
text - texto del mensaje. >Usamos formato de texto; por ejemplo, resaltado en negrita.
client_message_id - ID del mensaje que se citará >En los chats, a esta variable se le asigna su valor automáticamente. reply_markup — configuración de botones **. >Asignémosla a la variable opts. parse_mode — Formato de texto en negrita y cursiva en la descripción ***. Puede tener valores como html, markdown, markdownV2. Los caracteres usados para formatear el texto del mensaje se describen aquí. >Usaremos markdown. disable_web_page_preview - Mostrar vista previa del enlace. Para desactivarla, pasa 1; de lo contrario, pasa 0 o déjalo vacío "". >Podemos pasar cualquier valor, ya que el texto del mensaje no contiene un enlace. protect_content — Bandera de protección del contenido. Pasa cualquier valor excepto 0, False o '' para activarla. >No necesitamos protección del contenido, así que pasaremos una cadena vacía ''. disable_notification — Bandera de notificación sonora (predeterminado: 0). Pasa 1 para desactivar la notificación, 0 para activarla. >Una notificación es una ventana emergente que muestra el texto del mensaje. Vamos a activarla.
A continuación, ensamblamos la función. Recuerda asignar la función a una variable; esto te permitirá seguir el estado del envío del mensaje.

Esto es lo que obtuvimos: Después de que el cliente nos envía la palabra clave test, respondemos citando su mensaje.
En ok vemos el estado del envío; a continuación viene la información sobre el propio mensaje: su ID, los datos del remitente y el contenido.
Ejemplo con el entities parámetro Puedes almacenar la cadena original en una variable, como se muestra a continuación:
text = "qwert asdfg zxcvb poiuy lkjhg 12345"
Debes escribir el parámetro como un diccionario con los datos y especificar el formato deseado indicando las fuentes:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":" https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
Pasa el parámetro al final de la función que uses. El parámetro puede pasarse tanto a las funciones tg_send_message como tg_send_message_1:
x = tg_send_message(platform_id, text, None, None, None, False, False, False, None, entities)
Para asignar texto con saltos de línea a una variable, especifica el valor de la siguiente manera:
text = "First line of text" + "\n" + "Second line of text" + "\n" + "Third line"
Cómo enviar un mensaje especificando un bot concreto de Telegram
tg_send_message_1(token, platform_id, text, client_message_id, reply_markup, parse_mode, disable_web_page_preview, protect_content, disable_notification, message_thread_id, entities, business_connection_id)
! token
Token del bot de Telegram obtenido de BotFather
! platform_id
ID de usuario de Telegram al que se debe enviar un mensaje *
! text
Texto del mensaje
client_message_id
ID del mensaje que se citará
reply_markup
Configuración del botón **
parse_mode
Formato de texto en negrita y cursiva en la descripción ***. Puede tener valores como html, markdown, markdownV2.
disable_web_page_preview
Mostrar vista previa del enlace. Para desactivarla, pasa 1; de lo contrario, pasa 0 o déjalo vacío "".
protect_content
Bandera de protección del contenido. Pasa cualquier valor excepto 0, False o '' para activarla.
disable_notification
Bandera de notificación sonora (predeterminado: 0). Pasa 1 para desactivar la notificación, 0 para activarla.
message_thread_id
ID del tema (disponible para supergrupos con la funcionalidad de foro habilitada)
entities
Esto te permite copiar texto preformateado junto con todos sus estilos y simplemente especificar el rango de caracteres donde debe aplicarse una fuente concreta. Puedes encontrar un ejemplo en tg_request en el campo correspondiente. El parámetro debe ser un diccionario.
business_connection_id
El ID de Business el valor se usa al conectar el bot y se muestra en los canales. Debe proporcionarse si se incluye un token del bot en los parámetros y el mensaje necesita enviarse a través de una cuenta de usuario vinculada al bot.
Ejemplo
Ejemplo de paso del parámetro:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
El ejemplo muestra solo el diccionario, mientras que el propio texto del mensaje se asigna a una variable separada.
Cómo editar texto en un mensaje de Telegram
¡Ten en cuenta!
La función de edición de mensajes solo está disponible para mensajes nuevos y enviados recientemente.
La ventana de tiempo durante la cual se permite editar mensajes la determina el propio mensajero y depende de la carga/actividad de tu bot; puede acortarse para la edición.
Según el soporte técnico del mensajero, el plazo óptimo para editar un mensaje es de 48 horas.
tg_edit_message_text(platform_id, message_id, text, reply_markup, parse_mode, disable_web_page_preview, entities)
! platform_id
ID de usuario de Telegram al que se debe enviar un mensaje *
! message_id
ID del mensaje que se va a editar. Este ID debe haberse guardado previamente al enviar el mensaje.
! text
Texto del mensaje
reply_markup
Configuración del botón **
parse_mode
Formato de texto en negrita y cursiva en la descripción ***. Puede tener valores como html, markdown, markdownV2.
disable_web_page_preview
Mostrar vista previa del enlace. Para desactivarla, pasa 1; de lo contrario, pasa 0 o déjalo vacío "".
entities
Esto te permite copiar texto preformateado junto con todos sus estilos y simplemente especificar el rango de caracteres donde debe aplicarse una fuente concreta. Puedes encontrar un ejemplo en tg_request en el campo correspondiente. El parámetro debe ser un diccionario.
Cómo enviar una reacción a un mensaje
tg_set_reaction(platform_id, message_id, reaction)
! platform_id
ID del chat de Telegram
! message_id
ID del mensaje
! reacción
La reacción requerida se pasa como una cadena.
Ejemplo
Ejemplo de código para copiar:
react = tg_set_reaction(platform_id, 1556, '👌')
Ejemplo en la calculadora:

Cómo editar la descripción de un archivo adjunto
tg_edit_message_caption(platform_id, message_id, caption, reply_markup, parse_mode, entities, show_caption_above_media)
! platform_id
ID de usuario de Telegram al que se debe enviar un mensaje *
! message_id
ID del mensaje que se va a editar
! caption
Texto de la descripción
reply_markup
Configuración del botón **
parse_mode
Formato de texto en negrita y cursiva en la descripción ***. Puede tener valores como html, markdown, markdownV2.
entities
Esto te permite copiar texto preformateado junto con todos sus estilos y simplemente especificar el rango de caracteres donde debe aplicarse una fuente concreta. Puedes encontrar un ejemplo en tg_request en el campo correspondiente. El parámetro debe ser un diccionario.
Ejemplo de paso del parámetro:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://,mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
El ejemplo muestra solo el diccionario, mientras que el propio texto del mensaje se asigna a una variable separada.
show_caption_above_media
Toma el valor True; si se especifica este parámetro, el texto del mensaje se mostrará encima del archivo adjunto.
Cómo editar adjuntos multimedia en un mensaje
! platform_id
ID de usuario de Telegram al que se debe enviar un mensaje *
! message_id
ID del mensaje que se va a editar. Este ID debe haberse guardado previamente al enviar el mensaje.
! media
Un diccionario que describe el archivo multimedia:
Ejemplo de un diccionario JSON para reemplazar una foto enviada previamente:
media = '{"type": "photo", "media": "<file_to_send>"}'
donde se recomienda que <file_to_send> sea el file_id obtenido mediante el webhook de Telegram.
Para más detalles, los parámetros del diccionario se describen en la documentación oficial de Telegram documentación de Telegram.
reply_markup
Configuración del botón **
Cómo editar un teclado en línea en un mensaje
Solo puedes editar un teclado en línea.
Ejemplo: edición de mensajes con la API de Telegram
A continuación puedes encontrar un ejemplo detallado de trabajo con las funciones de la API de Telegram para editar mensajes.
Cómo copiar un mensaje
tg_copy_message(platform_id, from_chat_id, message_id, reply_to_message_id, reply_markup, parse_mode, protect_content, disable_notification, caption, message_thread_id, entities, show_caption_above_media)
! platform_id
ID de usuario de Telegram AL que se debe copiar un mensaje *
! from_chat_id
ID de usuario de Telegram DESDE el que se debe copiar un mensaje *
! message_id
ID del mensaje que se copiará
reply_to_message_id
ID del mensaje original si el mensaje copiado es un comentario
reply_markup
Configuración del botón **
parse_mode
Formato de texto en negrita y cursiva en la descripción ***.
Puede tener valores como html, markdown, markdownV2.
protect_content
Bandera de protección del contenido. Pasa cualquier valor excepto 0, False o '' para activarla.
disable_notification
Bandera de notificación sonora (predeterminado: 0). Pasa 1 para desactivar la notificación, 0 para activarla.
caption -
Descripción de hasta 1024 caracteres.
message_thread_id
ID del tema (disponible para supergrupos con la funcionalidad de foro habilitada)
entities
Esto te permite copiar texto preformateado junto con todos sus estilos y simplemente especificar el rango de caracteres donde debe aplicarse una fuente concreta. Puedes encontrar un ejemplo en tg_request en el campo correspondiente. El parámetro debe ser un diccionario.
Ejemplo de paso del parámetro:
entities = [{"offset":0,"length":5,"type":"bold"},{"offset":6,"length":4,"type":"text_link","url":"https://mavibot.ai"},{"offset":11,"length":9,"type":"strikethrough"},{"offset":21,"length":6,"type":"spoiler"},{"offset":29,"length":12,"type":"code"}]
El ejemplo muestra solo el diccionario, mientras que el propio texto del mensaje se asigna a una variable separada.
show_caption_above_media
Toma el valor True; si se especifica este parámetro, el texto del mensaje se mostrará encima del archivo adjunto.
Cómo reenviar un mensaje
tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)
! platform_id
ID de usuario de Telegram AL que se debe enviar un mensaje *
! from_chat_id
ID de usuario de Telegram DESDE el que se debe enviar un mensaje *
! message_id
ID del mensaje reenviado
protect_content
Bandera de protección del contenido. Pasa cualquier valor excepto 0, False o '' para activarla.
disable_notification
Bandera de notificación sonora (predeterminado: 0). Pasa 1 para desactivar la notificación, 0 para activarla.
message_thread_id
ID del tema (disponible para supergrupos con la funcionalidad de foro habilitada)
Cómo eliminar un mensaje
tg_delete_message(platform_id, message_id)
! Usa este método para eliminar un mensaje, incluidos los mensajes de servicio, con las siguientes restricciones:
Un mensaje solo puede eliminarse si se envió hace menos de 48 horas.
Los mensajes con dados en un chat privado solo pueden eliminarse si se enviaron hace más de 24 horas.
Los bots pueden eliminar mensajes salientes en chats privados, grupos y supergrupos.
Los bots pueden eliminar mensajes entrantes en chats privados.
Los bots con el can_post_messages permiso pueden eliminar mensajes salientes en los canales.
Si un bot es administrador de un grupo, puede eliminar cualquier mensaje allí.
Si un bot tiene el can_delete_messages permiso en un supergrupo o canal, puede eliminar cualquier mensaje allí.
! platform_id
ID de usuario de Telegram *
! message_id
ID del mensaje que se va a eliminar
Cómo eliminar varios mensajes
tg_delete_messages(platform_id, message_ids)
! Usa este método para eliminar un mensaje, incluidos los mensajes de servicio, con las siguientes restricciones:
Un mensaje solo puede eliminarse si se envió hace menos de 48 horas.
Los mensajes con dados en un chat privado solo pueden eliminarse si se enviaron hace más de 24 horas.
Los bots pueden eliminar mensajes salientes en chats privados, grupos y supergrupos.
Los bots pueden eliminar mensajes entrantes en chats privados.
Los bots con el can_post_messages permiso pueden eliminar mensajes salientes en los canales.
Si un bot es administrador de un grupo, puede eliminar cualquier mensaje allí.
Si un bot tiene el can_delete_messages permiso en un supergrupo o canal, puede eliminar cualquier mensaje allí.
! platform_id
ID de usuario de Telegram
! message_ids
Un array de IDs de mensajes que se eliminarán. Máximo de 100 elementos.
Ejemplo: envío de mensajes con la API de Telegram
Ejemplo: edición de mensajes con la API de Telegram
Ejemplo de configuración
Entonces, enviémonos un mensaje con un teclado en línea:

Luego, edita el texto del mensaje:

Y edita los botones:

Intentemos editar un mensaje con una imagen. Para ello, envía un mensaje con una imagen y guarda el ID del mensaje enviado. Lee las instrucciones detalladas sobre cómo obtener la URL de la imagen aquí:

Ahora, editemos la imagen y su descripción:

Ejemplo: copia de mensajes con la API de Telegram
Última actualización

