import requests from aiogram import Bot , Dispatcher , types from aiogram . contrib . fsm_storage . memory import MemoryStorage # Создаем объект бота bot = Bot ( token = 'YOUR_TOKEN_HERE' ) storage = MemoryStorage ( ) dp = Dispatcher ( bot , storage = storage ) # Обработчик команды /distance @dp.message_handler ( commands = [ 'distance' ] ) async def distance_command ( message : types . Message ) : # Получаем города из аргументов команды args = message . get_args ( ) . split ( ) if len ( args ) != 2 : await message . reply ( "Пожалуйста, укажите два города для определения расстояния." ) return city1 = args [ 0 ] city2 = args [ 1 ] # Формируем URL для запроса к Visicom API base_url = "https://api.visicom.ua/data-api/5.0/core/distancematrix.json" params = { "origins" : city1 , "destinations" : city2 , "key" : "YOUR_API_KEY" } response = requests . get ( base_url , params = params ) data = response . json ( ) if "result" in data : distance = data [ "result" ] [ "distance" ] await message . reply ( f"Расстояние между{city1}и{city2}:{distance}км" ) else : await message . reply ( 'Не удалось получить расстояние.' ) # Запускаем бота if __name__ == '__main__' : from aiogram import executor executor . start_polling ( dp , skip_updates = True )