Telegram Bot API
🌐 Español

sendPoll

Categoría: Encuestas · Bot API 10.3 · Documentación oficial

Envía una encuesta.

Devuelve: Si la llamada tiene éxito, devuelve Message.

Parámetros

ParámetroTipoObligatorioDescripción
business_connection_idStringOpcionalID de la conexión empresarial
chat_idInteger or StringSíID del chat o @username
message_thread_idIntegerOpcionalID del tema del foro
questionStringSíPregunta (1-300 caracteres)
question_parse_modeStringOpcionalModo de formato de la pregunta: HTML, Markdown, MarkdownV2
question_entitiesArray of MessageEntityOpcionalArray JSON de MessageEntity para la pregunta
optionsArray of InputPollOptionSíArray JSON de InputPollOption [{"text":"Opción 1"},{"text":"Opción 2"}]
is_anonymousBooleanOpcionalEncuesta anónima (por defecto true)
typeStringOpcionalquiz o regular
allows_multiple_answersBooleanOpcionalPermitir varias respuestas
allows_revotingBooleanOpcionalPermitir cambiar el voto (Bot API 9.6)
shuffle_optionsBooleanOpcionalMezclar las opciones (Bot API 9.6)
allow_adding_optionsBooleanOpcionalPermitir agregar opciones (Bot API 9.6)
hide_results_until_closesBooleanOpcionalOcultar los resultados hasta el cierre (Bot API 9.6)
members_onlyBooleanOpcionalSolo miembros (Bot API 10.0)
country_codesArray of StringOpcionalArray JSON de códigos de país (Bot API 10.0)
correct_option_idsArray of IntegerOpcionalArray JSON de IDs de las opciones correctas (para quiz), p. ej. [0]
explanationStringOpcionalExplicación de la respuesta correcta (para quiz)
explanation_parse_modeStringOpcionalModo de formato de la explicación
explanation_entitiesArray of MessageEntityOpcionalArray JSON de MessageEntity para la explicación
explanation_mediaInputPollMediaOpcionalObjeto JSON InputPollMedia (Bot API 10.0)
open_periodIntegerOpcionalDuración de la encuesta en segundos (5-2628000)
close_dateIntegerOpcionalMarca de tiempo Unix del cierre de la encuesta
is_closedBooleanOpcionalCerrar la encuesta de inmediato
descriptionStringOpcionalDescripción de la encuesta (0-1024 caracteres, Bot API 9.6)
description_parse_modeStringOpcionalModo de formato de la descripción: HTML, Markdown, MarkdownV2
description_entitiesArray of MessageEntityOpcionalArray JSON de MessageEntity para la descripción
mediaInputPollMediaOpcionalObjeto JSON InputPollMedia — multimedia de la encuesta (Bot API 10.0)
disable_notificationBooleanOpcionalEnviar sin sonido
protect_contentBooleanOpcionalProteger el contenido
allow_paid_broadcastBooleanOpcionalPermitir difusión de pago
message_effect_idStringOpcionalID del efecto del mensaje
reply_parametersReplyParametersOpcionalObjeto JSON ReplyParameters
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyOpcionalObjeto JSON: InlineKeyboardMarkup / ReplyKeyboardMarkup / ReplyKeyboardRemove / ForceReply

Las descripciones de los parámetros son resúmenes breves; consulta la documentación oficial para ver el texto completo.

Ejemplo de solicitud

curl

curl -s -X POST "https://api.telegram.org/bot$TOKEN/sendPoll" \
  -H "Content-Type: application/json" \
  -d '{
  "chat_id": 123456789,
  "question": "Which language do you use?",
  "options": [
    {
      "text": "Python"
    },
    {
      "text": "JavaScript"
    }
  ]
}'

Python

import requests

TOKEN = "123456789:AAEexampleTokenReplaceWithYours"
resp = requests.post(
    f"https://api.telegram.org/bot{TOKEN}/sendPoll",
    json={
        "chat_id": 123456789,
        "question": "Which language do you use?",
        "options": [
            {
                "text": "Python"
            },
            {
                "text": "JavaScript"
            }
        ]
    },
    timeout=30,
)
print(resp.json())

JavaScript

const TOKEN = "123456789:AAEexampleTokenReplaceWithYours";
const res = await fetch(`https://api.telegram.org/bot${TOKEN}/sendPoll`, {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "chat_id": 123456789,
    "question": "Which language do you use?",
    "options": [
      {
        "text": "Python"
      },
      {
        "text": "JavaScript"
      }
    ]
  }),
});
console.log(await res.json());

Guía paso a paso: Cómo crear un bot en Telegram paso a paso: de BotFather a tu primer mensaje