Как установить библиотеку telebot python
Перейти к содержимому

Как установить библиотеку telebot python

  • автор:

Подготовка рабочего места в Windows и Linux. Virtual Environment (venv). Ответы на вопросы

Весь текст ниже появился как попытка дать универсальный ответ на те вопросы, которые дорогие читатели присылали и продолжают присылать раз за разом. Здесь не будет кода, связанного с ботами напрямую, а лишь советы по организации процесса написания. И, конечно же, не нужно воспринимать это как истину в последней инстанции, напротив, выбирайте те инструменты и подходы к разработке, которые лично вам кажутся удобными. Важная деталь: текст написан в конце 2019 года. Достаточно вступительных слов, поехали!

Предположим, вы уже немного знаете язык Python 3 (забудьте про Python 2.7, он мёртв), умеете писать простенькие программы и хотите взяться за разработку ботов. Где это делать? В чём писать код? Как правило, у большинства начинающих программистов основной операционкой используется Microsoft Windows. С неё и начнём, но сперва…

Virtual environment

Вы когда-нибудь пользовались VirtualBox? Например, чтобы «пощупать» другие операционные системы или просто установить какой-нибудь подозрительный софт. Python Virtual environment (далее — venv) чем-то напоминает «виртуалку». При его использовании создаётся копия выбранного интерпретатора Питон, а все устанавливаемые модули хранятся изолированно от общесистемных, тем самым, упрощается их обновление, удаление или изменение. Часто venv позволяет избежать ошибок, связанных с обратной совместимостью некоторых библиотек, а также обойтись без конфликтов с системными модулями. Работа с venv будет подробнее описана ниже в разделе Linux, но использовать его мы будем везде.

Windows

Первым делом, разумеется, нужно скачать сам интерпретатор Python. На момент написания этого текста актуальной версией является Python 3.8.1. В качестве каталога установки я рекомендую использовать что-то простое, вроде C:\Python38. Где писать код — личное дело каждого, конечно, но я всё же рекомендую использовать специальную среду разработки под названием PyCharm Community Edition. Бесплатной версии (та самая Community) более чем достаточно. После установки и первичной настройки выберите пункт File -> New Project. Укажите имя вашего первого проекта, а ниже укажите «New environment using virtualenv», ниже в качестве интерпретатора путь к python.exe каталога с Питоном (например, C:\Python38\python.exe).

Создание нового проекта в PyCharm

После запуска откройте вкладку Terminal в левом нижнем углу и установите библиотеку pytelegrambotapi (не telebot!). Для любителей тыкать мышкой есть более запутанный вариант: File -> Settings -> Project -> Project Interpreter -> кнопка «+» в правой части экрана.

Установка библиотеки через терминал в PyCharm

Прекрасно, теперь начинайте творить! Создайте первый файл с исходником, нажав правой кнопкой мышки по имени проекта в списке файлов, затем New и Python File.

Создание нового файла кода в PyCharm

Запустить код можно, выбрав сверху пункт Run, затем снова Run…, но с многоточием, и затем выбрав созданный ранее файл.

Как залить файлы на сервер?

Для копирования файлов на удалённый сервер (обычно там стоит Linux), я использую замечательную бесплатную программу WinSCP, причём в ней присутствует режим автоматической синхронизации файлов, чтобы при любом изменении в локальном каталоге обновлялось содержимое на удалённой машине, избавляя вас от необходимости копировать всё вручную.

Скриншот программы WinSCP

При помощи WinSCP можно даже просто подключиться к серверу и подправить файл «на лету», не забудьте только потом перезапустить бота!

Linux

Если Linux у вас используется вместо Windows, то работа с PyCharm будет точно такой же, поэтому второй раз писать не имеет смысла. Далее рассмотрен процесс запуска в терминале на удалённом сервере. Прекрасно, вы написали бота и хотите где-то его запустить. Например, арендовали сервер у Scaleway/DigitalOcean/AWS/etc. Запустили сервер, подключились к нему по SSH, а там чёрный экран и терминальная Linux-сессия. Во-первых, давайте посмотрим, какой интерпретатор у нас выбран по умолчанию, введя команду python3 .

Хорошим правилом будет иметь на сервере ровно ту же версию Python, что и на своей локальной машине, во избежание различных неприятностей. Если версия на сервере ниже 3.7 и/или ниже той, что установлена локально, лучше всего будет установить её отдельно. Очень рекомендую вот эту статью, по которой я для себя написал простой скрипт для автоматизации рутинных действий. Итак, интерпретатор установлен, теперь пора создать каталог, куда положим файлы бота. Выполните по очереди следующие команды:

mkdir mybot cd mybot python3.7 -m venv venv source venv/bin/activate pip install pytelegrambotapi deactivate 

В результате должно получиться примерно то же самое, что на скриншоте ниже, с той лишь разницей, что я прервал процесс установки библиотеки для читабельности. Обратите внимание, что после подгрузки файла venv/bin/activate, перед названием пользователя и текущего каталога появится приписка (venv), означающая, что мы «вошли» в виртуальное окружение и устанавливаем библиотеки именно в него.

Создание venv в Linux-терминале

Что произошло выше? Во-первых, мы создали каталог с названием mybot и перешли в него. Во-вторых, мы использовали Python версии 3.7 (в вашем случае это может быть не так), чтобы создать виртуальное окружение в подкаталоге venv. В-третьих, мы «активировали» venv и выполнили в нём нужную нам команду. Внутри venv команды pip и python точно знают, к какому именно интерпретатору они относятся, поэтому путаницы вроде «я установил библиотеку для Python 3.5, а запускаю из-под Python 3.7» попросту не будет. Наконец, в-четвёртых, мы деактивировали venv, поскольку он напрямую нам больше не нужен. Чтобы сделать жизнь ещё приятнее, давайте настроим автозагрузку бота, чтобы при возникновении ошибок или при перезапуске сервера он вновь запускался, избавляя нас от необходимости постоянно проверять всё вручную. Для этого мы воспользуемся подсистемой инициализации systemd, которая всё больше распространена в современных Linux-дистрибутивах. Прежде, чем описать службу systemd, откройте главный файл с ботом, в котором прописан его запуск и добавьте в качестве первой строки следующий код: #!venv/bin/python

Сохраните файл, закройте его и выполните команду chmod +x имяфайласботом.py , чтобы сделать его исполняемым. Теперь создайте файл mybot.service, и скопируйте туда следующий текст:

[Unit] Description=MY BOT After=network.target [Service] Type=simple WorkingDirectory=/home/user/mybot ExecStart=/home/user/mybot/bot.py KillMode=process Restart=always RestartSec=10 [Install] WantedBy=multi-user.target 

Отредактируйте поля Description , WorkingDirectory и ExecStart , сохраните и закройте файл. Далее скопируйте его в каталог /etc/systemd/system , введя свой пароль при необходимости (если сидите не из-под рута, что правильно, то ваш юзер должен иметь возможность выполнять команды от имени sudo). Затем выполните следующие команды для включения автозагрузки и запуска бота (опять-таки, требуются права суперпользователя):

systemctl enable mybot.service systemctl restart mybot 

Наконец, проверьте состояние вашего бота командой systemctl status mybot . Его статус должен быть Active (running) зелёного цвета (если поддерживается разноцветный режим).

Проверка статуса бота через systemd

Как редактировать файлы на сервере?

Если что-то нужно подправить небольшое, то неплохим вариантом остаётся старое доброе подключение по SSH и использование редакторов вроде micro, nano или даже vim с emacs. Но если вдруг у вас в качестве локальной машины применяется Linux, то крайне рекомендую редактор Visual Studio Code (https://code.visualstudio.com) с дополнением Remote-SSH. В этом случае, вы сможете прямо в VS Code открывать каталоги на сервере и редактировать файлы в удобном окружении и с подсветкой синтаксиса. К сожалению, насколько мне известно, расширение Remote-SSH не работает в Windows, но впоследствии этот недочёт будет устранён.

Ответы на часто задаваемые вопросы (FAQ)

Хочу научиться писать ботов. С чего мне начать?
Прежде всего, пожалуйста, изучите хотя бы немного сам язык Python. Он довольно простой, но перед созданием ботов стоит понять азы. Конкретнее: переменные, циклы, функции, классы, обработка исключений, работа с файлами и файловой системой.

Можно ли писать ботов на телефоне?
Да кто ж вам запретит-то? Но лучше от этого никому не будет, поверьте. Будет трудно, неудобно и контрпродуктивно. Используйте нормальный компьютер.

[pyTelegramBotAPI] Ошибка AttributeError: module ‘telebot’ has no attribute ‘TeleBot’!
На 99% уверен, что вы установили библиотеку telebot вместо pytelegrambotapi. С учётом всего вышесказанного проще создать новое окружение venv, перенести туда нужные файлы и установить именно pytelegrambotapi, при этом в исходниках должно остаться import telebot.

Как мне держать бота запущеным в Windows?
Запустите бота в PyCharm, не закрывайте приложение и не выключайте комп. Почти шутка. По-моему, Windows — не самая лучшая операционка для подобных вещей, проще арендовать сервер у европейских провайдеров, заодно не будет геморроя с варварами из Российского Консорциума Неадекватов.

Библиотека pyTelegramBotAPI не поддерживает новые фичи Bot API!
К сожалению, упомянутая библиотека в 2019 году развивалась гораздо медленнее, чем хотелось. Если вы уже чувствуете себя уверенным ботописателем, подумайте о переходе на альтернативы вроде aiogram.

В завершение хочется напомнить, что если у вас возникли замечания, предложения или вопросы, вы всегда можете открыть issue на Github или прийти к нам в чатик.

Урок №2. Тело telegram бота

В этом уроке мы научимся создавать проект, устанавливать библиотеки. Также мы создадим отдельный файл, который не пушиться на сервер и хранится локально на нашем компьютере, и где будут храниться наш секретный токен, пароли и другое. Также мы подключим нашего telegram бота к python для дальнейшей работы с ним.

Создание проекта.

Я буду использовать программу PyCharm. В ней вам необходимо создать новый проект с любым названием(File -> New project -> Create). Я назову проект pythontelegram.Также внутри проекта необходимо создать новый файл для написания кода, название может быть любым(внутри проекта нажимаем правой кнопкой мыши -> New -> Python File)

Учимся создавать простых ботов или туториал по библиотеке TeleBot

Начнем с того, что библиотек для разработки телегам-ботов на Python несколько, я упомяну основные три. В первой части статьи будет небольшой обзор этих библиотек (примеры кода тут будут для красоты, не пугайтесь, ниже будет пошаговый Гайд по одной конкретной библиотеке), потом комментарий о том, какую стоит выбрать для разработки конкретно своего бота и подробное руководство для новичков по разработке бота с разбором каждой строчки кода.

Пока я писала эту статью, наткнулась на классный гайд от телеграм, где приведен список всех существующих библиотек для разработки ботов для всех языков программирования

Интернет считает, что одной из самых распространенных и простых библиотек является python-telegram-bot (хотя я отдаю предпочтение следующим двум).

  1. python-telegram-bot:
    • Официальная библиотека от Telegram для разработки ботов на Python.
    • Предоставляет простой и удобный интерфейс для работы с Telegram API.
    • Поддерживает обработку команд, обновлений, отправку сообщений и многое другое.
    • Содержит детализированную документацию и активное сообщество на GitHub.
pip install python-telegram-bot
from telegram import Update from telegram.ext import Updater, CommandHandler, CallbackContext def start(update: Update, context: CallbackContext) -> None: update.message.reply_text("Здорова, брат! Я бот. Как сам?") updater = Updater('YOUR_TOKEN') dp = updater.dispatcher dp.add_handler(CommandHandler('start', start)) updater.start_polling() updater.idle()
  • Асинхронная библиотека для работы с Telegram API.
  • Предоставляет удобный интерфейс для работы с обновлениями, сообщениями, командами и другими элементами бота.
  • Поддерживает интеграцию с базами данных, веб-сервисами и другими внешними ресурсами
pip install aiogram
import logging from aiogram import Bot, Dispatcher, types from aiogram.types import ParseMode API_TOKEN = 'YOUR_TOKEN' logging.basicConfig(level=logging.INFO) bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) @dp.message_handler(commands=['start']) async def send_welcome(message: types.Message): await message.reply("Здорова, брат! Я бот. Как сам?") if __name__ == '__main__': from aiogram import executor executor.start_polling(dp, skip_updates=True)

aiogram позволяет создавать крутых, многофункциональных коммерческих ботов, но до нее еще нужно дорасти. Вы уже должны отлично владеть навыками написания кода (что-то большее, чем решение задачек на степике) и понимать, что такое асинхронность (что знают даже не все Junior разработчики). Для начала пути в разработке ботов эта библиотека подойдет только разработчикам с опытом.

  • Простая библиотека для работы с Telegram Bot API.
  • Предоставляет удобные функции для отправки сообщений, обработки команд и других событий.
  • Легко использовать и поддерживать.
pip install pyTelegramBotAPI
import telebot bot = telebot.TeleBot('YOUR_TOKEN') @bot.message_handler(commands=['start']) def handle_start(message): bot.send_message(message.chat.id, "Здорова, брат! Я бот. Как сам?") bot.polling(none_stop=True) 

Выше вы видите три примера кода, выполняющие одну и туже задачу, но с использованием разных библиотек. Чисто визуально уже можно заметить, что последний код выглядит гораздо проще и это правда. Для старта в разработке и создании простых ботов, и я имею ввиду не просто Привет-Пока, с большой вероятностью если вы разрабатываете бота для себя или даже для своего блога, бизнеса или курсов и он не будет включать в себя авторизацию, функции обработки платежей, работы с огромными базами данных и тысячи пользователей — этой библиотеки вам хватит.

Более того, по опыту мне кажется, именно про эту библиотеку написано больше всего статей, гайдов и видео на ютубе — что для начала изучения самое то.

Туториал по библиотека TeleBot

Шаг 1: Установка библиотеки Telebot

Установите библиотеку Telebot с помощью pip, выполнив команду в командной строке или терминале (ее нужно выполнить только один раз, а не при каждом запуске бота):

pip install pyTelegramBotAPI

Шаг 2: Получите токен доступа для вашего бота

Откройте приложение Telegram и найдите @BotFather — официального бота для создания новых ботов.

Обратите внимание на галочку!

Создайте нового бота, следуя инструкциям BotFather.

Получите токен доступа для вашего бота.

нам нужна вот эта строчка из цифр и букв, это и есть токен

Обратите внимание, что в начале последнего сообщения вам еще выдали ссылку на ваш бот — не потеряйте ее.

Шаг 3: Импорт и настройка библиотеки Telebot

Импортируйте библиотеку Telebot в свой код:

import telebot

Создайте объект бота, используя полученный токен:

Вместо ‘YOUR_TOKEN’ вставляем токен, полученный от BotFather. Так мы свяжем бота, созданного в телеграм с ботом, код которого мы пишем.

bot = telebot.TeleBot('YOUR_TOKEN')

Шаг 4: Создание обработчиков команд и сообщений

Определите функцию-обработчик bot.message_handler для команд и сообщений, которые бот будет получать и обрабатывать (по сути, добавив эту строчку кода над како-либо функцией, мы говорим, что это не просто функция — а специальная функция, которая будет срабатывать когда бот получит какую-то команду, сообщение, стикер, фотографию и тд).

Сейчас мы указали, что данный обработчик будет обрабатывать команду \start (написали в скобках commands = [‘start’])и далее описали функцию, которая будет срабатывать при отправке этой команды боту. Наш бот ответит пользователю в чате ‘привет-привет! Напиши что-нибудь’.

@bot.message_handler(commands = ['start']) def start(message): bot.send_message(message.chat.id, 'привет-привет! Напиши что-нибудь')

bot.send_message — функция отправки ботом сообщения в чат. А вот в какой чат? Нам нужно отправить в тот же, откуда пришло сообщение от пользователя — для этого мы в скобках первым параметром указываем message.chat.id, по сути передаем айди нужного нам чата. А дальше указываем строку-сообщение, которое отправит бот.

Шаг 5: Запуск бота

Запустите бота, чтобы он начал прослушивать события и реагировать на них:

bot.polling()

Соберем весь код в один и запустим.

import telebot bot = telebot.TeleBot('') @bot.message_handler(commands = ['start']) def start(message): print(message) bot.send_message(message.chat.id, 'привет-привет! Напиши что-нибудь') bot.polling(none_stop = True)

Пока код запущен, отправим нашему боту сообщение в Телеграмм — команду /start

Визуально мы увидим вот такую картину.

Создадим эхо-бота

Определите функции-обработчики для команд и сообщений, которые бот будет получать и обрабатывать:

@bot.message_handler(commands=['start','help']) def handle_start(message): bot.reply_to(message, 'Привет! Я бот.') @bot.message_handler(func=lambda message: True) def handle_message(message): bot.reply_to(message, 'Получено сообщение: ' + message.text)

Первому обработчику мы указали, что он будет обрабатывать команды, конкретно две — то есть функция handle_start, написанная ниже, будет срабатывать и на команду start и на команду help

commands=['start','help']

Во втором обработчике написана страшная строчка message_handler(func=lambda message: True) — она взята из документации и вы часто будете ее видеть.

Если разбирать сложно и подробно: эта строка кода представляет собой использование лямбда-функции для определения, должно ли обработаться входящее текстовое сообщение в телеграм-боте. В данном случае, поскольку лямбда всегда возвращает True , это означает, что все входящие текстовые сообщения будут обрабатываться функцией, к которой применяется эта лямбда.

Если разбирать просто и коротко: ставим эту строчку кода, когда хотим обрабатывать все текстовые сообщения от пользователей, ибо так гласит документация.

bot.reply_to — бот отправляет ответное сообщение на то, что пришло (это когда вы в телеграм тыкаете на сообщение и нажимаете кнопку «ответить» на него). Так как бот отвечает на конкретное сообщение, то мы передаем в скобках не айди чата, а по сути просто то сообщение, на которое нужно ответить и что нужно ответить.

message — аргументом каждой функции (в скобках после названия функции) мы видим message — по сути, это принятое от пользователя сообщение, которое мы функции передаем и она уже может делать с ним все, что хочет — достать текст сообщения (message.text), узнать айди чата (message.chat.id) и еще множество параметров: имя и ник пользователя, время, язык и тд. Сообщения, которые мы отправляем боту, несут не только ту информацию, что мы видим, а ОГРОМНОЕ количество данных о нас.

Нужно ли все время писать именно message?

Часто слышу и вижу этот вопрос от новичков. Это общепринято для удобства, но по сути это обычное название переменной и ее можно заменить на любой другое: m, mes, info, answer и тд.

Запустите свой скрипт с ботом.

import telebot bot = telebot.TeleBot('') @bot.message_handler(commands=['start','help']) def handle_start(message): bot.reply_to(message, 'Привет! Я бот.') @bot.message_handler(func=lambda message: True) def handle_message(message): bot.reply_to(message, 'Получено сообщение: ' + message.text) bot.polling()

Откройте чат с вашим ботом в Telegram.

Отправьте команду «/start» или напишите ему сообщение для проверки обработки сообщений и команд.

Добавим обработку сообщений

Добавим функционал обработки сообщений, для этого нужно указакать, какие сообщения могут приходить боту (или какие мы хотим обрабатывать)

content_types=[«text», «sticker», «pinned_message», «photo», «audio»]

import telebot bot = telebot.TeleBot('') @bot.message_handler(commands=['start']) def handle_start(message): bot.reply_to(message, 'Привет! Я бот.') @bot.message_handler(content_types=['text', 'photo', 'sticker']) def handle_message(message): # Ответ на текстовое сообщение if message.text == 'Привет': bot.send_message(message.chat.id, 'Привет! Как дела?') # Ответ на изображение if message.photo: bot.send_message(message.chat.id, 'Вы отправили изображение.') # Ответ на стикер if message.sticker: bot.send_message(message.chat.id, 'Вы отправили стикер.') bot.polling()

Мы указали, что бот может обрабатывать текстовые сообщения, изображения и стикеры. content_types=[‘text’, ‘photo’, ‘sticker’]

С помощью условий (их можно написать сколько угодно) можно обработать любые текстовые сообщения, например if message.text == ‘Привет’: ваш код.

if message.photo: сработает только если в чат придет изображение, аналогично условие со стикером.

Добавим боту кнопки

Шаг 1: Импорт необходимых классов и модулей (эту строчку нужно добавить в начало кода, чтобы появилась возможность добавлять кнопки)

from telebot import types

Шаг 2: Создание и отправка сообщения с клавиатурой:

@bot.message_handler(commands=['start']) def handle_start(message): # Создание клавиатуры keyboard = types.ReplyKeyboardMarkup(row_width=2) button1 = types.KeyboardButton('Кнопка 1') button2 = types.KeyboardButton('Кнопка 2') button3 = types.KeyboardButton('Кнопка 3') keyboard.add(button1, button2, button3) # Отправка сообщения с клавиатурой bot.reply_to(message, 'Привет! Я бот.', reply_markup=keyboard)

Давайте разберем, что делает каждая часть кода, заодно повторим сказанное ранее:

  1. bot.message_handler(commands=[‘start’]) : Эта строка указывает, что функция handle_start будет обрабатывать сообщения, содержащие команду /start. Таким образом, когда пользователь отправляет боту команду /start, будет вызвана функция handle_start.
  2. def handle_start(message): : Это объявление функции handle_start, которая принимает один аргумент message. В данном случае, message представляет собой объект, содержащий информацию о входящем сообщении от пользователя.
  3. Создание клавиатуры:
    • keyboard = types.ReplyKeyboardMarkup(row_width=2) : Создается объект клавиатуры ReplyKeyboardMarkup с шириной строки (row_width) равной 2. Это означает, что кнопки будут располагаться в две колонки.
    • button1 = types.KeyboardButton(‘Кнопка 1’) : Создается кнопка с надписью ‘Кнопка 1’.
    • button2 = types.KeyboardButton(‘Кнопка 2’) : Создается кнопка с надписью ‘Кнопка 2’.
    • button3 = types.KeyboardButton(‘Кнопка 3’) : Создается кнопка с надписью ‘Кнопка 3’.
    • keyboard.add(button1, button2, button3) : Кнопки добавляются к клавиатуре.
  4. Отправка сообщения с клавиатурой: bot.reply_to(message, ‘Привет! Я бот.’, reply_markup=keyboard) : Бот отправляет ответное сообщение на сообщение пользователя (message). Текст ответа — ‘Привет! Я бот.’. Также в этом сообщении используется клавиатура keyboard, которую мы создали ранее. Таким образом, пользователю будет отправлено приветственное сообщение с прикрепленной к нему клавиатурой с тремя кнопками.

Шаг 3: Обработка нажатия на кнопку. Нажатие на кнопку обрабатывается точно так же, как и текстовое сообщение. То есть по сути, нажать на кнопку с надписью «Кнопка 1» это тоже самое, что написать и отправить боту сообщение с текстом «Кнопка 1»

@bot.message_handler(func=lambda message: True) def handle_message(message): if message.text == 'Кнопка 1': # Действия при нажатии на кнопку 1 bot.reply_to(message, 'Вы нажали на Кнопку 1') elif message.text == 'Кнопка 2': # Действия при нажатии на кнопку 2 bot.reply_to(message, 'Вы нажали на Кнопку 2') elif message.text == 'Кнопка 3': # Действия при нажатии на кнопку 3 bot.reply_to(message, 'Вы нажали на Кнопку 3') else: # Действия при получении другого сообщения bot.reply_to(message, 'Получено сообщение: ' + message.text)

Итоговый код

import telebot from telebot import types bot = telebot.TeleBot('') @bot.message_handler(commands=['start']) def handle_start(message): # Создание клавиатуры keyboard = types.ReplyKeyboardMarkup(row_width=2) button1 = types.KeyboardButton('Кнопка 1') button2 = types.KeyboardButton('Кнопка 2') button3 = types.KeyboardButton('Кнопка 3') keyboard.add(button1, button2, button3) # Отправка сообщения с клавиатурой bot.reply_to(message, 'Привет! Я бот.', reply_markup=keyboard) @bot.message_handler(func=lambda message: True) def handle_message(message): if message.text == 'Кнопка 1': # Действия при нажатии на кнопку 1 bot.reply_to(message, 'Вы нажали на Кнопку 1') elif message.text == 'Кнопка 2': # Действия при нажатии на кнопку 2 bot.reply_to(message, 'Вы нажали на Кнопку 2') elif message.text == 'Кнопка 3': # Действия при нажатии на кнопку 3 bot.reply_to(message, 'Вы нажали на Кнопку 3') else: # Действия при получении другого сообщения bot.reply_to(message, 'Получено сообщение: ' + message.text) bot.polling()

Пока вы не отправите команду start, клавиатура не появится.

Задание на отработку

Дописать бота для игры в камень-ножницы-бумага

import telebot import random from telebot import types bot = telebot.TeleBot('token') @bot.message_handler(commands=["start"]) def start(m, res=False): # Добавляем кнопки markup=types.ReplyKeyboardMarkup(resize_keyboard=True) # TODO добавить 3 объекта KeyboardButton для 'Камень','Ножницы','Бумага' # TODO добавить кнопки в клавиатуру (markup) bot.send_message(m.chat.id, 'Нажми кнопку и начни игру ', reply_markup=markup) @bot.message_handler(content_types=["text"]) def handle_text(message): # TODO посылать в чат случайное из списка 'Камень','Ножницы','Бумага' bot.polling(none_stop=True, interval=0)

Решение опубликую в следующей статье! Удачи в изучении ботов!

  • Python
  • telegram
  • telegrambot
  • telegram api
  • telegram чат-бот на python
  • telegram bot
  • туториал
  • пошаговое руководство
  • для новичков
  • pet-project
  • Python
  • Программирование
  • API
  • Учебный процесс в IT

Как установить библиотеку telebot python

Скачай курс
в приложении

Перейти в приложение
Открыть мобильную версию сайта

© 2013 — 2023. Stepik

Наши условия использования и конфиденциальности

Get it on Google Play

Public user contributions licensed under cc-wiki license with attribution required

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *