Как отправлять через бота уведомления пользователям зная их id?

Есть бот и БД, на языке python, в БД хранятся данные в том числе и chat_id, так вот как отправлять уведомления в бот всем пользователям зная id? как правильно прописать метод?


Ответы (2 шт):

Автор решения: MyZik
await bot.send_message(chat_id=123456, text="test")
→ Ссылка
Автор решения: Ян Морозов
ID_LIST = []

def connection_func(func):
    """Декоратор для соебинения с базой данных"""

    def camel(*args, **kwargs):
        try:
            connection = pymysql.connect(
                host=host,
                port=port,
                user=user,
                password=password,
                database=db_name,
                cursorclass=pymysql.cursors.DictCursor
            )
            print('successfully connected...')
            print('#' * 30)
            try:
                result = func(connection, *args, **kwargs)
                return result
            finally:
                connection.close()
        except Exception as exp:
            print('Connection refused...')
            print(f'FAIL{exp}')

    return camel


@connection_func
def upload_users_data(connection):
    """Выгрузка данных пользователя из базы данных"""
    with connection.cursor() as cursor:
        select_all_data = "SELECT * FROM `users`"
        cursor.execute(select_all_data)
        rows = cursor.fetchall()
        print(f'•• DATA USERS\n'
              f'{"Name":<10} {"ID":<10} Progress')  # todo вынести в общий модуль
        return rows

for i in upload_users_data():
    ID_LIST.append(i['id'])
# Тксть для отправки
TEXT = 'Текст'

@bot.message_handler(commands=['start'])
async def get_user_info(message):
    for user_id in ID_LIST:
        await bot.send_message(chat_id=user_id, text="TEXT")

Если будут ошибки стоит слегка поправить последнюю функцию

→ Ссылка