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可选问题的 MessageEntity JSON 数组
optionsArray of InputPollOption是InputPollOption JSON 数组 [{"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可选正确选项 ID 的 JSON 数组(quiz 模式),例如 [0]
explanationString可选正确答案的解释(quiz 模式)
explanation_parse_modeString可选解释的解析模式
explanation_entitiesArray of MessageEntity可选解释的 MessageEntity JSON 数组
explanation_mediaInputPollMedia可选InputPollMedia JSON 对象 (Bot API 10.0)
open_periodInteger可选投票开放时长(秒,5-2628000)
close_dateInteger可选投票结束的 Unix 时间戳
is_closedBoolean可选立即结束投票
descriptionString可选投票描述(0-1024 个字符,Bot API 9.6)
description_parse_modeString可选描述解析模式:HTML、Markdown、MarkdownV2
description_entitiesArray of MessageEntity可选描述的 MessageEntity JSON 数组
mediaInputPollMedia可选InputPollMedia JSON 对象——投票媒体 (Bot API 10.0)
disable_notificationBoolean可选静默发送
protect_contentBoolean可选保护内容
allow_paid_broadcastBoolean可选允许付费广播
message_effect_idString可选消息特效 ID
reply_parametersReplyParameters可选ReplyParameters JSON 对象
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());

分步教程: Telegram 机器人教程:从零创建 Telegram 机器人并发送第一条消息