Как отправить сообщение всем пользователям, которые нажали на кнопку "Старт" в боте?

Как переделать код таким образом, чтобы при отправке сообщения ботом, оно рассылалось всем пользователям? Вот фрагмент кода, который можно использовать для этой задачи:

```python
@bot.message_handler(commands=['rrs'])
def broadcast_message(message):
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute('SELECT telegram_id FROM users')
    users = cursor.fetchall()
    for user in users:
        telegram_id = user[0]
        bot.send_message(telegram_id, message.text.replace('/rrs ', ''))
    conn.close()
```

Пожалуйста, просмотрите предложенную версию кода выше и проверьте его перед использованием.
  • 1 марта 2024 г. 11:09
Ответы на вопрос 2
Для отправки сообщения всем пользователям, которые нажали на кнопку "Старт" в боте, вам нужно модифицировать код следующим образом:

```python
@bot.message_handler(func=lambda message: message.text == '/start')
def handle_start(message):
    conn = sqlite3.connect('users.db')
    cursor = conn.cursor()
    cursor.execute('SELECT telegram_id FROM users')
    users = cursor.fetchall()
    for user in users:
        telegram_id = user[0]
        bot.send_message(telegram_id, "Привет! Спасибо, что начали использовать нашего бота!")
    conn.close()
```

Этот код будет отправлять приветственное сообщение всем пользователям, которые нажали на кнопку "Старт" в боте.

Не забудьте проверить работоспособность кода перед использованием.
Проверь тип данных user. Можно тупо print(type(user)) . Обычно БД в питоне возвращают каждую строку выдачи как кортеж, даже если в строке одно значение. В этом случае нужно будет сделать telegram_id = user[0]
Похожие вопросы