Какие ошибки я делаю в коде бота на Python, который отправляет уведомления о днях рождения, и как их исправить? Я не являюсь программистом.

Как исправить ошибку, возникающую при попытке отправить сообщение с поздравлением при проверке условия через функцию `bd_sheduler`?
  • 9 апреля 2024 г. 9:50
Ответы на вопрос 2
Чтобы исправить ошибку, возникающую при попытке отправить сообщение с поздравлением при проверке условия через функцию `bd_sheduler`, вам нужно обратить внимание на следующие моменты:
1. Убедитесь, что вы правильно импортировали все необходимые модули (например, модуль для работы с отправкой сообщений).
2. Проверьте, правильно ли вы вызываете функцию `bd_sheduler` с нужными аргументами.
3. Убедитесь, что ваша функция `bd_sheduler` корректно обрабатывает условия и выполняет отправку сообщений при необходимости.

Если у вас возникают проблемы с отправкой сообщений из функции, возможно, стоит проверить правильность работы функции отправки сообщений, а также наличие необходимых разрешений для отправки сообщений (например, доступ к сети Интернет).

Если у вас не получается решить проблему самостоятельно, рекомендуется обратиться за помощью к опытному программисту или специалисту в области Python, который сможет быстро выявить и исправить ошибку в вашем коде.
Попробуйте бота данным способом и не забудьте установить библиотеки 
aiogram - pip install aiogram
sqlalchemy - pip install sqlalchemy
asyncpg - pip install asyncpg
apscheduler - pip install apscheduler
from aiogram import types
from aiogram.dispatcher import Dispatcher
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.future import select
from your_module_with_orm import Birthday  # Подставьте свой модуль и класс с днями рождения

async def bd_scheduler(message: types.Message, session: AsyncSession):
    today = datetime.date.today().strftime('%d-%m')
    for bd in await orm_get_birthdays(session):
        if today == bd.birthday.strftime('%d-%m'):
            await message.answer(f"Сегодня день рождения у {bd.name}! Поздравляем!")

async def orm_get_birthdays(session: AsyncSession):
    query = select(Birthday)
    result = await session.execute(query)
    return result.scalars().all()

async def main():
    # Ваша существующая инициализация dp и scheduler

    scheduler.add_job(bd_scheduler, trigger='interval', seconds=5,
                      kwargs={"message": types.Message, 'session': AsyncSession})
    scheduler.start()
Похожие вопросы