sendPoll
Отправляет опрос.
Возвращает: При успехе возвращает Message.
Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
business_connection_id | String | Нет | ID бизнес-подключения |
chat_id | Integer or String | Да | ID чата или @username |
message_thread_id | Integer | Нет | ID темы форума |
question | String | Да | Вопрос (1-300 символов) |
question_parse_mode | String | Нет | Режим парсинга вопроса: HTML, Markdown, MarkdownV2 |
question_entities | Array of MessageEntity | Нет | JSON массив MessageEntity для вопроса |
options | Array of InputPollOption | Да | JSON массив InputPollOption [{"text":"Option 1"},{"text":"Option 2"}] |
is_anonymous | Boolean | Нет | Анонимный опрос (по умолчанию true) |
type | String | Нет | quiz или regular |
allows_multiple_answers | Boolean | Нет | Разрешить несколько ответов |
allows_revoting | Boolean | Нет | Разрешить переголосование (Bot API 9.6) |
shuffle_options | Boolean | Нет | Перемешать варианты (Bot API 9.6) |
allow_adding_options | Boolean | Нет | Разрешить добавление вариантов (Bot API 9.6) |
hide_results_until_closes | Boolean | Нет | Скрыть результаты до закрытия (Bot API 9.6) |
members_only | Boolean | Нет | Только для участников (Bot API 10.0) |
country_codes | Array of String | Нет | JSON массив кодов стран (Bot API 10.0) |
correct_option_ids | Array of Integer | Нет | JSON массив ID правильных ответов (для quiz), например [0] |
explanation | String | Нет | Объяснение правильного ответа (для quiz) |
explanation_parse_mode | String | Нет | Режим парсинга объяснения |
explanation_entities | Array of MessageEntity | Нет | JSON массив MessageEntity для объяснения |
explanation_media | InputPollMedia | Нет | JSON объект InputPollMedia (Bot API 10.0) |
open_period | Integer | Нет | Время открытого опроса в секундах (5-2628000) |
close_date | Integer | Нет | Unix timestamp закрытия опроса |
is_closed | Boolean | Нет | Сразу закрыть опрос |
description | String | Нет | Описание опроса (0-1024 символа, Bot API 9.6) |
description_parse_mode | String | Нет | Режим парсинга описания: HTML, Markdown, MarkdownV2 |
description_entities | Array of MessageEntity | Нет | JSON массив MessageEntity для описания |
media | InputPollMedia | Нет | JSON объект InputPollMedia — медиа опроса (Bot API 10.0) |
disable_notification | Boolean | Нет | Без звука |
protect_content | Boolean | Нет | Защитить контент |
allow_paid_broadcast | Boolean | Нет | Разрешить платную трансляцию |
message_effect_id | String | Нет | ID эффекта сообщения |
reply_parameters | ReplyParameters | Нет | JSON объект ReplyParameters |
reply_markup | InlineKeyboardMarkup 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 до первого сообщения
Похожие методы
stopPollОстанавливает опрос.