TeleBot – это библиотека, которая предназначена для создания ботов в мессенджере Telegram на языке программирования Python. Для организации голосования вы можете использовать встроенный тип опроса (Poll) Telegram.
Для начала вам нужно установить библиотеку `pyTelegramBotAPI`, если она у вас ещё не установлена:
```bash
pip install pyTelegramBotAPI
```
Далее приведу пример кода, который организует отправку голосования участникам:
```python
import telebot
TOKEN = 'ВАШ_ТОКЕН_БОТА'
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start', 'help'])
def send_welcome(message):
bot.reply_to(message, "Привет! Я бот, который может создать голосование.")
@bot.message_handler(commands=['poll'])
def create_poll(message):
questions = "Кто лучший футболист?"
options = ["Лионель Месси", "Криштиану Роналду", "Неимар"]
bot.send_poll(chat_id=message.chat.id, question=questions, options=options)
# Перехват всех текстовых сообщений для отправки голосования через команду боту
@bot.message_handler(func=lambda message: True)
def echo_all(message):
if message.text.startswith('/sendpoll'):
try:
_, questions, *options = message.text.split(';')
options = [option.strip() for option in options]
bot.send_poll(chat_id=message.chat.id, question=questions, options=options)
except Exception as e:
bot.reply_to(message, "Ошибка создания голосования. Убедитесь, что правильно ввели команду.")
# Запускаем бота
bot.polling()
```
В этом примере присутствует простой обработчик команды `/poll`, который отправляет предопределённое голосование. Также есть обработчик для всех текстовых сообщений: если пользователь отправляет команду `/sendpoll` с вопросом и вариантами ответа через `;`, бот создаёт голосование по этим параметрам.
Например:
```
/sendpoll;Какой ваш любимый цвет?;Красный;Зелёный;Синий;Жёлтый
```
Не забудьте заменить `ВАШ_ТОКЕН_БОТА` на реальный токен вашего бота, полученный от @BotFather в Telegram.
Обратите внимание, что такой подход к созданию голосований не рекомендуется для реального приложения из-за потенциальных проблем безопасности и проверки входных данных. Однако для демонстрационных целей или в закрытой среде это может быть достаточно.