[Python, GitHub, Flask] Делаем телеграм бота за 5 минут: быстрый старт с продвинутым шаблоном
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
В последнее время я сделал насколько много ботов для телеграмма, что крайне преисполнился в том, как их писать, как хостить, да и в принципе выработал красивый шаблон для быстрого их создания.Сразу могу предложить посмотреть на то, что получиться в конце этого туториала. Для этого я запустил бота с идентичном шаблону кодом.Также стоит отметить, что хостинг в этом примере бесплатный, но его хватает для разумной нагрузки.А еще сразу скажу, что далее будет все на питоне... Вот... Сказал. Не буду больше ходить вокруг да около, у нас всего 5 минут (помните, да?). Приступим!Пошаговая инструкция1) Создаем репозиторий на гитхабе из моего шаблона
2) Регистрируемся на Heroku
3) Создаем новое приложение
4) Привязываем наш репозиторий к проекту на Heroku
5) Настраиваем автоматический deployment
6) Смотрим на адрес, где будет висеть наш бот
7) Настраиваем переменные средыKEYVALUEBOT_TOKENТокен для ботаWEBHOOK_TOKENРандомная строка из букв для безопастностиADMIN_PASSWORDЕще одна рандомная строка из букв для безопастностиHOSTАдрес полученный в пункте 6 (например fancy-panda.herokuapp.com). Обратите внимание на формат!IS_PRODUCTIONTrueLOG_BOT_TOKENТокен для бота, куда будут отправляться логиADMIN_IDuser_id, куда будут отправляться логи (получить в боте @userinfobot)
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}")
Думаю, дальше ограничивает вас только воображение... (ну почти)Применение в проектахВсе любят, когда есть примеры работы. На основе этого шаблона я сделал бота wifi_qr_bot, который генерирует QR-коды для подключения к WiFi. Это упрощает жизнь, ведь пароль у вас длинный (безопасность, все дела), а вводить его на каждом новом устройстве вам лень.
ВыводыВот мы и сделали нашего бота, который хоститься в облаке. Он уже многое умеет в плане логирования. Для логирования я написал отдельную библиотеку, tg-logger. Если интересно, как она работает, то потыкайте в демо бота. Если все еще интересно, прочитайте мою статью. Такие пироги с котятками...Ссылки
- Репозиторий шаблона: https://github.com/otter18/telegram-bot-template
- Рабочий бот (запущенный шаблон): https://t.me/sjfsdjflsdkjlkgjdfg_bot
- WiFi QR-code generator bot: https://t.me/wifi_qr_bot
- Исходный код WiFi QR-code generator bot: https://github.com/otter18/wifi_qr_bot
===========
Источник:
habr.com
===========
Похожие новости:
- [Информационная безопасность, Криптография, Python, C++, ООП] Поддержка токенов PKCS#11 с ГОСТ-криптографией в Python. Часть II — Обёртка PyKCS11
- [Python, Голосовые интерфейсы] Голосовой ассистент Виталий (школьный проект)
- [Open source, Программирование, Геоинформационные сервисы, Визуализация данных, Научно-популярное] Google Earth Engine (GEE) как общедоступный каталог больших геоданных
- [Социальные сети и сообщества, Финансы в IT, IT-компании] Санкт-Петербургская биржа начала торги еврооблигациями Telegram Group
- [Python, Машинное обучение, Искусственный интеллект, Natural Language Processing] LIT – Инспектор для вашего NLP. Обзор, установка, тест
- [Python, Программирование, Игры и игровые приставки] Создание арт-объектов, игр и много чего ещё с использованием числа Пи и Python (перевод)
- [Open source, Виртуализация, Разработка под Linux, Разработка на Raspberry Pi] Шпаргалка по Linux grep, домашний термостат на Raspberry Pi, эл. книга «Ansible for DevOps» и PostgreSQL на Linux
- [Python, Обработка изображений, Машинное обучение] И снова про капчу
- [Мессенджеры, Социальные сети и сообщества, Финансы в IT, IT-компании] РФПИ объяснил участие в инвестициях в Telegram
- [Python] Логирование в телеграм, или история о том, как я сделал питон библиотеку
Теги для поиска: #_python, #_github, #_flask, #_telegrambot, #_templates, #_quickstart, #_shablon (шаблон), #_logging, #_telegram, #_vebhuki (вебхуки), #_python, #_github, #_flask
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:11
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
В последнее время я сделал насколько много ботов для телеграмма, что крайне преисполнился в том, как их писать, как хостить, да и в принципе выработал красивый шаблон для быстрого их создания.Сразу могу предложить посмотреть на то, что получиться в конце этого туториала. Для этого я запустил бота с идентичном шаблону кодом.Также стоит отметить, что хостинг в этом примере бесплатный, но его хватает для разумной нагрузки.А еще сразу скажу, что далее будет все на питоне... Вот... Сказал. Не буду больше ходить вокруг да около, у нас всего 5 минут (помните, да?). Приступим!Пошаговая инструкция1) Создаем репозиторий на гитхабе из моего шаблона 2) Регистрируемся на Heroku 3) Создаем новое приложение 4) Привязываем наш репозиторий к проекту на Heroku 5) Настраиваем автоматический deployment 6) Смотрим на адрес, где будет висеть наш бот 7) Настраиваем переменные средыKEYVALUEBOT_TOKENТокен для ботаWEBHOOK_TOKENРандомная строка из букв для безопастностиADMIN_PASSWORDЕще одна рандомная строка из букв для безопастностиHOSTАдрес полученный в пункте 6 (например fancy-panda.herokuapp.com). Обратите внимание на формат!IS_PRODUCTIONTrueLOG_BOT_TOKENТокен для бота, куда будут отправляться логиADMIN_IDuser_id, куда будут отправляться логи (получить в боте @userinfobot) 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. Если интересно, как она работает, то потыкайте в демо бота. Если все еще интересно, прочитайте мою статью. Такие пироги с котятками...Ссылки
=========== Источник: habr.com =========== Похожие новости:
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 14:11
Часовой пояс: UTC + 5