gawwah_looter_7777777
@gawwah_looter_7777777

Почему команда работает только на половину?

Хочу создать функцию, которая будет собирать user.id пользователей, а потом отправлять им сообщения-напоминания через определенное время. Уведомление не приходит, при этом сам бот откликается на /start. Где может быть ошикба?

import telebot
import random
import time
import string
import requests
import schedule
import json
import sqlite3
import sched
from telebot import types

bot = telebot.TeleBot('TOKEN')





# список для хранения id пользователей
users = {}

# функция для обработки команды /start
@bot.message_handler(commands=['start'])
def start(message):
    user_id = message.chat.id
    
    # добавляем user_id в словарь
    users[user_id] = True
    
    bot.send_message(user_id, "Привет! Ты подписался на уведомления.")
    
# инициализируем объект scheduler
scheduler = sched.scheduler(time.time, time.sleep)

# функция для отправки уведомлений
def send_notifications():
    for user_id in users.keys():
        bot.send_message(user_id, "Уведомление.")
        
    # запускаем функцию через 5 минут
    scheduler.enter(300, 1, send_notifications)
    
# запускаем функцию send_notifications через 5 минут
scheduler.enter(300, 1, send_notifications)

# запускаем цикл получения сообщений

    

    
    
    
    
bot.polling()
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
scoffs
@scoffs
Fullstack | C# | Student
Может что-то типа этого?
import telebot
import time
import sched

bot = telebot.TeleBot('TOKEN')

# список для хранения id пользователей
users = {}

# функция для обработки команды /start
@bot.message_handler(commands=['start'])
def start(message):
    user_id = message.chat.id
    
    # добавляем user_id в словарь
    users[user_id] = True
    
    bot.send_message(user_id, "Привет! Ты подписался на уведомления.")

# функция для отправки уведомлений
def send_notifications():
    for user_id in users.keys():
        bot.send_message(user_id, "Уведомление.")
        
    # запускаем функцию через 5 минут
    scheduler.enter(300, 1, send_notifications)
    
# инициализируем объект scheduler
scheduler = sched.scheduler(time.time, time.sleep)
# запускаем функцию send_notifications через 5 минут
scheduler.enter(300, 1, send_notifications)
# запускаем цикл планировщика
scheduler.run()

# запускаем цикл получения сообщений
bot.polling()
Ответ написан
Ваш ответ на вопрос

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

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