Aiogram python как установить

Как начать работу с Aiogram: установка и первые шаги

Aiogram – это библиотека Python для создания Telegram ботов. Она предоставляет удобный и мощный интерфейс для взаимодействия с Telegram API. В этой статье мы рассмотрим основные шаги по установке и началу работы с Aiogram.

Установка Aiogram

Перед тем, как начать использовать Aiogram, необходимо установить его. Для этого нужно выполнить следующие шаги:

  1. Открыть командную строку или терминал.
  2. Установить библиотеку Aiogram с помощью pip, выполнив следующую команду:

После того, как библиотека будет установлена, вы можете начать создавать свои первые боты с помощью Aiogram.

Создание простого бота с Aiogram

Для создания простого бота с помощью Aiogram нужно выполнить следующие шаги:

from aiogram import Bot, Dispatcher, types
bot = Bot(token='YOUR_API_TOKEN')
@dp.message_handler(commands=['start']) async def process_start_command(message: types.Message): await message.reply("Привет! Это мой первый бот на Aiogram.")
if __name__ == '__main__': executor.start_polling(dp, skip_updates=True)

После того, как вы запустите бота, он будет готов к работе. Вы можете отправить ему команду /start и увидеть ответ, который вы задали в функции-обработчике.

Заключение

В этой статье мы рассмотрели основные шаги по установке и началу работы с Aiogram. Надеюсь, эта информация была полезной для вас и поможет вам начать создание своих первых ботов с помощью Aiogram. Если у вас есть какие-либо вопросы или замечания, пожалуйста, не стесняйтесь обращаться к нам.

Источник

Урок 1. Быстрый старт. Эхо-бот

Перед началом убедитесь, что у вас установлен интерпретатор языка Python версии не ниже 3.6 (актуальные версии посмотреть и скачать можно здесь). Первый и второй уроки будут проведены на версии 3.6.4, версия библиотеки aiogram 1.0.4 , проверено на версии 1.1.

Читайте также:  Java convention code style
Этот пункт можно пропустить, если вы не новичок, и уже всё проверили.

Проверить версию интерпретатора можно следующим образом (справедливо для большинства систем): python —version . Будет возвращено Python 3.6.4 . Если у вас установлено несколько версий интерпретатора, будет необходимо указать версию: python3 —version .

Далее устанавливаем библиотеку командой pip install -U aiogram . Если у вас установлено несколько интерпретаторов (например 2 и 3), то необходимо явно указать версию pip: pip3 install -U aiogram . Если у вас установлено несколько версий 3 (например 3.4, 3.5, 3.6), то обращаемся к необходимому интерпретатору командой -m pip . , то есть в данном случае python3.6 -m pip install -U aiogram . Проверить версию библиотеки можно командой pip freeze | grep aiogram (тут так же не забудьте правильно указать версию pip), вернется aiogram==1.0.4 . Возможно, у вас в Windows не будет работать команда grep , тогда используйте просто команду pip freeze и убедитесь в присутствии aiogram в результате выполнения команды.

Начинаем писать код

Давайте для знакомства с библиотекой создадим бота, который будет приветствовать пользователя и высылать в ответ присланный ему текст. Для этого создадим каталог для нашего бота и сохраним там два файла: bot.py и config.py .
Открываем последний любимым текстовым редактором и записываем туда токен, полученный от @BotFather:

TOKEN = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11' 

Теперь возьмемся за основной файл — приступаем к редактированию файла bot.py . Для этого импортируем необходимые модули библиотеки aiogram и токен бота, а так же инициализируем объекты бота и диспетчера:

from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor from config import TOKEN bot = Bot(token=TOKEN) dp = Dispatcher(bot) 

Команда, с которой начинается общение пользователя с ботом — /start . Поэтому давайте научим нашего бота реагировать на эту команду. Создаем message_handler и объявляем там функцию ответа:

@dp.message_handler(commands=['start']) async def process_start_command(message: types.Message): await message.reply("Привет!\nНапиши мне что-нибудь!") 

Ещё в ботах принято создавать обработчик команды /help — вдруг пользователь заинтересуется возможностями бота.
Вообще, мы могли бы добавить просто help в массив, передаваемый параметру commands , чтобы получилось:

@dp.message_handler(commands=['start', 'help']) 

Но зачем приветствовать пользователя снова? Поэтому создадим отдельный message_handler для этой команды:

@dp.message_handler(commands=['help']) async def process_help_command(message: types.Message): await message.reply("Напиши мне что-нибудь, и я отпрпавлю этот текст тебе в ответ!") 

Обращу внимание новичка на то, что называть функции можно как угодно — хоть abc , хоть qwerty , однако называя функции понятным языком — process_start_command , process_help_command сразу понятно, какая за что отвечает. Главное, чтобы имена не повторялись. Называть как угодно можно также и имя параметра, покажу дальше.

Итак! Осталось сделать обработку текстового сообщения. Для этого пишем следующее:

@dp.message_handler() async def echo_message(msg: types.Message): await bot.send_message(msg.from_user.id, msg.text) 

Объясняю, что мы только что написали:
Если не указывать тип обрабатываемого сообщения, то библиотека по умолчанию делает обработку только текстовых сообщений — то, что нам и нужно. Поэтому скобки на первой строчке остаются пустыми.
Параметр msg это всё то же сообщение, как и в предыдущих пунктах.
В данном случае на последней строчке мы отправляем пользователю сообщение не ответом, а простым сообщением. Для этого мы воспользовались методом send_message и передали в него два обязательных параметра — айди чата, куда отправляем, и сам текст сообщения. Их мы взяли из объекта msg, который является представителем класса Message. Параметр from_user ссылается на ещё один объект — данный параметр имеет класс User. У него есть параметр id — уникальный идентификатор для чатов и каналов в телеграме. Ну и текст полученного сообщения мы получили из поля text.

Финальный штрих

Чтобы получать сообщения от серверов Telegram воспользуемся поллингом (polling. to poll — опрашивать) — постоянным опросом сервера на наличие новых обновлений. Для этого дописываем в bot.py следующее:

if __name__ == '__main__': executor.start_polling(dp) 
from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor from config import TOKEN bot = Bot(token=TOKEN) dp = Dispatcher(bot) @dp.message_handler(commands=['start']) async def process_start_command(message: types.Message): await message.reply("Привет!\nНапиши мне что-нибудь!") @dp.message_handler(commands=['help']) async def process_help_command(message: types.Message): await message.reply("Напиши мне что-нибудь, и я отпрпавлю этот текст тебе в ответ!") @dp.message_handler() async def echo_message(msg: types.Message): await bot.send_message(msg.from_user.id, msg.text) if __name__ == '__main__': executor.start_polling(dp) 

Осталось запустить программу. Для этого в командной строке переходим в директорию проекта и пишем

Теперь можно написать нашему боту:

Источник

Оцените статью