Отслеживание подписок и отписок пользователей, приходящих по реферальным ссылкам в Telegram, может быть достаточно сложной задачей, особенно без использования базы данных для хранения информации. Однако, есть несколько подходов, которые вы можете использовать для решения этой задачи:
1. **Использование базы данных**: Хотя вы упомянули, что не хотите хранить данные в базе данных, стоит рассмотреть возможность хранения минимальной структуры данных, например, списка пользователей и их статусов (подписан/отписан) в базе данных. Это облегчит задачу отслеживания и позволит вам реализовать функциональность в более устойчивом и надежном виде.
2. **Таймеры и регулярные проверки**: Если вы не хотите использовать базу данных, вы можете установить таймер для регулярной проверки списка участников канала через API Telegram. Например, вы можете опрашивать участников канала раз в определенное время (каждый час, день и т.д.) и сравнивать текущий список участников с тем, что у вас было ранее. Таким образом, вы сможете выявить тех, кто отписался.
3. **Telegram Bot API**: С помощью Telegram Bot API вы можете использовать методы, такие как `getChatMembers`, чтобы извлечь информацию о текущих участниках канала. Однако необходимо помнить, что если ваш бот не является администратором канала, он не сможет получать полную информацию о всех участниках.
4. **Системы уведомлений**: Если вы можете управлять реферальными ссылками через вашего бота, вы можете настроить систему уведомлений, чтобы отправлять сообщение пользователю при подписке или отписке. Например, когда пользователь переходит по реферальной ссылке и подписывается на канал, бот может отправить ему сообщение, подтверждающее подписку.
5. **Логирование в памяти**: Если вы решите не использовать базу данных, вы можете логировать пользователей в памяти с использованием подхода на базе кэширования (например, использовать библиотеку `cachetools` или `redis-py` для временного хранения данных). Однако это будет временное решение, и данные будут потеряны при перезапуске бота.
6. **Анализ событий**: Некоторые решения могут включать использование webhook-ов или событийных систем, которые позволяют вашему боту реагировать на действия пользователя в режиме реального времени.
Учтите, что Telegram имеет ограничения по использованию API, которые могут повлиять на вашу возможность регулярно запрашивать данные. Прежде чем приступать к реализации, ознакомьтесь с документацией Telegram API и принятыми практиками для обеспечения соблюдения правил и ограничений платформы.