@Masvy

Как решить aiogram.exceptions.TelegramNetworkError: HTTP Client says — ClientOSError: [Errno 2] Can not write request body for?

Всем привет, разрабатываю бота и пытаюсь отправить аудио:

@employment_router.callback_query(F.data == 'no_questions_pressed')
async def respond_rejection(callback: CallbackQuery,
                            session_maker: sessionmaker,
                            bot: Bot):
    await update_status(callback.from_user.id, 'Соискатель',
                        session_maker=session_maker)
    audio1 = FSInputFile(path=r'tgbot\audio\AUDIO-2023-09-25-19-34-05.m4a', filename='audio')
    await bot.send_audio(callback.message.chat.id, audio=audio1)
    await callback.message.edit_text(text='Контакты менеджера: @Gi',
                                     reply_markup=back_menu_kb)


Как только пользователь достигает этого хендлера, бот зависает, а в терминал выскакивает это:
aiogram.exceptions.TelegramNetworkError: HTTP Client says - ClientOSError: [Errno 2] Can not write request body for
  • Вопрос задан
  • 2170 просмотров
Пригласить эксперта
Ответы на вопрос 2
@pave_ram
Привет, решение оказалось простым
@inline_router_kb.callback_query(F.data == 'send_file')
async def send_answer_file(call: types.CallbackQuery, bot: Bot):
    name_file = see_name_file(call.from_user.id)
    path = r'docs/' + name_file[1] + '.csv'

    media_group = [InputMediaDocument(type='document',
                                      media=FSInputFile(path=path),
                                      caption='Расчеты')]

    await bot.send_media_group(chat_id=call.from_user.id,
                               media=media_group)
    update_state_buy_0(call.from_user.id)

Вот пример моего решения

Используй path как заранее сформированную строку, почему-то в pycharm выдает ошибку если использовать filename
Ответ написан
Комментировать
@came_up
Дополню ответ. Если вы собираете проект с помощью Docker или в целом просто ломается, то собирайте путь с помощью pathlib, вместо обычной строки. Например:
# Обычный путь
'my_image.jpg'

# С помощью модуля pathlib | from pathlib import Path
Path(__file__).with_name('my_image.jpg')  # Если изображение лежит рядом с файлом, где обработчик (в той же папке)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы