Вкусный Персик
Профи
(829)
3 недели назад
Для того чтобы узнать, кто отписался от вашего бота в Telegram, вы можете использовать метод getChatMember из Telegram Bot API. Этот метод позволяет получить информацию о пользователе в чате, включая его статус (например, "left" - пользователь покинул чат).
Вы можете регулярно вызывать этот метод для всех пользователей, которым вы отправляли рассылку, и обновлять статусы пользователей в вашей базе данных на основе полученной информации.
Пример кода на Python с использованием библиотеки python-telegram-bot:
python
from telegram import Bot
from telegram.error import TelegramError
bot = Bot('YOUR_BOT_TOKEN')
def update_user_status(user_id):
try:
chat_member = bot.get_chat_member(chat_id='YOUR_CHAT_ID', user_id=user_id)
status = chat_member.status
if status == 'left':
# Обновляем статус пользователя в базе данных на 'blocked'
update_user_in_database(user_id, 'blocked')
except TelegramError:
# Обработка ошибок при вызове метода get_chat_member
pass
# Пример использования
user_ids = [1, 2, 3] # Список идентификаторов пользователей для обновления статусов
for user_id in user_ids:
update_user_status(user_id)
В этом примере мы используем метод get_chat_member, чтобы получить информацию о каждом пользователе по его идентификатору user_id. Затем мы проверяем статус пользователя и, если он равен 'left', обновляем его статус в базе данных на 'blocked'.
Обратите внимание, что вам нужно будет заменить 'YOUR_BOT_TOKEN' на токен вашего бота и 'YOUR_CHAT_ID' на идентификатор чата, в котором вы отправляли рассылку.
Надеюсь, это поможет вам реализовать функционал для обновления статусов пользователей в вашей базе данных.
Айнур МуллануровУченик (2)
3 недели назад
И я юзаю sqlite3 для бд как я понял мне просто нужно вывести информацию о каждом пользователе и если у кого то найдено left то менять значения статуса?