Задать вопрос
@TellS

Рассылка на telebot?

Всем привет. Есть база где хранятся id пользователей которые пользовались ботом

имя файла user.db
Таблица называется login_id а ид хранятся в id

Подскажите как можно сделать рассылку ?

@bot.message_handler(commands=['start'])
def start(message):
    bot.send_message(message.chat.id, 'Пᴘивᴇт, мᴇня зᴀвʏт   \n Я являюсь твоим помоωником в иrᴘᴇ с чᴇм тᴇҕᴇ помочь ? ', reply_markup=markup)
    bot.send_photo(message.chat.id, get("https://i.imgur.com/qyn4g24.jpg").content)
 
    #data base
    connect = sqlite3.connect('users.db')
    cursor = connect.cursor()
    cursor.execute("""CREATE TABLE IF NOT EXISTS login_id(
        id INTEGER
    )""")
    connect.commit()
#повтор ид
    people_id = message.chat.id
    cursor.execute(f"SELECT id FROM login_id WHERE id = {people_id}")
    data = cursor.fetchone()
    if data is None :
        user_id = [message.chat.id]
        cursor.execute("INSERT INTO login_id VALUES(?);", user_id)
        connect.commit()
 
    else:
        bot.send_message(message.chat.id, 'С возврашением')
  • Вопрос задан
  • 880 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
InternetMaster
@InternetMaster
Интернет
В Telegram нет функции отправки сообщения сразу всем пользователям. Поэтому необходимо хранить user_id всех пользователей. Если это уже есть, то реализуйте простейший механизм рассылки через sendMessage (согласно официальной документации Telegram)

def rassilka(message):
    cursor.execute('SELECT id FROM login_id')
    result = cursor.fetchall()
    msg = '[Тут рассылаемое сообщение]'
    for x in result:
        bot.send_message(x[YOU_BD_NUMBER], str(msg))


P.S. [YOU_BD_NUMBER] это номер стобца id в login_id начиная с 0. Если столбец всего 1 в login_id то написать result[0], если столбец идет вторым то result[1] и т.д.

Также, пользователи могут заблокировать бота (выйти из него), в этом случае телеграм не доставит сообщение и оповестит об этом. Можно, например реализовать код который удаляет id из базы пользователей если им не удалось доставить сообщение. Так даже база обновится, и в ней будут актуальные пользователи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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