Представляю Вашему вниманию практические примеры по теме, как создать Telegram бот на Python3 с использованием библиотеки pyTelegramBotAPI. Тут я не вижу смысла рассказывать о том, как использовать Bot Father, так как, скорее всего это знают все, либо инфы в инете полно. Минимум что будет из банальных примеров — это обработка таких команд, как «/start» и «/help» либо любой бот начинается именно с этого + это будет полезно, для тех кто только начинает свой путь в создании ботов Telegram.
План действий в рамках этой статьи такой. Но она будет дополнятся, так как данную статью я буду использовать для себя в качестве справки… По этому можете добавить страницу в закладки.
- Подготовка — Создаём config.py и используем Proxy.
- Обработка команд «/start» и «/help».
- Обработка простых сообщений. Отправка и получение.
- Как скачать и отправить стикер пользователю из бота.
- Как отправить и получить документ, аудио, видео и.т.д
- Разбираемся с Emoji, как получить код смайла для отправки в сообщении.
- Получаем информацию о пользователе, который запустил бота.
Подготовка — Создаём config.py и используем Proxy.
Файл config.py понадобится нам для хранения Токена бота и proxy (Если используете). Сложного тут нет ничего, обычный файл с двумя переменными, которые мы будет использовать в основном файле проекта.
Телеграм бот на Python #2 — Клавиатуры, Reply Keyboard, Inline Keyboard, Callbacks (aiogram)
token = ‘Token’
Так просто выглядит файл config.py который нужно импортировать в основном файле проекта, созданием которого мы сейчас займемся. Я его так и назову «telegram_bot.py»
import telebot
from telebot import apihelper # Нужно для работы Proxy
import config # Импорт config.py
import urllib . request # request нужен для загрузки файлов от пользователя
bot = telebot . TeleBot ( config . token ) # Передаём токен из файла config.py
apihelper . proxy = < ‘http’ : config . proxy ># Передаём Proxy из файла config.py
bot . polling ( ) # запускаем бота
Практически Telegram бот на Python уже готов к работе и его можно запустить, если нет ошибок то бот работает. Но есть одна проблема. Бот работает через прокси, а библиотека request, которая нам нужна для загрузки файлов от пользователя, в данном случаи не использует прокси, по этому скачивать файлы не получиться… Это дело можно исправить, но лучше использовать VPN а от proxy отказаться.
В дальнейшем будем считать, что у нас настроен VPN ну или бот пишется непосредственно на сервере))) Теперь когда с подключением разобрались, пришло время научить бота совершать какие либо действия.
Обработка команд «/start» и «/help».
Библиотека «pyTelegramBotAPI» использует декораторы, это очень удобно и практично. Посмотрим как это работает на примере обработки команд «/start» и «/help».
def welcome ( message ) :
pass # Тут можно обработать одну из команд start или help
Если пользователь Вашего бота отправить одну из команд start или help то сработает функция «welcome()» (Название функции может быть произвольным) главное что бы она принимала обязательный параметр «message» в котором содержится много полезной информации.
А вот пример как работают декораторы. Мы можем обработать команды в разных функциях.
# Тут работаем с командой start
def welcome_start ( message ) :
bot . send_message ( message . chat . id , ‘Приветствую тебя user’ )
# Тут работаем с командой help
def welcome_help ( message ) :
bot . send_message ( message . chat . id , ‘Чем я могу тебе помочь’ )
Все получается аккуратно и логично, запутаться что и где уже стало сложнее, а значит разработка бота сводится не к рутине а к удовольствию =)
Обработка простых сообщений. Отправка и получение.
До этого момента мы работали только с командами, теперь нам предстоит работа с различным типом сообщений от пользователя. Сложного в этом ничего нет, все так же просто, как и с командами. Просто нам нужно указать тип ожидаемого сообщения от пользователя.
Типов сообщений в pyTelegramBotAPI достаточно. Некоторые из них для примера «text, audio, document» и.т.д. Рассмотрим пример
def content_text ( message ) :
print ( ‘Боту отправили обычный текст’ )
def content_document ( message ) :
print ( ‘Боту отправили документ’ )
Как получить простое сообщение от пользователя.
Ранее я уже сказал что в «message» много интересного. Там же и находится сообщение которое напечатал пользователь боту. Прочитать его можно так.
def text ( message ) :
print ( message . text )
В консоль будет выведено сообщение от пользователя.
Как отправить простое сообщение пользователю.
Теперь разберёмся с тем, как отправить сообщение пользователю. Даже не смотря на то, что выше Вы уже видели, как это делается.
def text ( message ) :
if message . text == ‘hello’ :
bot . send_message ( message . chat . id , ‘И тебе hello’ )
Вызываем метод «send_message» и передаём ему собственно ID и текст сообщение. В данном примере происходит следующие: Если пользователь напишет «hello» то бот ему ответит «И тебе hello»
Как скачать и отправить стикер пользователю из Telegram бота
Как отправить Стикер
def text ( message ) :
if message . text == ‘sticker’ :
bot . send_sticker ( message . chat . id , ‘CAADAgADsQADWQMDAAEJK1niI56hlhYE’ )
Если пользователь боту пришлёт слово «sticker» то в ответ мы отправим ему свой стикер. За место send_message вызывается метод send_sticker также передаётся id и за место текста отправляется ID стикера. Все просто — стикер отправлен))
Как получить Стикер (Скачать на локальную машину)
Давайте скачаем на локальную машину файл стикера, который прислал пользователь боту.
def handle_docs_audio ( message ) :
# Получим ID Стикера
sticker_id = message . sticker . file _ id
# Нужно получить путь, где лежит файл стикера на Сервере Телеграмма
file_info = bot . get_file ( sticker_id )
# Теперь формируем ссылку и скачивам файл
urllib . request . urlretrieve ( f ‘http://api.telegram.org/file/bot/’ , file_info . file_path )
Собственно опять «message»! Пользователь отправляет нам стикер. Находим ID Стикера и отдаём его методу «get_file» что бы получить путь до файла на сервере телеграмма. А дальше скачаем файл в папку «stickers» которую нужно создать в том каталоге, где находится весь проект бота.
Как отправить и получить документ, аудио, видео, фото и.т.д
Продолжаем пилить telegram бот на python3 и на простом примере разберёмся, как отправлять файлы пользователям telegram бота.
Как отправить файл пользователю бота
Отправляем пользователю фотографию
def text ( message ) :
if message . text == ‘photo’ :
file = open ( ‘photo.png’ , ‘rb’ )
bot . send_photo ( message . chat . id , file )
За это отвечает метод «send_photo» Аналогично поступим и с другими типами файлов. Например нам нужно отправить документ «file.txt»
Отправляем пользователю документ
def text ( message ) :
if message . text == ‘document’ :
file = open ( ‘file.txt’ , ‘rb’ )
bot . send_document ( message . chat . id , file )
Тут мы уже используем метод «send_document» аналогично поступаем с другими типами файлов аудио, видео и прочие.
Как получить файл от пользователя
Все также как и со стикерами. В этом примере получим документ от пользователя и скачаем его себе на локалку.
def handle_docs_audio ( message ) :
file_info = bot . get_file ( document_id )
urllib . request . urlretrieve ( f ‘http://api.telegram.org/file/bot/’ , file_info . file_path )
Получим от пользователя музыку
def handle_docs_document ( message ) :
audio_id = message . audio . file_id
file_info = bot . get_file ( audio_id )
urllib . request . urlretrieve ( f ‘http://api.telegram.org/file/bot/’ , file_info . file_path )
Точно таким-же способом можно получить любой тип файла от пользователей и создать Telegram бот на Python для конвертации файлов или у кого на что фантазии хватает))
Время чтение: 6 минут 2020-08-31
- Instabot — модуль для Python, который реализует обертку над API Instagram
- Python-Cptchnet — Модуль для работы с API сервиса Cptch.net
- pyTelegramBotAPI Библиотека для создание Ботов Telegram
- ip2geotools модуль для определения местоположение по IP
- VK-API Библиотека для создания скриптов для социальной сети Вконтакте
- ТОПовый генератор паролей на Python 3
Помощь проекту
Если есть возможность — поддержать нас: будем очень признательны. Денежные средства пойдут на дальнейшее развитие проекта!
Источник: snippcode.ru
Создание бота в Телеграм Питон 3: пример программирования, как сделать кнопки для чата и написать код
FAQ
Автор fast12v0_steleg На чтение 7 мин Просмотров 200 Опубликовано 14.01.2020
Каждый, кто хоть раз сталкивался с мессенджером Телеграм, был впечатлен его функционалом. Здесь позволено не только общаться с друзьями в личных сообщениях, читать новости и делать каналы.
Преимуществом сервиса является возможность создавать и использовать ботов. Программировать их можно на любом языке, но самым распространенным выбором сегодня стал Питон. В статье подробно рассмотрим, как сделать python telegram bot.
Немного теории об API
Application Programming Interface – интерфейс, при помощи которого разработчик способен формировать приложения. Инструкция по использованию представлена на сайте stelegram.ru.
Благодаря ему получается настроить разные части веб программы таким образом, чтобы они гармонично и корректно взаимодействовали между собой.
Изначально api использовался для передачи информации и приказов между разными переменными программами. Сегодня он дает возможность получить доступ к ресурсам на другом сервере.
Его применение имеет такие достоинства:
- Доступность партнерских программ.
- Работа с пре-форматированными ссылками, загружающимися одновременно с ID.
- Возможность предоставлять максимально точные и актуальные данные в любой момент времени.
- Получение ответных данных в JSON или XML форматах.
- Публичными. К ним легко получить доступ.
- Приватными. Может использоваться исключительно внутри одной компании. Если у нее разработано много продуктов, то интерфейс позволяет разным программам взаимодействовать между собой.
К основным задачам Application Programming Interface относят:
- помощь в написании кодов;
- преобразование сложных задач в простые.
Инструкция по созданию телеграм-бот на Python
Существует несколько вариантов получения собственного робота:
- Написать его самостоятельно. Для этого можно использовать различные языки программирования. Одним из наиболее понятных и востребованных на данный момент является Питон. Такой способ хоть и трудоемкий, но при этом позволяет получить универсальное решение.
- Воспользоваться услугами конструктора. Но здесь можно столкнуться с ограниченным функционалом, которого не всегда бывает достаточно, чтобы воплотить то, что вы хотите.
- Покупка. Однако, нужно понимать, что в основном, чтобы написать telebot, используется язык python. А он считается настолько легким, что применить его могут даже новички, потому лучше попробовать самому.
Известно два класса ботов, способных самообучаться и работать по определенным правилам:
- Первый вид менее распространен. Робот обучен определенным правилам, основываясь на которые он отвечает на поставленные вопросы. Bot занимается регулярной обработкой простых запросы, а очень сложные у него могут вызвать проблемы.
- Самообучающийся робот более эффективен. Он бывает следующих видов:
- поисковым – использует для ответа реплики, прописанные в базе библиотеки. В зависимости от контекста разговора он выбирает text из списка;
- генеративным – способен сам создавать сообщения на основе изученных слов в запросе.
Свой телеграм-бот на Питон можно сделать самостоятельно. Рассмотрим подробную инструкцию.
Регистрация бота
Дополнительно укажите name. В ответ он пришлет ссылку на документацию (documentation) и токен. Их желательно сразу сохранить, так как они будут единственным ключом к авторизации при взаимодействии с помощником.
Установка
Для начала проводится установка программы.
Есть несколько способов:
- Скачать с сайта, нажав значение install.
- Те, кто пользуется ОС Linux, имеют возможность запустить ее из менеджера пакетов.
- Владельцы macOS должны поставить приложение Homebrew.
- Воспользоваться интерпритатором программы, позволяющей работать онлайн.
- При работе на мобильном устройстве представлена среда программирования Питон.
После загрузки следует установить pip – систему управления пакетами. Важно использовать последние версии. При необходимости можно провести ее обновление.
Написание кода
За создание и функционирование робота отвечает модуль python telegram bot api. Для этого нужно послать следующее: pip install pyTelegramBotAPI.
Писать код получится где угодно. Это может быть вордовский файл или блокнот. Но гораздо эффективнее это делать в умной среде. Здесь автоматически будут подсвечиваться возможные ошибки в проекте.
Создание кода начинаем с подключения телебота. Здесь понадобится сохраненный раньше токен. Первая строка будет выглядеть следующим образом: message: TOKEN=ключ, который прислал бот.
Во второй строке создает объект, который обзываем bot. В аргументах прописывается код аутентификации.
Далее необходимо продумать, что должен уметь делать помощник. В каталоге pyTelegramBotAPI есть декораторы, используя которые робот научится отвечать на стандартные вопросы.
Протестировать его можно, выполнив команду python полный_ путь_ к_ файлу/test.py. робот должен отвечать.
Настройка и запуск бота
Для того, чтобы помощник мог работать, нужно:
- Войти в мессенджер.
- Открыть аккаунт робота.
- В новом диалоговом окне кликнуть на изображение с тремя точками вверху.
- Дальше перейти к пункту Настройки.
Чтобы запустить робота, нужно:
- В строке поиска на клавиатуре руками ввести name помощника и начать диалог с ним.
- Добавить его к каналу при помощи кнопки «Добавить нового участника».
- Осталось из списка выбрать нужный вариант и кликнуть элемент «Invite».
Обработчики команд
Для обработки используется специальная программа Handler. Она работает с медиафайлами и текстовым материалом. Но в нашем случае утилита нужна для того, чтобы передавать боту команды.
Обработчика также можно добавить самостоятельно. В таком случае на первой строке следует вбить «handler». Этот параметр срабатывает всегда, за исключением ввода «help» или «старт».
Обработчики кнопок
В основе программы telegram api python также будет исходник клавиатуры. При подготовке к работе KeyboardButton обязательным параметром является текст (text), который юзер сможет переслать после нажатия на данную клавишу.
При написании кода используются различные методы:
- Add – количество кнопок любое. При этом они выстраиваются в ряд. Если установленная изначально ширина уже достигнута, импортируем их.
- Row – число клавиш также не ограничено, но все они расположены в одной строке.
- Insert – напоминает первый способ, но иконки добавляются к последнему ряду.
Встроенный режим
Это один вид взаимодействия с ботами. С его помощью они получили еще больше возможностей. Такие роботы способны выполнять любые задачи. Например, из examples: отправка text из сайта в чат, размещение гифки или картинки.
Генератор для диалогового бота
Используя конструкцию yield from, роботы создают друг для друга курс на выполнение определенной задачи. Для этого применяется модуль itertools.
Генераторы для python telegram bot proxy являются отличным инструментом. Они дают возможность упростить код и продолжить беседу с нужного момента.
Развертывание бота на сервере
Это завершающий этап создания помощника в Тelegram. Для этого не нужно приобретать дорогую аппаратуру. Можно воспользоваться облачными прокси ресурсами с протоколом mtproto, где предлагают разместить любое приложение бесплатно.
Вначале придется зарегистрировать аккаунт на GitHub. С этой учетной записью получится развернуть бота на Heroku proxy. Если приложение не работает, рекомендуется проверить журналы.
Из-за блокировки мессенджера в России, им нельзя воспользоваться. Но можно пойти в обход запрету, установив VPN.
Выводы
Python – программа для написания скриптов в Телеграм с нуля, которые станут отличным помощником владельцу канала. Они умеют автопостить, форматировать материал, ведут статистику, создают кнопки на русском или другом языке и прочее.
Детальную инструкцию увидите на видео:
Источник: stelegram.ru
Как создать телеграм-бота на Python
Python — самый популярный язык программирования в феврале 2022 года.
Виктория Дербенченко
Автор статьи
16 марта 2022 в 14:39
Телеграм используют более пятисот миллионов людей по всему миру. Компании с его помощью упрощают заказ товаров или услуг, дают консультации. Для этого используют ботов — автоматические программы. Их пишут на разных языках программирования. Рассмотрим, как создать бот на самом популярном в феврале 2022 года языке — Python.
Установите интерпретатор Python
Python — динамически типизированный, интерпретируемый язык. Программы, написанные на нём, не компилируются в исполняемые файлы. Поэтому, чтобы запускать Python-программы, устанавливают его интерпретатор.
На курсе Skypro «Python-разработчик» с этого начинается первый модуль. Вся программа построена от простого к сложному и подходит даже для тех, кто не имеет опыта в программировании и технических знаний. За 10 месяцев можно освоить профессию на уровне уверенного новичка.
️ Windows
Выберите последнюю версию Python
Выберите 64-bit
Поставьте галочку перед установкой напротив Add Python to PATH
pip install virtualenv
❗ Вызов интерпретатора в командной строке Windows отличается от других ОС. Используйте команду py вместо python3.
️ Linux
Если вы используете ОС Linux, вероятно, Python уже установлен. Чтобы проверить, откройте терминал с помощью команды:
python3 —version
Если вы видите что-то вроде Python 3.x.x, то Python есть. В противном случае используйте установленный менеджер пакетов. В основном это apt. Введите команду:
sudo apt install python3
Установите виртуальное окружение с помощью команды:
sudo apt install python3-venv
Python-разработчик: новая работа через 9 месяцев
Получится, даже если у вас нет опыта в IT
️ MacOS
На макбуках Python часто тоже уже есть. Откройте терминал и проверьте с помощью команды:
python3 —version
Ответ Python 3.x.x, а не ошибка, тоже подтверждает, что Python установлен. Если нет — используйте менеджер пакетов brew. Введите команду:
brew install python3
Установите пакет для создания виртуального окружения:
pip install virtualenv
Создайте папки проекта и виртуального окружения
Откройте терминал Linux или MacOS, командную строку Windows. Перейдите в директорию, в которой вы хотите создать проект бота. Последовательно
mkdir myBot cd myBot python3 -m venv env #
или, если вы используете Windows:
py -m venv env #
Эти команды создадут папку проекта myBot внутри текущей рабочей директории. А в ней — папку с виртуальным окружением.
Активируйте окружение, выберите и установите библиотеки
https://sky.pro/media/obzor-biblioteki-pandas/
Чтобы активировать виртуальное окружение на MacOS или Linux, используйте команду
source ./env/bin/activate
source.envbinactivate.bat
Чтобы создавать боты, используют разные библиотеки. Самые популярные: python-telegram-bot с синхронным подходом, aiogram с асинхронным.
Асинхронность позволяет отвлекаться от задач и не ждать ввода от пользователя, поэтому мы будем использовать библиотеку aiogram. Документация по ней — на docs.aiogram.
Используйте менеджер Python-пакетов (pip). Чтобы установить библиотеку aiogram, введите команду:
pip install aiogram
Зарегистрируйте бота и получите API-ключ
Введите команду /newbot и отображаемое имя бота
Теперь введите никнейм бота. Он должен быть уникальным, в конце обязательно слово bot. Когда юзернейм пройдет валидацию, вы получите сообщение с API-ключом.
Никому не сообщайте полученный токен
Примеры ботов
Эхобот
Для начала в папке проекта создайте несколько файлов.
Handlers.py будет хранить функции — обработчики сообщений и команд, main.py нужен для запуска
Напишите в main.py код:
from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ # создаем экземпляры бота и диспетчера bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) # запускаем программу if __name__ == ‘__main__’: # указание skip_updates=True # пропустит команды, # которые отправили # до старта бота executor.start_polling(dp, skip_updates=True)
from aiogram import Bot, Dispatcher, executor import handlers
Здесь из библиотеки aiogram мы импортируем классы Bot, Dispatcher — класс, который регистрирует, на какие команды/сообщения и какой функцией отвечать. И executor — он запускает бота и выполняет функции, зарегистрированные в диспетчере. На второй строке мы импортируем модуль handlers.py — в нём хранят обработчики.
Далее откройте файл handlers.py и напишите в нём пару команд, которые будут обрабатывать запросы:
from aiogram import types # функция, обрабатывающая команду /start async def start(message: types.Message): await message.answer(«Привет!nНапиши мне что-нибудь!») # функция, которая отвечает на сообщение # текстом async def echo(message: types.Message): await message.answer(«Сам ты: » + message.text)
Здесь из модуля aiogram импортируем типы, с помощью которых преобразуем текст сообщения или файлы в структуру данных. Это может быть Message — сообщение, Audio — аудиозапись, Animation — анимация.
Далее определите асинхронные функции, чтобы обрабатывать команды /start и отвечать на сообщения.
Зарегистрируйте эти функции в диспетчере. Для этого в файле main.py добавьте перед запуском программы:
# регистрируем функции dp.register_message_handler(h.start, commands=[«start»]) dp.register_message_handler(h.echo)
В итоге файл main.py выглядит так:
from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ # создаем бота и диспетчер bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) # регистрируем функции dp.register_message_handler(handlers.start, commands=[«start»]) dp.register_message_handler(handlers.echo) # запускаем программу if __name__ == ‘__main__’: # указание skip_updates=True # пропустит команды, # которые отправили # до старта бота executor.start_polling(dp, skip_updates=True)
Чтобы проверить работу, введите в терминале python3 main.py или py main.py на Windows. Откройте бота в телеграме и запустите его
Криптобот
Чтобы написать криптобота, который будет сообщать текущую цену BTC, LTC и DASH, используйте бесплатный API-сервис SoChain. Еще потребуется дополнительная библиотека, чтобы создать асинхронные запросы aiohttp, но ее устанавливают вместе с aiogram.
Создайте новый модуль utils.py. Добавьте в него url-адрес API-сервиса. Чтобы узнавать цену, используйте метод Get Prices. Он возвращает json-объект с данными о цене из нескольких источников. Поэтому напишите функцию, которая вычисляет среднее значение:
BASE_URL = «https://sochain.com/api/v2/» # API URL # функция, чтобы рассчитать цену def calculate_price(data): prices = [float(entity[«price»]) for entity in data[«data»][«prices»]] return f» <(sum(prices) / len(prices)):.2f>USD»
Далее откройте файл handlers.py и напишите код:
from aiogram import types # импортируем библиотеку aiohttp import aiohttp # импортируем из utils все данные from utils import * # обработчик команды /start async def start(message: types.Message): await message.answer(«Привет!nНапиши мне акроним криптовалюты, чтобы узнать текущую цену») # обработчик команды /help async def help(message: types.Message): await message.answer(«Доступные сети:n» + «n».join(networks)) # обработчик запроса цены async def get_price(message: types.Message): session = aiohttp.ClientSession() # создаем GET запрос по закрепленному за методом get_price url async with session.get(BASE_URL + f»get_price//USD») as resp: # получаем ответ в формате json data = await resp.json() # если статус запроса — успешно if data[«status»] == «success»: # рассчитываем цену и отправляем пользователю price = calculate_price(data) await message.answer(price) else: # сообщаем о том, что произошла ошибка await message.answer(«Произошла ошибка»)
Теперь измените main.py файл: зарегистрируйте функции. Затем протестируйте бота:
from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.register_message_handler(handlers.start, commands=[«start»]) dp.register_message_handler(handlers.help, commands=[«help»]) dp.register_message_handler(handlers.get_price) if __name__ == ‘__main__’: executor.start_polling(dp, skip_updates=True)
Когда пользователь укажет неподдерживаемую сеть ETH, бот вернет цену биткоина, потому что так устроен API-сервис. Если он не распознал сеть, то использует BTC
Чтобы исправить ошибку, создайте клавиатуру, которая возвращает нужные значения. Напишите специальный класс Middleware: в нём описываются проверки до и после обработки запроса. Либо проверьте вхождение внутри функции. Последний вариант проще и легче.
Если пользователь отправит неподдерживаемый акроним криптосети, вы сообщите ему об этом. Для этого в файле utils.py определите список поддерживаемых сетей:
networks = [«BTC», «LTC», «DASH»] # <— поддерживаемые сети BASE_URL = «https://sochain.com/api/v2/» # API URL def calculate_price(data): prices = [float(entity[«price»]) for entity in data[«data»][«prices»]] return f» <(sum(prices) / len(prices)):.2f>USD»
Теперь отредактируйте функцию расчета цены криптовалюты в файле handlers.py. Для этого добавьте проверку вхождения сети в список поддерживаемых:
async def get_price(message: types.Message): network = message.text.upper() # приводим сообщение к верхнему регистру # выполняем проверку вхождения if network not in networks: await message.answer(«Вы указали неподдерживаемую криптовалюту») return session = aiohttp.ClientSession() async with session.get(BASE_URL + f»get_price//USD») as resp: data = await resp.json() if data[«status»] == «success»: price = calculate_price(data) await message.answer(price) else: await message.answer(«Произошла ошибка»)
Когда пользователь укажет неподдерживаемую сеть ETH, бот сообщит об этом
Код всех файлов
networks = [«BTC», «LTC», «DASH»] # поддерживаемые сети BASE_URL = «https://sochain.com/api/v2/» # API URL def calculate_price(data): prices = [float(entity[«price»]) for entity in data[«data»][«prices»]] return f» <(sum(prices) / len(prices)):.2f>USD»
import aiohttp from aiogram import types from utils import * async def start(message: types.Message): await message.answer(«Привет!nНапиши мне акроним криптовалюты, чтобы узнать текущую цену») async def help(message: types.Message): await message.answer(«Доступные сети:n» + «n».join(networks)) async def get_price(message: types.Message): network = message.text.upper() if network not in networks: await message.answer(«Вы указали неподдерживаемую криптовалюту») return session = aiohttp.ClientSession() async with session.get(BASE_URL + f»get_price//USD») as resp: data = await resp.json() if data[«status»] == «success»: price = calculate_price(data) await message.answer(price) else: await message.answer(«Произошла ошибка»)
from aiogram import Bot, Dispatcher, executor import handlers API_TOKEN = ‘вставьте сюда ваш токен’ bot = Bot(token=API_TOKEN) dp = Dispatcher(bot) dp.register_message_handler(handlers.start, commands=[«start»]) dp.register_message_handler(handlers.help, commands=[«help»]) dp.register_message_handler(handlers.get_price) if __name__ == ‘__main__’: executor.start_polling(dp, skip_updates=True)
Источник: sky.pro