Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном
В последнее время я сделал насколько много ботов для телеграмма, что крайне преисполнился в том, как их писать, как хостить, да и в принципе выработал красивый шаблон для быстрого их создания.
Сразу скажу, что далее будет все на питоне... Сказал. Не буду больше ходить вокруг да около, у нас всего 5 минут (помните, да?). Приступим!
Пошаговая инструкция
1) Создаем репозиторий на гитхабе из моего шаблона

2) Регистрируемся на Heroku

3) Создаем новое приложение

4) Привязываем наш репозиторий к проекту на Heroku

5) Настраиваем автоматический deployment

6) Смотрим на адрес, где будет висеть наш бот

7) Настраиваем переменные среды
KEY | VALUE |
BOT_TOKEN | Токен для бота |
WEBHOOK_TOKEN | Рандомная строка из букв для безопастности |
ADMIN_PASSWORD | Еще одна рандомная строка из букв для безопастности |
HOST | Адрес полученный в пункте 6 (например |
IS_PRODUCTION |
|
LOG_BOT_TOKEN | Токен для бота, куда будут отправляться логи |
ADMIN_ID |
|

8) Собираем наше приложение и ждем пока оно запуститься

9) Заходим по адресу из пункта 6 и добавляем к ссылке пароль. Получиться что-то такое: fancy-panda.herokuapp.com/?password={ADMIN_PASSWORD}

10) Устанавливаем webhook, переходя по ссылке на подобие fancy-panda.herokuapp.com/set_webhook?password={ADMIN_PASSWORD}

Тестируем
Теперь, когда мы закончили все настраивать, пора посмотреть, что же мы "натворили"


Добавляем функционал
Теперь, когда у вас есть рабочий бот, который сам разворачивается и запускается в облаке, пришло время добавить свои функции. Для примера такую:
@bot.message_handler(commands=["id"])
def get_id(message):
logger.info(f'</code>@{message.from_user.username}<code> used /id')
bot.send_message(message.chat.id, f"user_id = {message.chat.id}")
Думаю, дальше ограничивает вас только воображение... (ну почти)
Выводы
Вот мы и сделали нашего бота, который хоститься в облаке. Он уже многое умеет в плане логирования. Для логирования я написал отдельную библиотеку, tg-logger. Если интересно, как она работает, то потыкайте в демо бота. Если все еще интересно, прочитайте мою статью на хабре. Такие пироги с котятками...