Напишем простой Telegram-бот на Python с использованием aiogram, Docker и AWS, предварительно ознакомившись с нужными инструментами.
Напишем простой диалоговый Telegram-бот на Python, который в дальнейшем можно дополнить различными функциями, и задеплоим его.
Примечание Вы читаете улучшенную версию некогда выпущенной нами статьи.
Настройка
- свой токен;
- адрес Telegram API (https://api.telegram.org/bot);
- ссылку на документацию.
Обязательно сохраните токен, так как это ключ для взаимодействия с ботом.
Примечание Хранение токена должно быть локальным: ни в коем случае не выгружайте его в общий доступ, например в GitHub-репозиторий .
Далее начните беседу. Введите в поисковой строке имя бота и нажмите /start . Отправьте любое сообщение: оно станет первым обновлением, которое получит Телеграм бот.
Установка Python
Для написания Telegram-бота на Python, нужно установить сам язык. Если вы пользуетесь Windows, скачать Python можно с официального сайта. Версия важна. Нам подойдет Python не ниже версии 3.7. Если же у вас Linux или macOS, то, скорее всего, у вас стоит Python 3.6. Как обновиться, можете почитать здесь.
Как закупать рекламу в Telegram каналах / Сервис Telemetr
Тем, кто только начал изучение этого языка, будет также полезна дорожная карта Python-разработчика.
Установка pip
Это менеджер пакетов. В версиях выше Python 2.7.9 и Python 3.4, а также на macOS/Linux он уже есть. Проверить это можно командой pip —version в терминале. Если же по каким-то причинам он отсутствует, установить его можно при помощи команды:
$ sudo apt-get install python-pip
Установка aiogram
Установить данный фреймворк для Telegram Bot API с помощью pip:
pip install aiogram
Hello, bot!
Давайте напишем простенькую программу приветствия. Для начала следует импортировать библиотеки и создать экземпляры Телеграм бота и диспетчера:
from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor TOKEN = «ваш токен от бота здесь» bot = Bot(token=TOKEN) dp = Dispatcher(bot)
Теперь напишем обработчик текстовых сообщений, который будет обрабатывать входящие команды /start и /help :
Добавим ещё один обработчик для получения текстовых сообщений. Если бот получит «Привет», он также поздоровается. Все остальные сообщения будут определены, как нераспознанные:
Запускаем Telegram бота, написанного на Python, следующим образом:
if __name__ == ‘__main__’: executor.start_polling(dp)
Примечание Так мы задаём боту непрерывное отслеживание новых сообщений. Если бот упадёт, а сообщения продолжат поступать, они будут накапливаться в течение 24 часов на серверах Telegram, и в случае восстановления бота прилетят ему все сразу.
Ну вот и всё, простенький бот в Телеграмме на языке Python готов.
Docker
Сейчас мало кто не слышал про Docker, но если вдруг не слышали — вот хорошая статья. Для нашего проекта потребуется самый простой Dockerfile:
FROM python:3.8 # set work directory WORKDIR /usr/src/app/ # copy project COPY . /usr/src/app/ # install dependencies RUN pip install —user aiogram # run app CMD [«python», «bot.py»]
Каталог проекта должны при этом содержать следующие файлы:
Для локальных тестов достаточно установить Docker (linux, mac, windows), после чего в папке проекта собрать и запустить контейнер с помощью команд:
docker build -t my_app docker run -d my_app
my_app — это просто название нашего контейнера, вместо которого можно использовать другое имя.
-d — специальный флаг, который запускает контейнер в фоне и позволяет дальше работать в терминале. Это называется detached mode.
Деплой на AWS
Прежде всего нам понадобится аккаунт на Docker Hub. Это аналог GitHub, только не с исходниками кода, а с уже созданными контейнерами. Работа с Docker Hub выглядит достаточно просто:
- Локально или с помощью пайплайнов собрали контейнер.
- Загрузили его на докер хаб.
- В любом удобном месте скачали его. Это может быть локальная машина, VPS сервер или облачный провайдер по типу AWS.
- Запустили.
Пройдёмся по этим шагам. Везде, где указано , надо вставлять свой юзернейм, использованный при регистрации на докерхабе. Если это ваша первая публикация на докерхаб, для начала потребуется залогиниться с помощью docker login.
docker build -t /my_app
Загружаем его на докерхаб:
docker push /my_app
Для проверки успешности загрузки можете запустить контейнер из Docker Hub с помощью команды:
docker run -d /my_app
Далее загрузим наш контейнер в AWS Elastic Beanstalk. Для этого потребуется аккаунт на AWS. Если его нет, необходимо зарегистрироваться. Вас попросят ввести данные карты для верификации, но переживать не стоит, ведь мы воспользуемся бесплатным годовым триалом. Чтобы поиграться, этого более чем достаточно, а вот если вы захотите вывести проект в продакшен, следует перейти на VPS — это даст больше контроля и гибкости.
- Переходим в Elastic Beanstalk, на вкладку Applications, и создаём новое приложение:
- Называем приложение, теги оставляем пустыми:
- Создаём для приложения environment:
- Выбираем Worker environment:
- В качестве платформы выбираем Docker:
- В пункте Application code нужно загрузить JSON-файл с конфигурацией Docker-образа. Сам файл:
Dockerrun.aws.json < «AWSEBDockerrunVersion»: «1», «Image»: < «Name»: «/my_app», «Update»: «true» >, «Ports»: [ < «ContainerPort»: 5000, «HostPort»: 8000 >] >
- Создаём окружение:
- AWS начинает создавать окружение, просто ждём завершения процесса:
- Если всё прошло успешно, вы увидите индикатор успешного запуска приложения:
Проверяем работу нашего Telegram bot:
Заключение
Поздравляем! Теперь вы знаете, как писать роботов для Telegram на Python.
Бота можно дополнять другими функциями, например, добавить отправку файлов, опрос или клавиатуру.
Кстати, в телеграмме есть аж целых два типа клавиатур:
- Классическая RelpyKeyboardMarkup, у которой кнопки располагаются под полем ввода сообщения:
- Более современная InlineKeyboardMarkup, которая привязывается к конкретному сообщению:
Но и это полностью рабочий Телеграм-бот на Python: дополните словарём, и получите полноценную беседу. Также можете опробовать функциональность нашего Telegram-бота.
В «настоящих проектах» не обойтись без базы данных. Тут на помощь приходит docker-compose, который позволяет объединить несколько контейнеров в один сервис. Таким образом, например, можно создать приложение и положить его в контейнер, а базу данных, как отдельный сервис, поместить в другой контейнер, и с помощью docker-compose наладить между ними связь.
Также для более серьёзной разработки лучше использовать выделенный виртуальный сервер (VPS): он даёт гораздо больше гибкости и свободы, чем тот же AWS. А самое главное, он более приближён к «боевой» разработке. Схема работы тут будет даже проще, чем с AWS: вам просто нужно установить Docker, спуллить образ с Docker Hub и запустить его.
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Источник: tproger.ru
Вход в аккаунт Telegram в браузере
Мессенджер Telegram доступен к использованию на устройствах, работающих под управлением разных ОС, – как настольных (Windows, macOS, Linux), так и мобильных (iOS, Android). Помимо приложений у сервиса есть и полноценная веб-версия, которая хорошо подходит для разовых нужд или случаев, когда требуется использовать еще один аккаунт. Войти в нее можно через любой браузер, и далее мы расскажем, как это сделать.
Ввиду того, что Телеграм считается заблокированным в России, официальный сайт, а вместе с ним и веб-версия мессенджера могут оказаться недоступными – либо неработоспособными, либо скрытыми из поисковой выдачи (зависит от используемой системы и провайдера). Но, к счастью, разработчики сервиса весьма умело обходят блокировки и ограничения, поэтому для данных страниц были созданы зеркала. Так, интересующее нас браузерное приложение на момент написания статьи имеет как минимум четыре таковых, поэтому если первая из представленных ниже ссылок не сработает, воспользуйтесь любой другой.
- В любом удобном браузере перейдите по одной из указанных выше ссылок, после чего введите номер телефона, используемый вами для общения в Телеграм. Нажмите «ENTER» для подтверждения.
Примечание: Если страна, а значит, и ее код будут определены неправильно, измените их вручную, а затем укажите свой номер.





К сожалению, русский язык интерфейса в веб-приложении не предусмотрен.
Теперь вы знаете, как открыть Telegram в браузере. В целом же процедура входа в веб-версию мессенджера ничем не отличается от таковой в приложениях.
Источник: lumpics.ru
Функционал и основные возможности бота АнтиПаркон в Телеграмме
Полезное
Автор Анна Сергеева На чтение 3 мин Просмотров 3.2к.
Программа «АнтиПаркон» Telegram находит имя, фамилию и телефон собственника автомобиля по государственному номеру. Бот выполняет ряд полезных функций и показал эффективность в крупных городах и густонаселенных территориях.
Общая информация о боте «АнтиПаркон» в «Телеграме»
Для мессенджера написано большое количество ботов для различных целей.
- предупреждает об эвакуации автомобиля;
- находит контактные данные собственника машины;
- отправляет сообщения владельцу припаркованного автомобиля;
- информирует о произошедших на дорогах ДТП;
- рассылает информацию о водителе, участнике ДТП, покинувшего место происшествия.
Функционал
Роботы приложения выполняют различные функции. Они реагируют на команды пользователей, но внести свои данные в базу должны сами подписчики.
Возможности программы не ограничиваются выдачей имени и телефона владельца ТС по госномеру авто. Водителям предоставлен чат для обмена любой информацией о ситуации на дорогах.
В боте реализованы возможности:
- пополнить базу своими данными;
- найти владельца по номеру машины;
- получать уведомления о ситуации на дорогах (пробки, ДТП и др.);
- извещать об эвакуации автомобиля;
- распространять данные о водителях, скрывшихся с места ДТП;
- публиковать информацию о несоблюдении ПДД физлицами и организациями;
- обмениваться личными сообщениями в чате.
В описании приложения указан сайт autonum.me, содержащий карты и другую дополнительную информацию, однако при переходе по адресу браузер сообщает об ошибке 404.
Как установить бота в мессенджере
При отсутствии мессенджера его надо загрузить с официального сайта и инсталлировать.
Также читайте: Полное удаление контактов в Telegram — как убрать номера из списка с телефона
Последовательность действий при установке «АнтиПаркона» в Telegram:
При удачной установке должно появиться приветствие и меню в левом нижнем углу.
Инструкция, как пользоваться
После запуска бот сразу готов к использованию.
В меню найдете доступные опции:
- добавить информацию о своем авто;
- ввести государственный номер для определения данных владельца;
- через кнопку «Событие» оповестить водителей о каком-либо происшествии;
- кнопкой «Гараж» осуществить привязку госномера авто и телефона владельца;
- через MotorChat оказать взаимопомощь водителям.
Для получения номера телефона владельца авто следует:
- запустить чат;
- кликнуть «Новый номер»;
- спуститься в подпункт «Чужое авто»;
- ввести госномер транспортного средства.
В ответ придет информация, которая была оставлена в базе собственником автомобиля. При необходимости программа позволяет отправить сообщение или позвонить ему через мессенджер либо по телефону.
Занесение своих данных в базу требуется для принятия сообщений. Процесс запускается командой в чате /NewNumber или нажатием кнопки «Новый номер» в меню.
Дальнейший порядок действий:
- кликнуть кнопку «Свой номер»;
- ввести номер в формате x000xx000.myauto.
Другой путь – через кнопку «Гараж» и указание номера мобильного. Привязка телефона осуществляется отправкой кода подтверждения. Все действия можно производить посредством подачи команд боту в текстовом формате.
Личная переписка участников «АнтиПаркона» недоступна другим пользователям. Я несколько вечеров знакомилась с работой приложения, но не могу подтвердить большой активности несмотря на 5250 участников чата.
Обзор
Источник: telegramguru.info