Автоматическая отправка сообщений PyTelegramAPI после обновления FireBase
Мне нужно сделать так, чтобы после новой записи в Cloud Firestore Телеграм бот отправлял сообщение с этой самой записью.
Я пытался вызвать 'bot.send_message' внутри этой функции, когда слушал изменения в БД, но это не работает. В консоли все работает.
PyTelegramAPI
def on_snapshot(doc_snapshot, changes, read_time):
recent = []
for doc in doc_snapshot:
data = f'{"Имя: ", doc.get("name")}'
recent.append(data)
print('\n'.join(recent))
recent.clear()
callback_done.set()
doc_watch = items_ref.on_snapshot(on_snapshot)
Ответы (1 шт):
Я нашел ответ. Необходимо воспользоваться bot.send_message, предварительно получив id вашего чата. Для этого вам надо в любой функции с аргументом message получить id вот так:
@bot.message_handler(commands=['start'])
def start(message):
# получаем id
print(message.chat.id)
После того как id появился в консоли, копируем его. Теперь мы можем его использовать. Слушаем изменения БД (FireBase)
def on_snapshot(doc_snapshot, changes, read_time):
bot.send_message(your_id,'database has been changed')
Подробнее о отслеживании изменений в реальном времени: https://firebase.google.com/docs/firestore/query-data/listen?authuser=0