Найти в Дзене
Native coder

Телеграм-бот на Python. ч.1

Всем привет, сегодня мы создадим простого Телеграм-бота, который будет присылать реакцию на то, что мы ему написали. В последующих частях мы добавим боту меню, возможность отправлять стикеры и многое другое. (Полный код программы в конце статьи)
Что понадобится
Python версии 3.0+
Любая среда разработки или редактор кода (мы используем PyCharm 2020.2.3 Pro)
Оглавление

Всем привет, сегодня мы создадим простого Телеграм-бота, который будет присылать реакцию на то, что мы ему написали. В последующих частях мы добавим боту меню, возможность отправлять стикеры и многое другое. (Полный код программы в конце статьи)

Что понадобится

  • Python версии 3.0+
  • Любая среда разработки или редактор кода (мы используем PyCharm 2020.2.3 Pro)
  • Desktop-приложение Telegram

1) регистрация нового бота в Telegram

После установки Телеграма на компьютер с официального сайта нам нужно найти в поиске "отца всех ботов". Для этого пишем @BotFather.

-2

Нажимаем кнопку "start", в ответ на что бот должен прислать большое сообщение-меню со всеми доступными функциями. Пишем /newbot или просто кликаем на эту функцию в его сообщении.

-3

После чего в чат нужно будет написать название нашего нового бота и его ник среди ботов Телеграма.

-4

Отсюда нужно скопировать API-токен, чтобы позднее вставить в программу.

В блоке меню от @BorFather под названием "Edit Bots" вы сможете полностью настроить внешний вид своего бота: описание, фотографию и прочие параметры.

2) Установка библиотеки Python

Для следующего этапа открываем терминал и пишем команду

pip3 install pytelegrambotapi

Для написания этой статьи использовалась информация о библиотеке с сайта pypi.org и исходный код библиотеки.

Для работы бота мы используем API, о котором вы можете подробнее прочитать здесь. В случае успешной установки, вы получите следующее сообщение:

-5

Первым этапом написания программы является импорт библиотек и авторизация бота.

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)
-6

Вот такая программа в 16 строк у нас получилась. Проверим ее в действии.

3) Проверка бота

В поиске Telegram ищем своего бота по тому нику, что мы создали. В нашем случае это будет @NativeCoderBot. Запускаем нашу программу, написанную на питоне и проверяем все установленные команды.

-7

Полный код программы:

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 )