replyWithPoll method
Future<Message>
replyWithPoll(
- String question,
- List<
InputPollOption> options, { - int? messageThreadId,
- bool? isAnonymous,
- PollType type = PollType.regular,
- bool? allowsMultipleAnswers,
- int? correctOptionId,
- String? explanation,
- ParseMode? explanationParseMode,
- List<
MessageEntity> ? explanationEntities, - int? openPeriod,
- DateTime? closeDate,
- bool? isClosed,
- bool? disableNotification,
- bool? protectContent,
- ReplyMarkup? replyMarkup,
- ReplyParameters? replyParameters,
- String? businessConnectionId,
- ParseMode? questionParseMode,
- List<
MessageEntity> ? questionEntities, - String? messageEffectId,
- bool? allowPaidBroadcast,
Sends a poll to the current chat.
This method creates and sends a poll with the specified question and options. Supports both regular and quiz polls with full customization options. All parameters from the RawAPI.sendPoll method are supported.
Example:
final options = [
InputPollOption(text: 'Option 1'),
InputPollOption(text: 'Option 2'),
];
await ctx.replyWithPoll('What do you prefer?', options);
// Quiz poll with explanation
await ctx.replyWithPoll(
'What is 2+2?',
[
InputPollOption(text: '3'),
InputPollOption(text: '4'),
InputPollOption(text: '5'),
],
type: PollType.quiz,
correctOptionId: 1,
explanation: 'Basic mathematics: 2+2=4',
explanationParseMode: ParseMode.markdown,
);
Implementation
Future<Message> replyWithPoll(
String question,
List<InputPollOption> options, {
int? messageThreadId,
bool? isAnonymous,
PollType type = PollType.regular,
bool? allowsMultipleAnswers,
int? correctOptionId,
String? explanation,
ParseMode? explanationParseMode,
List<MessageEntity>? explanationEntities,
int? openPeriod,
DateTime? closeDate,
bool? isClosed,
bool? disableNotification,
bool? protectContent,
ReplyMarkup? replyMarkup,
ReplyParameters? replyParameters,
String? businessConnectionId,
ParseMode? questionParseMode,
List<MessageEntity>? questionEntities,
String? messageEffectId,
bool? allowPaidBroadcast,
}) async {
final chatId = _getChatId();
_verifyInfo([chatId], APIMethod.sendPoll);
return api.sendPoll(
chatId!,
question,
options,
messageThreadId: _threadId(messageThreadId),
isAnonymous: isAnonymous,
type: type,
allowsMultipleAnswers: allowsMultipleAnswers,
correctOptionId: correctOptionId,
explanation: explanation,
explanationParseMode: explanationParseMode,
explanationEntities: explanationEntities,
openPeriod: openPeriod,
closeDate: closeDate,
isClosed: isClosed,
disableNotification: disableNotification,
protectContent: protectContent,
replyMarkup: replyMarkup,
replyParameters: replyParameters,
businessConnectionId: _businessConnectionId(businessConnectionId),
questionParseMode: questionParseMode,
questionEntities: questionEntities,
messageEffectId: messageEffectId,
allowPaidBroadcast: allowPaidBroadcast,
);
}