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:

Consideremos un ejemplo simple con un conjunto de parámetros requeridos:

El platform_id especifica el identificador de un cliente específico.

Vea el mismo ejemplo, pero usando variables:

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

Si guarda el message_id de la respuesta recibida, le permitirá trabajar posteriormente con este mensaje (editar, eliminar, reenviar, comentar).

A menudo surgen dificultades al usar todos los parámetros. Consideremos el siguiente ejemplo:

  • Primero, declare todos los parámetros utilizados en la función. Recuerde, los parámetros se pueden pasar no solo como valores, sino también como variables, lo que a menudo es más conveniente y claro. Variables como platform_id y client_message_id se pueden obtener de la tarjeta de perfil del cliente.
    platform_id — ID del cliente de Telegram al que se debe enviar 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 a citar\ >En los chats, esta variable se asigna automáticamente.
    reply_markup — configuración de botones **. \ >Asignémoslo 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 utilizados para formatear el texto del mensaje se describen aquí. \ >Usemos markdown.
    disable_web_page_preview - Mostrar vista previa del enlace. Para deshabilitarlo, pase 1; de lo contrario, pase 0 o déjelo vacío "".\ >Podemos pasar cualquier valor ya que el texto del mensaje no contiene un enlace.
    protect_content — Indicador de protección de contenido. Pase cualquier valor excepto 0, False o '' para habilitarlo.\ >No necesitamos protección de contenido, así que pasaremos una cadena vacía ''.
    disable_notification — Indicador de notificación sonora (predeterminado: 0). Pase 1 para deshabilitar la notificación, 0 para habilitarla.\ >Una notificación es una ventana emergente que muestra el texto del mensaje. Habilitémosla.

  • A continuación, ensamblamos la función. Recuerde asignar la función a una variable; esto le permitirá rastrear el estado de envío del mensaje.

Esto es lo que obtuvimos:

Después de que el cliente nos envíe la palabra clave test, respondemos citando su mensaje.

En ok vemos el estado de envío; luego viene la información sobre el mensaje en sí: su ID, datos del remitente y contenido.

Ejemplo con el parámetro entities

Puede almacenar la cadena original en una variable, como se muestra a continuación:

text = "qwert asdfg zxcvb poiuy lkjhg 12345"

Debe 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"}]

Pase el parámetro al final en la función que utilice. El parámetro se puede pasar tanto a la función tg_send_message como a 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, especifique el valor de la siguiente manera:

text = "Primera línea de texto" + "\n" + "Segunda línea de texto" + "\n" + "Tercera línea"

Cómo enviar un mensaje especificando un bot de Telegram en particular

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)

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 texto del mensaje en sí se asigna a una variable separada.

Cómo editar texto en un mensaje de Telegram

¡Tenga 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 la edición de mensajes está determinada por el propio mensajero y depende de la carga/actividad de su 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)

Cómo enviar una reacción a un mensaje

tg_set_reaction(platform_id, message_id, reaction)

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)

Cómo editar archivos multimedia adjuntos en un mensaje

Cómo editar un teclado en línea en un mensaje

Solo puede editar un teclado en línea.

Puede encontrar un ejemplo detallado de trabajo con las funciones de la API de Telegram para editar mensajes a continuación.

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)

Cómo reenviar un mensaje

tg_forward_message(platform_id, from_chat_id, message_id, protect_content, disable_notification, message_thread_id)

Cómo eliminar un mensaje

tg_delete_message(platform_id, message_id)

! Utilice este método para eliminar un mensaje, incluidos los mensajes de servicio, con las siguientes restricciones:

  • Un mensaje solo se puede eliminar si se envió hace menos de 48 horas.
  • Los mensajes con dados en un chat privado solo se pueden eliminar 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 permiso can_post_messages pueden eliminar mensajes salientes en canales.
  • Si un bot es administrador de un grupo, puede eliminar cualquier mensaje allí.
  • Si un bot tiene el permiso can_delete_messages en un supergrupo o canal, puede eliminar cualquier mensaje allí.

Cómo eliminar varios mensajes

tg_delete_messages(platform_id, message_ids)

! Utilice este método para eliminar un mensaje, incluidos los mensajes de servicio, con las siguientes restricciones:

  • Un mensaje solo se puede eliminar si se envió hace menos de 48 horas.
  • Los mensajes con dados en un chat privado solo se pueden eliminar 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 permiso can_post_messages pueden eliminar mensajes salientes en canales.
  • Si un bot es administrador de un grupo, puede eliminar cualquier mensaje allí.
  • Si un bot tiene el permiso can_delete_messages en un supergrupo o canal, puede eliminar cualquier mensaje allí.

Ejemplo: envío de mensajes con la API de Telegram

Ejemplo 1

/*Es conveniente definir el texto en una variable de antemano*/
text='Escribiendo-escribiendo-escribiendo texto'
/*Función de enviar mensaje*/
soob=tg_send_message(platform_id, text)
/*Guardar el ID del mensaje enviado*/
soob_id=soob['result']['message_id']

Ejemplo 2

id_group=-1001847103100
text='Probando el envío de mensajes mediante el método API. Por ejemplo, *texto en negrita*'
opts = {"inline_keyboard": [[{"text": "👍","callback_data":1}, {"text": "👎","callback_data":2}]]}
disable_web_page_preview=1
protect_content=''
disable_notification=1
parse_mode='markdown'
soob=tg_send_message(id_group, text,client_message_id, opts, parse_mode, disable_web_page_preview, protect_content, disable_notification) 


Ejemplo: edición de mensajes con la API de Telegram

Entonces, enviémonos un mensaje con un teclado en línea:

A continuación, edite el texto del mensaje:

Y edite los botones:

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

Ahora, editemos la imagen y su descripción:

/*Es conveniente definir los parámetros en una variable de antemano.*/
text='¿Qué paquete le gustaría elegir?'
opts = {"inline_keyboard": [[{"text": "Paquete 1","callback_data":1}, {"text": "Paquete 2","callback_data":2}]]}
/*Función de enviar mensaje*/
soob=tg_send_message(platform_id, text, None, opts)
/*Guardar el ID del mensaje enviado*/
soob_id=soob['result']['message_id']

/*Editar el mensaje*/
text='¿Qué paquete le interesa?'
tg_edit_message_text(platform_id, soob_id, text, opts)  

/*Editar el teclado en línea*/
opts = {"inline_keyboard": [[{"text": "Estándar","callback_data":1}, {"text": "Premium","callback_data":2}]]}
tg_edit_message_reply_markup(platform_id, soob_id, opts)


/*Enviar imagen con la descripción*/
soob=tg_send_photo(platform_id, "AgACAgIAAxkBAAIPpWO4T7jhOgYHq6uR8rjnq9rIvBs-AAJlwDEb5fHASaGdhzgWjyn7AQADAgADeAADLQQ", "Esta es una imagen")
/*Guardar el ID del mensaje enviado*/
soob_id=soob['result']['message_id']

/*Editar la imagen*/
media='{"type": "photo", "media": "AgACAgIAAxkBAAIPrmO4UiH7Tazqn-3IbFVzPKNsVEZmAAJ1wDEb5fHASWcNXKah-egvAQADAgADeQADLQQ"}'
tg_edit_message_media(platform_id, soob_id, media)
/*Editar la descripción de la imagen*/
tg_edit_message_caption(platform_id, soob_id, '¡Este soy YO!')

Ejemplo: copia de mensajes con la API de Telegram

Enviemos un mensaje y guardemos su ID.

Y copiemos el mensaje enviado anteriormente.

/*Es conveniente definir los parámetros en una variable de antemano.*/
text='¿Qué paquete le gustaría elegir?'
opts = {"inline_keyboard": [[{"text": "Paquete 1","callback_data":1}, {"text": "Paquete 2","callback_data":2}]]}
/*Función de enviar mensaje*/
soob=tg_send_message(platform_id, text, None, opts)
/*Guardar el ID del mensaje enviado*/
soob_id=soob['result']['message_id']


/*Copiar el mensaje enviado*/
tg_copy_message('5081438490', '1840834360', soob_id, None, opts, None, None, 1)