Задать вопрос
@kavermoki
junior

Почему функция не отрабатывает отправку сообщения пользователю?

Приветствую! Функция personal_send_notification запускается, когда scheduler пытается отработать задачу в заданное время. Основная проблема заключается в том, что когда я передаю в функцию personal_send_notification us_id и пытаюсь отправить пользователю сообщение, выходит ошибка. Пользователь не заблокирован, проверяю через f"DEBUG: - действительно получаю именно тот id, который мне нужен. Но все же выходит ошибка "Критическая ошибка отправки: Не удалось отправить сообщение".

async def personal_send_notification(us_id, msg, datetimeuser):
    print(f"DEBUG: Попытка отправки на ID {us_id}")
    try:
        await bot.send_message(chat_id=us_id, text=f"<b>привет!!!</b>\n\n"
                                                     f"{msg}", parse_mode=ParseMode.HTML)
    except Exception as e:
        print(f"Критическая ошибка отправки: {e}")


@dp.message_created(PersonalForm.datetimeuser)
async def personal_get_datatime(event: MessageCallback, context: MemoryContext):
...
...
...
scheduler.add_job(personal_send_notification, trigger='date', run_date=age,
                              args=[user_data['us_id'], user_data['msg'], user_data['datetimeuser']])


Traceback:
Traceback (most recent call last):
  File "C:\Users\***\PycharmProjects\botpyped\bot.py", line 75, in personal_send_notification
    await bot.send_message(chat_id=us_id, text=f"<b>привет!!!</b>\n\n"
  File "C:\Users\***\PycharmProjects\botpyped\venv\lib\site-packages\maxapi\bot.py", line 266, in send_message
    return await SendMessage(
  File "C:\Users\***\PycharmProjects\botpyped\venv\lib\site-packages\maxapi\methods\send_message.py", line 141, in fetch
    raise RuntimeError("Не удалось отправить сообщение")
RuntimeError: Не удалось отправить сообщение
  • Вопрос задан
  • 186 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Python-разработчик: расширенный курс + нейросети
    12 месяцев
    Далее
  • Хекслет
    Python-разработчик
    10 месяцев
    Далее
  • Skillbox
    Python-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@kavermoki Автор вопроса
junior
путем проб и ошибок..
нужно было передавать не us_id, а chat_id. Что бы получить chat_id в обработчике:

chat_id = event.chat.chat_id

ну и дальше
scheduler.add_job(personal_send_notification, trigger='date', run_date=age, args=[user_data['chat_id'],
                                                                                              user_data['msg'],
                                                                                     user_data['datetimeuserpers']])
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 100 000 до 150 000 ₽
Hard Bootstrapping LLC. Санкт-Петербург
от 250 000 до 500 000 ₽
ITK academy Воронеж
от 75 000 ₽