pyTelegramBot — боты в Telegram
pyTelegramBotAPI устанавливается как pip install pytelegrambotapi, в коде чаще пишут import telebot. Библиотека обращается к Telegram Bot API: бот — это программа на вашем сервере или компьютере, которая получает обновления (сообщения, нажатия кнопок) и отправляет ответы.
Путеводитель: Инструменты и среды. HTTP в Python: requests.
Подготовка
- В Telegram откройте @BotFather.
- Команда
/newbot→ имя и username (должен оканчиваться наbot). - Сохраните токен — это пароль бота. Не публикуйте его в репозитории.
pip install pytelegrambotapi
Токен лучше хранить в переменной окружения:
# Windows PowerShell
$env:BOT_TOKEN="123456:ABC..."
# Linux / macOS
export BOT_TOKEN="123456:ABC..."
Минимальный бот
import os
import telebot
bot = telebot.TeleBot(os.environ["BOT_TOKEN"])
@bot.message_handler(commands=["start", "help"])
def send_welcome(message):
bot.reply_to(
message,
"Привет! Я учебный бот.\n"
"Команды: /start, /help, /echo <текст>",
)
@bot.message_handler(commands=["echo"])
def echo(message):
# /echo привет → «привет»
parts = message.text.split(maxsplit=1)
if len(parts) < 2:
bot.reply_to(message, "Напишите: /echo ваш текст")
return
bot.reply_to(message, parts[1])
@bot.message_handler(func=lambda m: True)
def fallback(message):
bot.reply_to(message, "Не понял. Попробуйте /help")
if __name__ == "__main__":
bot.infinity_polling()
Запуск: python bot.py. Напишите боту в Telegram после /start.
Команды и обработчики
| Декоратор | Срабатывает когда |
|---|---|
@bot.message_handler(commands=["ping"]) | Сообщение /ping |
@bot.message_handler(content_types=["photo"]) | Фото |
@bot.message_handler(func=lambda m: m.text and m.text.startswith("#")) | Свой фильтр |
Объект message содержит chat.id, from_user, text, document и др. — см. типы Bot API.
Клавиатура с кнопками
from telebot import types
@bot.message_handler(commands=["menu"])
def menu(message):
kb = types.ReplyKeyboardMarkup(resize_keyboard=True)
kb.add("Расписание", "Справка")
bot.send_message(message.chat.id, "Выберите пункт:", reply_markup=kb)
@bot.message_handler(func=lambda m: m.text == "Справка")
def help_btn(message):
bot.send_message(message.chat.id, "Список команд: /start, /menu")
Inline-кнопки (под сообщением, не в поле ввода):
markup = types.InlineKeyboardMarkup()
markup.add(types.InlineKeyboardButton("Сайт", url="https://example.com"))
bot.send_message(message.chat.id, "Ссылки:", reply_markup=markup)
Long polling и webhook
Учебные боты обычно используют infinity_polling() — библиотека сама опрашивает серверы Telegram.
На продакшене часто ставят webhook (HTTPS-URL, куда Telegram шлёт POST). Для школы и домашних проектов polling достаточно.
Безопасность и ограничения
- Токен = полный доступ к боту; при утечке —
/revokeв BotFather и новый токен. - Бот не видит все сообщения в группе, пока не включён режим Privacy или бот не добавлен как админ (зависит от настроек).
- Соблюдайте правила Telegram и не рассылайте спам.
Альтернативы: python-telegram-bot, aiogram (асинхронный стиль). telebot выбирают за простой синхронный API для первых проектов.
См. также
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Python как язык общего назначения - философия, ключевые свойства и области применения в современной разработке. Python — это высокоуровневый язык программирования общего назначения, который отличается читаемым синтаксисом и широким спектром применения. Принципы, которые делают код понятным, поддерживаемым и расширяемым. Примеры реализации типовых приложений. Каждый пример сопровождается разбором ключевых концепций языка. Наверняка каждый новичок, решивший перейти в что-то стандартное в Python, открывает себе этот файл. Как устроен Python, что входит в комплект и какие есть реализации. Структурные каркасы для построения приложений, как они устроены. Фреймворки, библиотеки, инструменты сборки, среды выполнения, системы тестирования и специализированные платформы, объединённые общей философией ясности, простоты и гибкости. Что такое модули, как устроены механизмы импорта и загрузки. Управление изолированной средой и зависимостями проекта. История Python - ключевые этапы развития языка, сообщества и экосистемы инструментов. Философия Python не зафиксирована в официальных стандартах, но она глубоко интегрирована в язык, его стандартную библиотеку, документацию и культуру разработчиков.Python - язык общего назначения
Что требуется знать перед началом изучения языка программирования Python
Рекомендации по разработке на Python
Простые приложения на Python
Встроенный модуль builtins и типизация в Python
Архитектура интерпретатора Python
Фреймворки и библиотеки Python
Экосистема Python-приложений
Модули в Python
Виртуальные окружения и управление зависимостями
История языка Python
Философия Python - Zen of Python