Telegram Bot API
🌐 Русский

sendPoll

Категория: Опросы · Bot API 10.3 · Официальная документация

Отправляет опрос.

Возвращает: При успехе возвращает Message.

Параметры

ПараметрТипОбязательныйОписание
business_connection_idStringНетID бизнес-подключения
chat_idInteger or StringДаID чата или @username
message_thread_idIntegerНетID темы форума
questionStringДаВопрос (1-300 символов)
question_parse_modeStringНетРежим парсинга вопроса: HTML, Markdown, MarkdownV2
question_entitiesArray of MessageEntityНетJSON массив MessageEntity для вопроса
optionsArray of InputPollOptionДаJSON массив InputPollOption [{"text":"Option 1"},{"text":"Option 2"}]
is_anonymousBooleanНетАнонимный опрос (по умолчанию true)
typeStringНетquiz или regular
allows_multiple_answersBooleanНетРазрешить несколько ответов
allows_revotingBooleanНетРазрешить переголосование (Bot API 9.6)
shuffle_optionsBooleanНетПеремешать варианты (Bot API 9.6)
allow_adding_optionsBooleanНетРазрешить добавление вариантов (Bot API 9.6)
hide_results_until_closesBooleanНетСкрыть результаты до закрытия (Bot API 9.6)
members_onlyBooleanНетТолько для участников (Bot API 10.0)
country_codesArray of StringНетJSON массив кодов стран (Bot API 10.0)
correct_option_idsArray of IntegerНетJSON массив ID правильных ответов (для quiz), например [0]
explanationStringНетОбъяснение правильного ответа (для quiz)
explanation_parse_modeStringНетРежим парсинга объяснения
explanation_entitiesArray of MessageEntityНетJSON массив MessageEntity для объяснения
explanation_mediaInputPollMediaНетJSON объект InputPollMedia (Bot API 10.0)
open_periodIntegerНетВремя открытого опроса в секундах (5-2628000)
close_dateIntegerНетUnix timestamp закрытия опроса
is_closedBooleanНетСразу закрыть опрос
descriptionStringНетОписание опроса (0-1024 символа, Bot API 9.6)
description_parse_modeStringНетРежим парсинга описания: HTML, Markdown, MarkdownV2
description_entitiesArray of MessageEntityНетJSON массив MessageEntity для описания
mediaInputPollMediaНетJSON объект InputPollMedia — медиа опроса (Bot API 10.0)
disable_notificationBooleanНетБез звука
protect_contentBooleanНетЗащитить контент
allow_paid_broadcastBooleanНетРазрешить платную трансляцию
message_effect_idStringНетID эффекта сообщения
reply_parametersReplyParametersНетJSON объект ReplyParameters
reply_markupInlineKeyboardMarkup or ReplyKeyboardMarkup or ReplyKeyboardRemove or ForceReplyНетJSON: InlineKeyboardMarkup / ReplyKeyboardMarkup / ReplyKeyboardRemove / ForceReply

Описания параметров даны кратко; полный текст — в официальной документации (на английском).

Пример запроса

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());

Пошаговое руководство: Как создать бота в Телеграм: от @BotFather до первого сообщения