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 배열 (퀴즈용), 예: [0] |
explanation | String | 선택 | 정답 해설 (퀴즈용) |
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());
단계별 가이드: 텔레그램 봇 만들기: @BotFather로 생성하고 첫 메시지 보내기
관련 메서드
stopPoll투표를 종료합니다.