from aiogram import Bot , Dispatcher , types , executor # импорт библиотеки import aiofiles API_TOKEN = 'сюда токен' bot = Bot ( token = API_TOKEN ) dp = Dispatcher ( bot ) @dp.message_handler ( commands = [ 'start' ] ) # команда /start - после её ввода, пользователь получает сообщение "Привет!" async def send_welcome ( message : types . Message ) : await message . reply ( 'Привет!' ) @dp.message_handler ( commands = [ 'напиши' ] ) # команда /напиши - использование (/напиши {любой текст}), бот отправит {любой текст} async def mq ( message : types . Message ) : arg = message . get_args ( ) if arg == '' : await message . reply ( 'Где аргумент?' ) else : await bot . send_message ( message . chat . id , arg ) @dp.message_handler ( content_types = 'text' ) async def text ( message : types . Message ) : text = message . text # не обязательно, просто я того чтобы не писать миллион раз message.text if text == 'картинку' : # если текст, который написал пользователь является текстом 'картинка', то async with aiofiles . open ( '1.jpg' , mode = 'rb' ) as f : # АСИНХРОННО!!!! открываем картинку. (она должна быть в одной папке с вашим .py файлом) photo_data = await f . read ( ) await bot . send_photo ( message . chat . id , photo = photo_dat , caption = 'вот картинка' ) # отправляем эту картинку, caption это текст под картинкой else : await message . reply ( 'я тебя не пониманию' ) # если ничему не равно. if __name__ == '__main__' : executor . start_polling ( dp , skip_updates = True ) # запуск бота