Улучшеный курс по созданию телеграм ботов

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

Я буду использовать Telebot(PyTelegramBotApi) очень легкая библиотека:

pip install pyTelegramBotAPI

Теперь возмем Api ключ в телеграмме.Заходим в поиск и вбиваем @botFather(примерно так будет выглядить -->)

Улучшеный курс по созданию телеграм ботов

Берем в буфер ключ и идем в ide или где вы кодите:

import telebot token='6250404026:AAFC4KiaDmFcCw51gpToPeueN-Ug64HHzyk' bot=telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start(message): bot.send_message(message.chat.id,'Привет') bot.polling()

Этот бот пишет привет.

После импорта , мы создали token и token передается в аргумент bot .После этого мы будем работать только с bot ,вот пример "@bot.message_handler(commands=['start'])"-это обработчик всех сообщений,но включается внизу код только если напишешь /start.Comands не одна настройка хэндлера.

import telebot token='6250404026:AAFC4KiaDmFcCw51gpToPeueN-Ug64HHzyk' bot=telebot.TeleBot(token) @bot.message_handler(content_types=['text']) def start(message): bot.send_message(message.chat.id,'Привет') bot.polling()

Теперь бот отвечает на все сообщения типа:текст.

"content_types=['text']" это настройка на то чтобы бот писал привет,если пользователь будет писать сообщение,но на фото,видео и аудио не будет отвечать.

Теперь добавим кнопки:

import telebot from telebot.types import InlineKeyboardButton,InlineKeyboardMarkup token='6250404026:AAFC4KiaDmFcCw51gpToPeueN-Ug64HHzyk' bot=telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start(message): markup=InlineKeyboardMarkup(row_width=2) random=InlineKeyboardButton('Рандомное число',callback_data='random') comands=InlineKeyboardButton("Команды",callback_data='comands') markup.add(random,comands) bot.send_message(message.chat.id,'Выбери опцию.',reply_markup=markup) bot.polling()

types имеют:

  • InlineKeyboardButton
  • InlineKeyboardMarkup
  • ReplyKeyboardMarkup
  • KeyboardButton

Я использовал InlineKeyboardButton:

Улучшеный курс по созданию телеграм ботов

Markup это наша клавиатура содержит кнопки,у меня есть только две кнопки "Рандомное число","Команды".Их мы добавляем кнопки с помощью 'markup.add'.Теперь мы добавим reply_markup чтобы увидеть клавиатуру.

@bot.callback_query_handler(func=lambda call: True) def handle_button_press(call): if call.data == 'random': # Обработка нажатия кнопки "Рандомное число" random_number = random.randint(1, 100) bot.send_message(call.message.chat.id, f'Случайное число: {random_number}') elif call.data == 'commands': # Обработка нажатия кнопки "Команды" bot.send_message(call.message.chat.id, 'Список доступных команд:\n/start - Начало бота.')

Кнопки есть callback_data и это как id кнопки когда вы нажимаете на кнопку проверяются все callbackи на то что пользователь нажал на кнопку.

На этом я заканчиваю,если хотите продолжение напиши в коментарий и подпишись.Я же стараюсь.

11
Начать дискуссию