Чтобы связать двух ботов Telegram для управления реферальной системой с использованием базы данных (БД), вам нужно настроить механизм обмена данными между ботами через общую БД. Ниже описаны основные шаги интеграции двух ботов в такой системе:
Шаг 1: Настройка базы данных
Для хранения и обработки реферальных ссылок можно использовать такие БД, как PostgreSQL, MySQL, MongoDB и другие
Важно, чтобы оба бота имели доступ к этой БД и могли записывать и читать нужную информацию.
# Предполагаем, что вы используете Psycopg2 для работы с PostgreSQL.
import psycopg2
try:
connection = psycopg2.connect(user="sys_user",
password="sys_password",
host="127.0.0.1",
port="5432",
database="telegram_bots")
cursor = connection.cursor()
# Здесь код для работы с БД: создание таблиц, вставка, чтение данных и т.д.
except (Exception, psycopg2.Error) as error:
print("Ошибка при работе с PostgreSQL", error)
finally:
if (connection):
cursor.close()
connection.close()
print("Сессия PostgreSQL закрыта")
Шаг 2: Генерация и сохранение реферальных ссылок
Главный бот должен генерировать уникальные реферальные ссылки для пользователей и хранить их в БД. Ссылка должна содержать уникальный идентификатор (или код реферала), по которому можно будет отследить новых пользователей.
Шаг 3: Обработка рефералов вторым ботом
Когда новый пользователь подписывается на второго бота через реферальную ссылку, второй бот проверяет уникальный идентификатор реферала и записывает информацию о новом пользователе в БД.
Шаг 4: Уведомление главного бота
Главный бот может проверять БД на наличие новых рефералов через определенные интервалы времени (полинг) или, более эффективно, реагировать на триггеры/уведомления, настроенные в БД, которые активируются при добавлении нового реферала. Как только появляется новый реферал, главный бот отправляет сообщение соответствующему пользователю.
Пример уведомления главного бота через Telegram Bot API:
from telegram import Bot
# Токен главного бота
main_bot_token = 'TOKEN_MAIN_BOT'
# ID пользователя, которому необходимо отправить уведомление
user_id = 'USER_TELEGRAM_ID'
# Создаем экземпляр бота для отправки уведомлений
bot = Bot(token=main_bot_token)
# Отправка уведомления
bot.send_message(chat_id=user_id, text="У вас новый реферал!