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 | 可选 | 问题的 MessageEntity JSON 数组 |
options | Array of InputPollOption | 是 | InputPollOption JSON 数组 [{"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 | 可选 | 正确选项 ID 的 JSON 数组(quiz 模式),例如 [0] |
explanation | String | 可选 | 正确答案的解释(quiz 模式) |
explanation_parse_mode | String | 可选 | 解释的解析模式 |
explanation_entities | Array of MessageEntity | 可选 | 解释的 MessageEntity JSON 数组 |
explanation_media | InputPollMedia | 可选 | InputPollMedia JSON 对象 (Bot API 10.0) |
open_period | Integer | 可选 | 投票开放时长(秒,5-2628000) |
close_date | Integer | 可选 | 投票结束的 Unix 时间戳 |
is_closed | Boolean | 可选 | 立即结束投票 |
description | String | 可选 | 投票描述(0-1024 个字符,Bot API 9.6) |
description_parse_mode | String | 可选 | 描述解析模式:HTML、Markdown、MarkdownV2 |
description_entities | Array of MessageEntity | 可选 | 描述的 MessageEntity JSON 数组 |
media | InputPollMedia | 可选 | InputPollMedia JSON 对象——投票媒体 (Bot API 10.0) |
disable_notification | Boolean | 可选 | 静默发送 |
protect_content | Boolean | 可选 | 保护内容 |
allow_paid_broadcast | Boolean | 可选 | 允许付费广播 |
message_effect_id | String | 可选 | 消息特效 ID |
reply_parameters | ReplyParameters | 可选 | ReplyParameters JSON 对象 |
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());
分步教程: Telegram 机器人教程:从零创建 Telegram 机器人并发送第一条消息
相关方法
stopPoll结束投票。