Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
develop:telegram [2022/11/28 13:24] admin |
— (текущий) | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Telegram ====== | ||
- | |||
- | |||
- | ===== pyTelegramBotAPI ===== | ||
- | Модуль для работы с " | ||
- | [[https:// | ||
- | [[https:// | ||
- | |||
- | |||
- | ==== Обработка событий ==== | ||
- | Для обработки действий пользователя, | ||
- | В обрабатываемой функции непременно есть аргумент " | ||
- | |||
- | <code python> | ||
- | # Конкретные команды | ||
- | @bot.message_handler(commands=[' | ||
- | def start_message(message): | ||
- | |||
- | # Любой текст (внутри уже IF' | ||
- | @bot.message_handler(content_types=[' | ||
- | def text_message(message): | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ==== Reply Keyboard Markup ==== | ||
- | [[https:// | ||
- | Этот тип кнопок добавляется справа в поле ввода, по аналогии с меню командами\\ | ||
- | |||
- | |||
- | < | ||
- | < | ||
- | При старте задаем кнопки меню, и обрабатываем их нажатие\\ | ||
- | |||
- | <code python> | ||
- | # | ||
- | |||
- | import telebot | ||
- | from telebot import types | ||
- | |||
- | token = ' | ||
- | bot = telebot.TeleBot(token) | ||
- | |||
- | @bot.message_handler(commands = [' | ||
- | def start_message(message): | ||
- | |||
- | # | ||
- | markup=types.ReplyKeyboardMarkup(resize_keyboard=True) | ||
- | markup.add(types.KeyboardButton(" | ||
- | markup.add(types.KeyboardButton(" | ||
- | |||
- | answer = bot.send_message(message.chat.id, | ||
- | print(str(answer)) | ||
- | |||
- | @bot.message_handler(content_types = ' | ||
- | def message_reply(message): | ||
- | if message.text == " | ||
- | answer = bot.send_message(message.chat.id, | ||
- | print(str(answer)) | ||
- | |||
- | elif message.text == " | ||
- | answer = bot.send_message(message.chat.id, | ||
- | print(str(answer)) | ||
- | |||
- | |||
- | bot.infinity_polling() | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ==== inline_keyboard ==== | ||
- | Кнопки " | ||
- | |||
- | После того как пользователь выбирает такую кнопку, | ||
- | |||
- | |||
- | < | ||
- | < | ||
- | |||
- | <code python> | ||
- | # Класс кнопки | ||
- | InlineKeyboardButton( | ||
- | text, | ||
- | url = NULL, | ||
- | callback_data = NULL, | ||
- | switch_inline_query = NULL, | ||
- | switch_inline_query_current_chat = NULL | ||
- | ) | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== Overall ===== | ||
- | [[https:// | ||
- | |||
- | В поле " | ||
- | |||
- | |||
- | ==== Inline bot ==== | ||
- | [[https:// | ||
- | Есть понятие инлайн-бота, | ||
- | |||
- | |||
- | < | ||
- | < | ||
- | <code python> | ||
- | # | ||
- | import requests | ||
- | |||
- | token =' | ||
- | url = f' | ||
- | data = {' | ||
- | |||
- | answer = requests.post(url, | ||
- | print(str(answer)) | ||
- | </ | ||
- | |||
- | <code bash> | ||
- | # Простая отправка сообщения: | ||
- | curl -s -X POST https:// | ||
- | |||
- | # Изменить сообщение: | ||
- | curl -s -X POST https:// | ||
- | </ | ||
- | </ | ||
- | |||
- | |||
- | |||
- | |||
- | |||