Телеграм-бот — это специальное автоматизированное приложение, которое работает внутри мессенджера Телеграм. Его задача — принимать, обрабатывать и отправлять сообщения пользователям, выполнять различные действия, отправка информации, автоматизация чата, интеграция с сайтами и CRM и т. д. Боты используют программный интерфейс (API) для взаимодействия с Телеграм.
Токен — это уникальный длинный ключ, строка символов, выдаваемый Телеграм для каждого бота. По сути, это аналог пароля, с его помощью бот получает доступ к Телеграм API.
!pip install # pytelegrambotapi import telebot
bot = telebot.TeleBot('ВАШ_ТОКЕН')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, "Привет! Я - ваш бот.")
bot.polling() bot = telebot.TeleBot('ВАШ_ТОКЕН') @bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, "Привет! Я - ваш бот.") Декоратор @bot.message_handler — это специальный механизм, который позволяет задать фильтр для далее идущей функции. То есть, он может ограничивать действие функций и вызывать их только при вызове каких-то команд или, например, при отправлении боту контента определенного формата. Параметр commands=['start'] указывает, что следом идущая функция должна вызываться строго команды /start. Команды в Телеграм всегда начинаются с символа /. Вы можете указать несколько команд: commands=['start', 'help']
def start_message(message):
bot.send_message(message.chat.id, "Привет! Я - ваш бот.") bot.polling() Хендлеры (обработчики) — это специальные функции, которые запускаются, когда ваш бот получает сообщения или события от пользователей в Телеграм. Когда кто-то пишет боту или что-то с ним делает, хендлер «ловит» это сообщение и выполняет запрограммированное действие, например, отвечает текстом или сохраняет фото.
@bot.message_handler(content_types=['text']) # Указываем, что реагируем на текст
def echo(message):
bot.send_message(message.chat.id, f'Вы написали: {message.text}') @bot.message_handler(content_types=['photo']) # ловим фото
def handle_photo(message):
photo = message.photo[-1] # берем самое лучшее качество
file_id = photo.file_id # получаем уникальный идентификатор фото
# скачиваем фото с серверов Телеграм
file_info = bot.get_file(file_id)
downloaded_file = bot.download_file(file_info.file_path)
# сохраняем фото в файл на компьютере с именем "photo.jpg"
with open("photo.jpg", "wb") as new_file:
new_file.write(downloaded_file)
# отправляем сообщение пользователю, что фото сохранено
bot.send_message(message.chat.id, "Фото сохранено!") @bot.message_handler(content_types=['new_chat_members'])
def new_member_handler(message):
for new_member in message.new_chat_members:
bot.send_message(message.chat.id, f"Добро пожаловать, {new_member.first_name}!") @bot.message_handler(func=lambda message: 'привет' in message.text.lower())
def greet_handler(message):
bot.send_message(message.chat.id, f"Привет, {message.from_user.first_name}!") from telebot import types
@bot.message_handler(commands=['start'])
def send_keyboard(message):
keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
keyboard.add(types.KeyboardButton("Кнопка 1"))
keyboard.add(types.KeyboardButton("Кнопка 2"))
keyboard.add(types.KeyboardButton("Кнопка 3"))
bot.send_message(message.chat.id, "Выберите кнопку:", reply_markup=keyboard)
@bot.message_handler(func=lambda message: message.text in ["Кнопка 1", "Кнопка 2", "Кнопка 3"])
def handle_button(message):
if message.text == "Кнопка 1":
bot.send_message(message.chat.id, "Вы нажали Кнопку 1!")
elif message.text == "Кнопка 2":
bot.send_message(message.chat.id, "Вы нажали Кнопку 2!")
else:
bot.send_message(message.chat.id, "Вы нажали Кнопку 3!") import telebot
TOKEN = "ВАШ_ТОКЕН_ОТ_БОТА"
bot = telebot.TeleBot(TOKEN)
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id,
"Привет! Я бот для форматирования текста.\n"
"Используй команды:\n"
"/upper [текст] — в верхний регистр\n"
"/lower [текст] — в нижний регистр\n"
"/clean [текст] — убрать лишние пробелы\n"
"/count [текст] — посчитать слова и символы\n\n"
"Пример: /upper Привет мир!"
)
def extract_text(message):
parts = message.text.split(maxsplit=1)
if len(parts) > 1:
return parts[1]
else:
return None
@bot.message_handler(commands=['upper'])
def to_upper(message):
text = extract_text(message)
if text:
bot.send_message(message.chat.id, text.upper())
else:
bot.send_message(message.chat.id, "Пожалуйста, добавьте текст после команды.")
@bot.message_handler(commands=['lower'])
def to_lower(message):
text = extract_text(message)
if text:
bot.send_message(message.chat.id, text.lower())
else:
bot.send_message(message.chat.id, "Пожалуйста, добавьте текст после команды.")
@bot.message_handler(commands=['clean'])
def clean_text(message):
text = extract_text(message)
if text:
cleaned = " ".join(text.split())
bot.send_message(message.chat.id, cleaned)
else:
bot.send_message(message.chat.id, "Пожалуйста, добавьте текст после команды.")
@bot.message_handler(commands=['count'])
def count_text(message):
text = extract_text(message)
if text:
words = len(text.split())
chars = len(text)
bot.send_message(message.chat.id, f"Слов: {words}\nСимволов: {chars}")
else:
bot.send_message(message.chat.id, "Пожалуйста, добавьте текст после команды.")
bot.polling() import telebot TOKEN = "ВАШ_ТОКЕН_ОТ_БОТА"
bot = telebot.TeleBot(TOKEN) @bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, "Привет! Я бот для форматирования текста..." ) def extract_text(message):
parts = message.text.split(maxsplit=1)
if len(parts) > 1:
return parts[1]
else:
return None @bot.message_handler(commands=['upper'])
def to_upper(message):
text = extract_text(message)
if text:
bot.send_message(message.chat.id, text.upper())
else:
bot.send_message(message.chat.id, "Пожалуйста, добавьте текст после команды.") bot.polling() Итак, вы дошли до самого конца бота нашего цифрового пособия! Узнали основы языка, а также научились создавать телеграм-боты. Надеемся, вы сможете применить полученные знания на практике.