Всем привет, сегодня мы создадим простого Телеграм-бота, который будет присылать реакцию на то, что мы ему написали. В последующих частях мы добавим боту меню, возможность отправлять стикеры и многое другое. (Полный код программы в конце статьи)
Что понадобится
- Python версии 3.0+
- Любая среда разработки или редактор кода (мы используем PyCharm 2020.2.3 Pro)
- Desktop-приложение Telegram
1) регистрация нового бота в Telegram
После установки Телеграма на компьютер с официального сайта нам нужно найти в поиске "отца всех ботов". Для этого пишем @BotFather.
Нажимаем кнопку "start", в ответ на что бот должен прислать большое сообщение-меню со всеми доступными функциями. Пишем /newbot или просто кликаем на эту функцию в его сообщении.
После чего в чат нужно будет написать название нашего нового бота и его ник среди ботов Телеграма.
Отсюда нужно скопировать API-токен, чтобы позднее вставить в программу.
В блоке меню от @BorFather под названием "Edit Bots" вы сможете полностью настроить внешний вид своего бота: описание, фотографию и прочие параметры.
2) Установка библиотеки Python
Для следующего этапа открываем терминал и пишем команду
pip3 install pytelegrambotapi
Для написания этой статьи использовалась информация о библиотеке с сайта pypi.org и исходный код библиотеки.
Для работы бота мы используем API, о котором вы можете подробнее прочитать здесь. В случае успешной установки, вы получите следующее сообщение:
Первым этапом написания программы является импорт библиотек и авторизация бота.
import telebot
bot = telebot.TeleBot('токен');
Вместо слова "токен" вставляем токен, который сохранили в предыдущем шаге.
Для отправки сообщений нам нужно будет использовать декоратор. Что это такое мы сейчас не будем разбирать, но без этой строчки, которая начинается с "@" наша программа работать не будет.
Далее нужно создать метод get_text_messages и передать ему параметр message. Он будет принимать сообщение от пользователя и, если оно совпало с заданным, отправлять ответ. Рассмотрим самый простой пример: бот будет принимать от вас приветствие и отправлять своё в ответ. Также добавим команду /help на случай если пользователь не знает что ему делать.
@bot.message_handler (content_types =['text' ])
def get_text_messages (message):
if message.text.lower() == "привет" :
bot.send_message(message.from_user.id, "Привет, друг!" )
elif message.text == "/help" :
bot.send_message(message.from_user.id, "Напиши 'Привет'!" )
else :
bot.send_message(message.from_user.id, "Я тебя не понимаю:(" )
В последней строке кода нужно написать условие, благодаря которому программа будет постоянно проверять, не пришли ли новые сообщения.
bot.polling(none_stop=True, interval=0)
Вот такая программа в 16 строк у нас получилась. Проверим ее в действии.
3) Проверка бота
В поиске Telegram ищем своего бота по тому нику, что мы создали. В нашем случае это будет @NativeCoderBot. Запускаем нашу программу, написанную на питоне и проверяем все установленные команды.
Полный код программы:
import telebot
bot = telebot.TeleBot('токен' );
@bot.message_handler (content_types =['text' ])
def get_text_messages (message):
if message.text.lower() == "привет" :
bot.send_message(message.from_user.id, "Привет, друг!" )
elif message.text == "/help" :
bot.send_message(message.from_user.id, "Напиши 'Привет'!" )
else :
bot.send_message(message.from_user.id, "Я тебя не понимаю:(" )
bot.polling(none_stop =True, interval =0 )