Configuración del chat y del mensajero de Telegram

Trabajando con IDs de plataforma en MaviBot

En MaviBot, todas las entidades de Telegram (usuarios, grupos, canales) se identifican mediante una platform_id variable genérica. Esta variable no distingue entre tipos de entidad.

Problema: Para usar funciones como aceptar o rechazar que requieren tipos específicos de entidad, necesitas conocer tanto el chat ID como el usuario ID por separado.

Solución: Cuando recibas una callback o un mensaje, guarda inmediatamente el platform_id valor en dos variables distintas, con nombres según su propósito:

  • chat_id – para almacenar el ID del grupo/canal.

  • user_id – para almacenar el ID del usuario individual.

Esto te permite hacer referencia al ID correcto más adelante en la lógica de tu aplicación.

Cómo cambiar el nombre del chat mediante un bot de Telegram

chevron-rightDescripciónhashtag

tg_set_group_title(platform_id, title) -

Parámetros:

Parámetro
Descripción

! platform_id

el ID del chat dentro de Telegram *

! title

nuevo nombre del chat

Cómo cambiar la descripción del chat mediante un bot de Telegram

chevron-rightDescripciónhashtag

tg_set_chat_description(platform_id, description)

Parámetro
Descripción

! platform_id

el ID del chat dentro de Telegram *

! description

nuevo nombre del chat

Cómo establecer un avatar en un grupo/chat en Telegram

chevron-rightDescripciónhashtag

tg_set_chat_photo(platform_id, photo)

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *, en el que quieres establecer un avatar

! foto

enlace de la foto

Cómo eliminar un avatar en un grupo/chat en Telegram

chevron-rightDescripciónhashtag

tg_delete_chat_photo(platform_id)

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *, en el que necesitas establecer un avatar

Cómo banear un grupo de Telegram

chevron-rightDescripciónhashtag

tg_ban_chat_sender_chat(platform_id, sender_chat_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *, que necesitas banear

! sender_chat_id

ID del chat que va a ser baneado

Al mismo tiempo, el propietario del chat baneado no puede escribir en nombre de sus otros chats hasta que sea desbaneado.

Cómo desbanear un grupo de Telegram

chevron-rightDescripciónhashtag

tg_unban_chat_sender_chat(platform_id, sender_chat_id)

Parámetro:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *, en el que desbaneas

! sender_chat_id

ID del chat que desbaneas

Cómo crear un enlace de invitación para unirse a un chat de Telegram

chevron-rightDescripciónhashtag

tg_create_chat_invite_link(platform_id, member_limit, hours, request, name)

Parámetro:

Parámetro
Descripción

! platform_id

ID del chat en Telegram *

member_limit

límite en el número de participantes

hours

Tiempo de expiración del enlace (en horas)

request

un parámetro que, al hacer clic en el enlace, debe generar una solicitud para unirse al chat.

name

nombre del enlace

circle-info

Al pasar el member_limit parámetro, el valor del request parámetro cambia automáticamente a Falso. Si necesitas aceptar solicitudes de membresía, deja el member_limit parámetro vacío.

Creación de enlace de invitación al chat

Cómo eliminar un enlace de invitación al chat en Telegram

chevron-rightDescripciónhashtag

tg_revoke_chat_invite_link(platform_id, invite_link)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! invite_link

enlace que necesitas eliminar

Cómo inactivar todos los enlaces existentes y reemplazarlos por un solo enlace

chevron-rightDescripciónhashtag

tg_export_chat_link(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! invite_link

enlace, que necesitas eliminar

El resultado es que un enlace será la única forma de entrar al grupo hasta que se creen enlaces adicionales de otras maneras.

circle-exclamation

Cómo aceptar una solicitud y añadir un usuario en un canal/chat de Telegram

chevron-rightDescripciónhashtag

tg_approve_chat_join_request(chat_id, user_id)

Parámetros:

! chat_id

ID del grupo/canal dentro de Telegram *

! user_id

ID del usuario dentro de Telegram *

Aceptación de la solicitud:

Cómo rechazar una solicitud en un canal/chat de Telegram

chevron-rightDescripciónhashtag

tg_decline_chat_join_request(chat_id, user_id)

Parámetros:

! chat_id

ID del grupo/canal dentro de Telegram *

! user_id

ID del usuario dentro de Telegram *

Rechazo de la solicitud

Cómo bloquear a un usuario en Telegram

chevron-rightDescripciónhashtag

tg_ban_chat_member(chat_id, user_id, hours)

Parámetros:

Parámetro
Descripción

! chat_id

ID del chat dentro de Telegram *

! user_id

ID del usuario dentro de Telegram * para bloquear

hours

Duración del bloqueo en horas. Por defecto, el bloqueo es permanente. Si especificas una duración de bloqueo superior a 366 días, el bloqueo se establecerá como permanente.

Cómo desbloquear a un usuario en Telegram

chevron-rightDescripciónhashtag

tg_unban_chat_member(chat_id, user_id)

Parámetros:

Parámetro
Descripción

! chat_id

ID del chat dentro de Telegram *

! user_id

ID del usuario dentro de Telegram *, a quien necesitas desbloquear

Cómo comprobar el estado de suscripción en Telegram

chevron-rightDescripciónhashtag

tg_get_chat_member(chat_id, user_id)

Parámetros:

Parámetro
Descripción

! chat_id

ID del chat dentro de Telegram *

! user_id

ID del usuario dentro de Telegram *, cuya suscripción estamos comprobando

Cómo determinar el número de miembros en un canal/chat

chevron-rightDescripciónhashtag

tg_get_chat_member_count(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat en Telegram *

Cómo comprobar si un miembro del chat está en una lista específica

chevron-rightsome_client_in_list(list_id, recepient)hashtag

Parámetros:

Parámetro
Descripción

! list_id

número de lista

! recepient

ID del usuario dentro de Telegram *. Para los clientes de chat, este valor está en la variable chat_member_id.

Cómo mostrar las acciones del bot al usuario (escribir/seleccionar un sticker, etc.)

chevron-rightDescripciónhashtag

tg_send_chat_action(platform_id, bot_action, message_thread_id)

¡Trabaja con cuenta de Telegram Business!

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat en Telegram *

! bot_action

acción del bot de la lista

message_thread_id

ID del tema (disponible para supergrupos si la funcionalidad de foro está disponible).

chevron-rightLista de acciones disponibles bot_actionhashtag

typing para mensajes de texto, upload_photo para fotos, record_video o upload_video para vídeos, record_voice o upload_voice para notas de voz, upload_document para documentos comunes, choose_sticker para stickers, find_location para datos de ubicación, record_video_note o upload_video_note para nota de vídeo.

circle-info

Esta notificación se mostrará hasta que se reciba cualquier respuesta del bot, pero no más de 5 segundos.

Cómo mostrar una notificación de alerta al usuario

chevron-rightDescripciónhashtag

tg_answer_callback_query(callback_query_id, text,show_alert,cache_time)

Parámetro
Descripción

! callback_query_id (obligatorio)

Este ID te permite identificar a la persona que hizo clic en el botón y mostrarle la notificación de alerta.

! text (obligatorio)

Texto de la notificación de alerta.

show_alert

Indicación de notificación emergente (False — notificación tipo tooltip que se desvanece, True — notificación persistente en ventana)

cache_time

La cantidad máxima de tiempo, en segundos, durante la cual el resultado de una solicitud de callback puede almacenarse en caché del lado del cliente. Las aplicaciones de Telegram admitirán el almacenamiento en caché a partir de la versión 3.14. El valor predeterminado es 0

chevron-rightEjemplohashtag

Las notificaciones de alerta se muestran solo como resultado de hacer clic en el botón de callback en Telegram.

Por ejemplo, usamos los siguientes botones:

[{"line":0,"index_in_line":0,"text":"111","type":"inline","callback":"first"}, {"line":1,"index_in_line":0,"text":"222","type":"inline","callback":"second"}, {"line":2,"index_in_line":0,"text":"333","type":"inline","callback":"third"}]

Después de hacer clic en un botón, llega una callback con el texto contenido en el campo correspondiente. Cuando haces clic en el botón “111”, recibirás una callback con el texto “first".

Creemos un bloque Start y especifiquemos el texto deseado en el disparador. En nuestro caso: "first

Si en el Coincide con campo seleccionas Ignorar errores e imprecisiones, este bloque puede reutilizarse más adelante para todas las variantes similares que difieren en 1–2 caracteres. Por ejemplo, para agradecer al usuario por proporcionar una calificación con un botón así.

A continuación, en la calculadora, usa la tg_answer_callback_query función y pasa los siguientes parámetros: callback_query_id - este ID te permite identificar al usuario que pulsó el botón y mostrarle la notificación de alerta text - texto de la notificación de alerta.

Ejemplo de código para copiar:

tg_answer_callback_query('#{callback_query_id}', "You pressed the button 111")

circle-exclamation

Si todo está configurado correctamente, al pulsar el botón se mostrará una notificación de alerta con el texto especificado. En la versión móvil, el nombre del bot aparecerá como encabezado sobre el texto.

Si quieres mostrar un simple mensaje emergente en su lugar, pasa Falso como tercer parámetro, como se muestra en el siguiente ejemplo: tg_answer_callback_query('#{callback_query_id}', "You passed the button 222", False)

Cuando se pulsa el botón con estos parámetros, aparecerá durante unos segundos una notificación de este tipo.

Añadiendo una redirección del bot con una etiqueta como respuesta de botón de callback

chevron-rightDescripciónhashtag

tg_callback_url_open(callback_query_id, url, cache_time)

Parámetros:

Parámetros
Descripción

! callback_query_id

Este ID te permite identificar a la persona que hizo clic en el botón y mostrarle la notificación de alerta.

! url

URL que apunta al bot y un parámetro (formato: t.me/your_bot?start=XXXX, donde your_bot es el nombre del bot)

cache_time

La cantidad máxima de tiempo, en segundos, durante la cual el resultado de una solicitud de callback puede almacenarse en caché del lado del cliente. Las aplicaciones de Telegram admitirán el almacenamiento en caché a partir de la versión 3.14. El valor predeterminado es 0

chevron-rightEjemplohashtag

En la respuesta del botón de callback, puedes añadir una transición al bot usando una etiqueta, tg_callback_url_open('#{callback_query_id}', 't.me/bot_name?start=XXXX')

Por ejemplo, usemos los siguientes botones:

[{"line":0,"index_in_line":0,"text":"111","type":"inline","callback":"first"}, {"line":1,"index_in_line":0,"text":"222","type":"inline","callback":"second"}, {"line":2,"index_in_line":0,"text":"333","type":"inline","callback":"third"}]

Después de hacer clic en un botón, llega una callback con el texto contenido en el campo correspondiente. Cuando haces clic en el botón “111”, recibirás una callback con el texto “first".

Crea un bloque con una comprobación de condición principal y especifica el texto deseado en la condición. En nuestro caso: “first”:

Si en el Opción coincidente campo seleccionas Ignorar errores e imprecisiones, este bloque puede reutilizarse más adelante para todas las variantes similares que difieren en 1–2 caracteres. Por ejemplo, para agradecer al usuario por proporcionar una calificación con un botón así.

A continuación, en la calculadora del bloque, especifica tg_callback_url_open('#{callback_query_id}', 't.me/bot_name?start=XXXX'):

Cómo promover a un usuario a administrador en un supergrupo o canal

chevron-rightDescripciónhashtag

tg_promote_user(platform_id, user_id, promote_options_list)

Parámetros:

Parámetro
Descripción

! platform_id

el identificador de un supergrupo o, si se usa en un canal, el nombre de usuario del canal en el formato @channelusername dentro de Telegram *

! user_id

el identificador de un usuario dentro de Telegram. *

! promote_options_list

lista de permisos que se habilitarán.

chevron-rightParámetro obligatorio: promote_options_listhashtag

Se pueden especificar los siguientes permisos en la promote_options_list :

  1. is_anonymous — oculta la presencia del administrador en el chat,

  2. can_manage_chat — el administrador puede acceder al registro de eventos del chat, estadísticas del chat, estadísticas de mensajes en canales, ver miembros del canal, ver administradores anónimos en supergrupos y omitir el modo lento. Este nivel de permiso se concede por defecto si se especifica cualquiera de los privilegios siguientes

  3. can_post_messages — — el administrador puede crear publicaciones en el canal (solo canales)

  4. can_edit_messages — el administrador puede editar mensajes de otros usuarios y fijar mensajes (solo canales)

  5. can_delete_messages — el administrador puede eliminar mensajes de otros usuarios

  6. can_manage_video_chats — el administrador puede gestionar chats de vídeo,

  7. can_restrict_members — el administrador puede restringir miembros, baneárselos/desbaneárselos en el chat,

  8. can_promote_members — el administrador puede nombrar nuevos administradores con un subconjunto de sus propios privilegios, o degradar a administradores que haya nombrado directa o indirectamente (por ejemplo, administradores nombrados por él/ella)

  9. can_change_info — el administrador puede cambiar el título del chat, la foto y otras configuraciones

  10. can_invite_users — el administrador puede invitar a nuevos usuarios al chat

  11. can_pin_messages — el administrador puede fijar mensajes (solo supergrupos).

chevron-rightEjemplohashtag

Ejemplo: promover a un usuario a administrador en un supergrupo:

En este ejemplo, además de los permisos especificados, el permiso can_manage_chat se concederá por defecto.

Asignar permisos a un usuario
Establecer un título personalizado de administrador

Ejemplo de código para copiar

Cómo cambiar el título de administrador usando un bot en Telegram

chevron-rightDescripciónhashtag

tg_set_administrator_title(platform_id, user_id, title)

Parámetros:

Parámetro
Descripción

! platform_id

identificador del supergrupo dentro de Telegram *

! user_id

identificador del usuario dentro de Telegram *

! title

título de administrador

Restricciones para el título:

Longitud: 0–16 caracteres, no se permiten emojis

circle-exclamation

Ejemplo de código para copiar:

Restricciones generales para miembros normales del chat o usuarios específicos de Telegram

chevron-rightDescripciónhashtag

tg_chat_permission(platform_id, permission, media_permissions)

Parámetros:

Parámetro
Descripción

! platform_id

identificador del chat dentro de Telegram *

! permission

un array de valores de la lista de restricciones (ver más abajo).

1 = la acción está permitida

0 = la acción está prohibida

El índice del array corresponde a la posición en la lista de restricciones

! media_permissions

un array de valores que define permisos relacionados con medios (detalles más abajo).

1 = la acción está permitida

0 = la acción está prohibida

El índice del array corresponde a la posición en la lista de permisos de medios

chevron-rightLista de restricciones para el parámetro requerido permissionhashtag

Lista de restricciones para permission: 1. ! can_send_messages - permiso para enviar mensajes de texto, contactos, ubicaciones y lugares. 2. ! can_send_media_messages - permiso para enviar audio, documentos, fotos, vídeos, notas de vídeo y notas de voz. Requiere can_send_messages 3. ! can_send_polls - permiso para enviar encuestas. Requiere can_send_messages 4. ! can_send_other_messages - permiso para enviar animaciones, juegos, stickers y para usar bots en línea. Requiere can_send_media_messages 5. ! can_add_web_page_previews - permiso para añadir vistas previas de páginas web a los mensajes. Requiere can_send_media_messages 6. ! can_change_info - permiso para cambiar el título del chat, la foto y otras configuraciones. Esto se ignora en supergrupos públicos. 7. ! can_invite_users - permiso para invitar usuarios 8. ! can_pin_messages - permiso para fijar mensajes. Esto se ignora en supergrupos públicos. 9. can_manage_topics - permiso para crear temas en grupos de foro. Si se usa en un grupo del tipo incorrecto, la función fallará y devolverá un error.

chevron-rightLista de valores para el parámetro requerido media_permissionshashtag

Valores para conceder permisos relacionados con medios media_permissions:

1. can_send_audios - permiso para enviar archivos de audio 2. can_send_documents -permiso para enviar documentos 3. can_send_photos - permiso para enviar fotos 4. can_send_videos - permiso para enviar vídeos 5. can_send_video_notes - permiso para enviar mensajes de vídeo circulares 6. can_send_voice_notes - permiso para enviar mensajes de vozя

Restricciones personales de Telegram para usuarios normales del chat o para usuarios específicos de Telegram

chevron-rightDescripciónhashtag

tg_restrict_chat_member(platform_id, user_id, minutes, permission, media_permissions).

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat en Telegram *

! user_id

ID de usuario en Telegram *

minutes

el número de minutos durante los cuales la restricción permanecerá activa. Si no estableces un valor, el predeterminado es 3600, que equivale a 60 horas. Si lo estableces en 0, la restricción se vuelve permanente

permission

un array de valores de la lista de restricciones de permiso.

media_permissions

una lista de valores para conceder permisos relacionados con medios

chevron-rightLista de restricciones para el parámetro requerido permissionhashtag

Lista de restricciones para permission: 1. ! can_send_messages - permiso para enviar mensajes de texto, contactos, ubicaciones y lugares. 2. ! can_send_media_messages - permiso para enviar audio, documentos, fotos, vídeos, notas de vídeo y notas de voz. Requiere can_send_messages 3. ! can_send_polls - permiso para enviar encuestas. Requiere can_send_messages 4. ! can_send_other_messages - permiso para enviar animaciones, juegos, stickers y para usar bots en línea. Requiere can_send_media_messages 5. ! can_add_web_page_previews - permiso para añadir vistas previas de páginas web a los mensajes. Requiere can_send_media_messages 6. ! can_change_info - permiso para cambiar el título del chat, la foto y otras configuraciones. Esto se ignora en supergrupos públicos. 7. ! can_invite_users - permiso para invitar usuarios 8. ! can_pin_messages - permiso para fijar mensajes. Esto se ignora en supergrupos públicos. 9. can_manage_topics - permiso para crear temas en grupos de foro. Si se usa en un grupo del tipo incorrecto, la función fallará y devolverá un error.

chevron-rightLista de valores para el parámetro requerido media_permissionshashtag

Valores para conceder permisos relacionados con medios media_permissions:

1. can_send_audios - permiso para enviar archivos de audio 2. can_send_documents -permiso para enviar documentos 3. can_send_photos - permiso para enviar fotos 4. can_send_videos - permiso para enviar vídeos 5. can_send_video_notes - permiso para enviar mensajes de vídeo circulares 6. can_send_voice_notes - permiso para enviar mensajes de vozя

chevron-rightEjemplohashtag

Ejemplo de uso de la función, donde se restringe todo al usuario durante 3 minutos:

Cuando el usuario entra al chat, verá una notificación de que no puede enviar mensajes en el chat. Si se establece un límite de tiempo, también verá la duración de esta restricción.

Ejemplo de código para copiar:

Cómo fijar un mensaje

chevron-rightDescripciónhashtag

tg_pin_chat_message(platform_id, message_id, disable_notification)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

message_id

ID del mensaje que debe fijarse

disable_notification

El parámetro define si se debe enviar una notificación a todos los miembros del chat sobre un nuevo mensaje fijado (las notificaciones siempre están desactivadas en canales y chats privados). Si no quieres enviar notificaciones, establece el parámetro disable_notification a 1. De lo contrario, establécelo en 0.

Cómo desfijar un mensaje

chevron-rightDescripciónhashtag

tg_unpin_chat_message(platform_id, message_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

message_id

ID del mensaje que debe desfijarse. Si no se proporciona message_id, se desfijará el mensaje fijado más reciente (por fecha de envío)

Cómo desfijar todos los mensajes fijados

chevron-rightDescripciónhashtag

tg_unpin_all(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

circle-exclamation

Cómo crear una encuesta en Telegram

chevron-rightDescripciónhashtag

tg_send_poll(platform_id, question, options, is_anonymous, allows_multiple_answers, reply_markup, disable_notification, protect_content, token, reply_to_message_id, message_thread_id, business_connection_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat en Telegram *

! question

question

! options

un array de opciones de respuesta

is_anonymous

1 - encuesta anónima, '' - no anónima

allows_multiple_answers

1 - se permiten múltiples respuestas, '' - una sola respuesta

reply_markup

teclado o '' - sin teclado

disable_notification

indicador para enviar con notificación sonora (predeterminado 0) 1 – desactivar la notificación al recibir, 0 – enviar con notificación

protect_content

1 para proteger de copias y capturas de pantalla, '' sin protección

token

token del bot; si no se proporciona, se usa el actual

reply_to_message_id

ID del mensaje citado

message_thread_id

ID del tema (disponible para supergrupos si existe la funcionalidad de foro)

business_connection_id

valor al conectar un bot (Business ID). Se muestra en los canales. Debe proporcionarse si se usa el token del bot y el mensaje debe enviarse a través de una cuenta de usuario conectada al bot

chevron-right¡Importante saberlo!hashtag

Notas

1. La función devuelve una respuesta de Telegram con message_id. Es mejor guardarla. Usando message_id, puedes detener la encuesta con tg_stop_poll (ver descripción abajo) y obtener el resultado.

2. Si un usuario añade una encuesta en un mensajero, se envía una callback al chat:

poll_added - parte invariable YOUR QUESTION - texto de la pregunta de la encuesta

Ejemplo de callback al añadir una encuesta al canal

Ejemplo de callback al añadir una encuesta al chat

La segunda callback después de poll_added contiene números - no es otra cosa que el identificador del usuario en Telegram que añadió la encuesta.

circle-exclamation

3. En el canal solo se pueden crear encuestas anónimas

circle-info

¡Atención, se recomienda enviar al grupo solo encuestas anónimas!

4. Después de crear la encuesta, guarda su identificador en una variable para entender a qué encuesta llegó la callback.

chevron-rightEjemplohashtag

La opinión de los clientes es clave para nuestro crecimiento. Las encuestas ofrecen un método sencillo para captar esta opinión y convertirla en conclusiones empresariales concretas.

Ejemplo de código para copiar:

Función para crear una encuesta en Telegram:

La encuesta que creamos en Telegram

Cómo crear un quiz en Telegram

chevron-rightDescripciónhashtag

tg_send_quiz_poll(platform_id, question, options, explanation, correct_option_id, is_anonymous, reply_markup, parse_mode, protect_content, disable_notification, token, reply_to_message_id, message_thread_id )

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! question

question

! options

un array de opciones de respuesta

! explanation

texto que se muestra cuando un usuario selecciona una respuesta incorrecta o hace clic en el icono de la lámpara en una encuesta tipo quiz, 0–200 caracteres con no más de dos saltos de línea después del análisis de entidades.

! correct_option_id

número de la respuesta correcta, numeración desde 1

is_anonymous

1 - encuesta anónima, '' - no anónima

reply_markup

teclado o '' - sin teclado

parse_mode

formato de explicación: markdown, html, o '' (cadena vacía para no aplicar formato)

protect_content

1 para proteger de copias y capturas de pantalla, '' sin protección

disable_notification

indicador para enviar con notificación sonora (predeterminado 0) 1 – desactivar la notificación al recibir, 0 – enviar con notificación

token

token del bot; si no se proporciona, se usa el actual

reply_to_message_id

ID del mensaje citado

message_thread_id

ID del tema (disponible en supergrupos con funciones de foro activas)

chevron-right¡Importante saberlo!hashtag

Notas

1. Guarda el message_id

La función de la API devuelve una respuesta de Telegram que contiene un message_id. Guarda siempre este ID, ya que se necesita para:

  • Terminar el quiz usando la tg_stop_poll función (ver descripción abajo).

  • Obtener los resultados finales.

2. Callback poll_added

Si un usuario añade una encuesta a un canal, el bot recibe una callback:

  • Formato: poll_added + Pregunta de la encuesta

  • Si se añade a un chat de grupo: la callback también incluye el Telegram User ID de la persona que añadió la encuesta.

circle-exclamation

3. Restricción de canal

Solo quizzes anónimos pueden crearse en los canales.

4. Callback poll_answer (voto del usuario)

Cuando un usuario vota en un quiz enviado a un chat privado o group, se envía una callback al diálogo del bot con ese cliente:

  • Formato: poll_answer + ID de la encuesta + [Índice de respuesta]

  • Ejemplo: poll_answer 5325838371359031648 [3]

  • Nota: la numeración de respuestas comienza en 0. [3] significa que el usuario seleccionó la cuarta opción de respuesta.

5. Webhook para encuestas de grupo no anónimas

Para encuestas no anónimas en grupos donde el bot es administrador, se envía un webhook por cada voto. Al recibirlo, el bot reenviará la poll_answer callback (como en el punto 4) a su diálogo con el cliente correspondiente.

6. Requisito de activación y mejor práctica

  • Requisito: un bot no puede iniciar una conversación. Si un cliente nunca ha contactado con el bot, no puedes enviarle un mensaje directo en respuesta a su voto hasta que active primero el bot (por ejemplo, enviando un /start comando).

circle-info

Recomendación: para evitar esta limitación, se recomienda encarecidamente enviar solo quizzes anónimos a los grupos.

7. Haz seguimiento de tus encuestas

Inmediatamente después de crear un quiz, guarda su ID de la encuesta único en una variable. Esto te permite identificar a qué encuesta específica se refiere una callback entrante.

chevron-rightEjemplohashtag

Ejemplo de código para copiar.

Ejemplo: creación de quiz.

Cómo terminar una encuesta

chevron-rightDescripciónhashtag

tg_stop_poll(platform_id, message_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat en Telegram *

! message_id

ID del mensaje de encuesta/quiz. Puede obtenerse del webhook

circle-info

Llamar a esta función para terminar una encuesta/cuestionario devuelve un diccionario que contiene los resultados finales.

Cómo trabajar con temas en Telegram

circle-exclamation

Cómo cambiar el nombre del Tema General del grupo

chevron-rightDescripciónhashtag

tg_edit_general_forum_topic(platform_id, topic_name)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! topic_name

nuevo nombre del tema

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplohashtag

El Tema General de los grupos se puede cambiar usando la tg_edit_general_forum_topic() función. Requiere dos parámetros obligatorios: el ID del chat y el nuevo nombre para el Tema del Grupo:

chevron-rightEjemplo de código para copiarhashtag

renombrar el chat del Tema General/ answer = tg_edit_general_forum_topic(-1001839380031, 'General')

Cómo cerrar el Tema General

chevron-rightDescripciónhashtag

tg_close_general_forum_topic(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

/cerrar el chat del Tema General/ answer = tg_close_general_forum_topic(-1001839380031)

Cómo reabrir un Tema General previamente cerrado

chevron-rightDescripciónhashtag

tg_reopen_general_forum_topic(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

/reabrir el chat del Tema General/ answer = tg_reopen_general_forum_topic(-1001839380031)

Cómo ocultar el Tema General

chevron-rightDescripciónhashtag

tg_hide_general_forum_topic(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

El chat del Tema General puede cerrarse para los participantes del Tema (pueden leer pero no escribir) y ocultarse de la lista general de chats de Telegram para los nuevos usuarios.

chevron-rightEjemplo de código para copiarhashtag

/ocultar el chat del Tema General/ answer = tg_hide_general_forum_topic(-1001839380031)

Cómo mostrar el Tema General o restaurar su visibilidad

chevron-rightDescripciónhashtag

tg_unhide_general_forum_topic(platform_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del tema dentro de Telegram *

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

circle-exclamation
chevron-rightEjemplo de código para copiarhashtag

/mostrar el chat del Tema General/ answer = tg_unhide_general_forum_topic(-1001839380031)

Cómo crear un nuevo tema en Telegram

chevron-rightDescripciónhashtag

tg_create_forum_topic(platform_id, name, icon, icon_color)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! name

nuevo nombre del tema

icon

ID del emoji que se establecerá para el tema. Se pasa como una cadena. Solo puedes usar emojis de la lista recuperada por la tg_get_forum_icon función.

icon_color

color del emoji de la lista: 7322096, 16766590, 13338331, 9367192, 16749490, 16478047. No todos los emojis admiten cambios de color.

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

circle-info

El color establecido no se puede cambiar; el color solo se puede asignar al crear el tema.

Al ejecutarse, la función devolverá una respuesta que contiene los parámetros del nuevo tema, incluido el ID del tema (necesario para varias funciones).

chevron-rightEjemplo de código para copiarhashtag

Para crear un chat de tema adicional answer = tg_create_forum_topic(-1001839380031, 'second_bot_topic', None, 7322096)

Para guardar el ID del chat de tema adicional creado answer={"ok":true,"result":{"message_thread_id":254,"name":"second_bot_topic","icon_color":7322096}}/ idtema1=answer['result']['message_thread_id']

Cómo editar un tema. Cómo renombrar y/o cambiar el emoji de un tema

chevron-rightDescripciónhashtag

tg_edit_forum_topic(platform_id, message_thread_id, name, icon)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! message_thread_id

ID del chat del tema adicional

name

nuevo nombre del tema

icon

ID del emoji que se establecerá para el tema. Se pasa como una cadena. Solo puedes usar emojis de la lista recuperada por la tg_get_forum_icon función.

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

answer = tg_edit_forum_topic(-1001839380031, 254)

Cómo cerrar un tema seleccionado

chevron-rightDescripciónhashtag

Cerrar un tema significa dejarlo solo de lectura; no se permite escribir en un tema cerrado.

tg_close_forum_topic(platform_id, message_thread_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! message_thread_id

ID del chat del tema adicional

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

answer = tg_close_forum_topic(-1001839380031, 254)

Cómo reabrir un tema previamente cerrado

chevron-rightDescripciónhashtag

tg_reopen_forum_topic(platform_id, message_thread_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! message_thread_id

ID del chat del tema adicional

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

answer = tg_reopen_forum_topic(-1001839380031, 254)

Cómo eliminar un tema y todos sus mensajes

chevron-rightDescripciónhashtag

tg_delete_forum_topic(platform_id, message_thread_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! message_thread_id

ID del chat del tema adicional

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

answer = tg_delete_forum_topic(-1001839380031, 254)

Cómo desanclar todos los mensajes de un tema

chevron-rightDescripciónhashtag

tg_unpin_topic_messages(platform_id, message_thread_id)

Parámetros:

Parámetro
Descripción

! platform_id

ID del chat dentro de Telegram *

! message_thread_id

ID del chat del tema adicional

bot_name

parámetro opcional: nombre del bot.

Al trabajar con temas, puedes especificar qué bot debe ejecutar la función. Esto es útil si tu proyecto usa varios bots de Telegram. Encuentra el nombre del bot en la sección "Channels", en el campo "Group ID".

chevron-rightEjemplo de código para copiarhashtag

answer = tg_unpin_topic_messages(-1001839380031, 254)

Cómo obtener la lista de emojis para un Tema de Telegram

chevron-rightDescripciónhashtag

Cómo obtener la lista de emojis

tg_get_forum_icon() – esta función devuelve una lista de emojis disponibles para usar como iconos de temas del foro. El resultado debe asignarse a una variable, ya que devuelve un diccionario en el que cada clave es un emoji y su valor correspondiente es el identificador único del emoji (id).

Parámetros: ninguno.

chevron-rightEl contenido de la lista de emojishashtag

Para obtener la lista de emojis de un chat de Tema, envía el comando al chat correspondiente.

La función devolverá la lista de emojis en su respuesta. Esto significa que la variable answer contendrá un diccionario como valor.

{'📰': '5434144690511290129', '💡': '5312536423851630001', '⚡️': '5312016608254762256', '🎙': '5377544228505134960', '🔝': '5418085807791545980', '🗣': '5368697802761185083', '🆒': '5420216386448270341', '❗️': '5379748062124056162', '📝': '5357193964787081133', '📆': '5433614043006903194', '📁': '5357315181649076022', '🔎': '5309965701241379366', '📣': '5309984423003823246', '🔥': '5312241539987020022', '❤️': '5312138559556164615', '❓': '5377316857231450742', '📈': '5350305691942788490', '📉': '5350713563512052787', '💎': '5309958691854754293', '💰': '5350452584119279096', '💸': '5309929258443874898', '\U0001fa99': '5377690785674175481', '💱': '5310107765874632305', '⁉️': '5377438129928020693', '🎮': '5309950797704865693', '💻': '5350554349074391003', '📱': '5409357944619802453', '🚗': '5312322066328853156', '🏠': '5312486108309757006', '💘': '5310029292527164639', '🎉': '5310228579009699834', '‼️': '5377498341074542641', '🏆': '5312315739842026755', '🏁': '5408906741125490282', '🎬': '5368653135101310687', '🎵': '5310045076531978942', '🔞': '5420331611830886484', '📚': '5350481781306958339', '👑': '5357107601584693888', '⚽️': '5375159220280762629', '🏀': '5384327463629233871', '📺': '5350513667144163474', '👀': '5357121491508928442', '\U0001fae6': '5357185426392096577', '🍓': '5310157398516703416', '💄': '5310262535021142850', '👠': '5368741306484925109', '✈️': '5348436127038579546', '\U0001f9f3': '5357120306097956843', '🏖': '5310303848311562896', '⛅️': '5350424168615649565', '🦄': '5413625003218313783', '🛍': '5350699789551935589', '👜': '5377478880577724584', '🛒': '5431492767249342908', '🚂': '5350497316203668441', '🛥': '5350422527938141909', '🏔': '5418196338774907917', '🏕': '5350648297189023928', '🤖': '5309832892262654231', '\U0001faa9': '5350751634102166060', '🎟': '5377624166436445368', '🏴\u200d☠️': '5386395194029515402', '🗳': '5350387571199319521', '🎓': '5357419403325481346', '🔭': '5368585403467048206', '🔬': '5377580546748588396', '🎶': '5377317729109811382', '🎤': '5382003830487523366', '🕺': '5357298525765902091', '💃': '5357370526597653193', '\U0001fa96': '5357188789351490453', '💼': '5348227245599105972', '\U0001f9ea': '5411138633765757782', '👨\u200d👩\u200d👧\u200d👦': '5386435923204382258', '👶': '5377675010259297233', '🤰': '5386609083400856174', '💅': '5368808634392257474', '🏛': '5350548830041415279', '\U0001f9ee': '5355127101970194557', '🖨': '5386379624773066504', '👮\u200d♂️': '5377494501373780436', '\U0001fa7a': '5350307998340226571', '💊': '5310094636159607472', '💉': '5310139157790596888', '\U0001f9fc': '5377468357907849200', '\U0001faaa': '5418115271267197333', '🛃': '5370947704199323325', '🍽': '5350344462612570293', '🐟': '5384574037701696503', '🎨': '5310039132297242441', '🎭': '5350658016700013471', '🎩': '5357504778685392027', '🔮': '5350367161514732241', '🍹': '5350520238444126134', '🎂': '5310132165583840589', '☕️': '5350392020785437399', '🍣': '5350406176997646350', '🍔': '5350403544182694064', '🍕': '5350444672789519765', '\U0001f9a0': '5312424913615723286', '💬': '5417915203100613993', '🎄': '5312054580060625569', '🎃': '5309744892677727325'}

chevron-rightEjemplo de código para copiarhashtag

Última actualización