Как сделать реферальную ссылку в Телеграмм боте

Всем привет! Наверняка вы видели в различных ботах реферальную ссылку типа https://t.me/?start=. Обычно в качестве числа указывается Telegram ID реферера. В этой статье я расскажу как обрабатывать такие ссылки в своем боте.

Для разработки ботов я использую Python библиотеку pytelegrambotapi.

Нас интересует строчка ‘text’: ‘/start’. Попробуем теперь перейти по ссылке вида https://t.me/?start=test и изменим 10-ю строчку на print(msg.text)

В консоли вывелось /start test . Делаем вывод, что в msg.text хранится необходимая нам информация из реферальной ссылки, которую необходимо обработать.

Приступим к обработке. Учитываем, что не всегда пользователь нажимает /start по реферальной ссылке, поэтому текста после /start может и не быть. Отличительным символом служит пробел (вспоминаем /start test ). Значит будем проверять наличие ID реферера по нему.

Если пользователь перейдет по ссылке https://t.me/?start=test test2, То test2 не попадет в msg.text, потому что там имеется пробел, который говорит, что test2 не является частью ссылки. Именно поэтому в msg.text находится только один символ пробела. А значит если он имеется, то и есть некоторая информация из реферальной ссылки. Поэтому в первой ветке мы создаем список ( msg.text.split() ), и берем его второй элемент (всем ведь известно, что нумерация списка идет с нуля, да?).

Реферальная система в Телеграм | Бот с реферальной системой

Хорошо, на этом этапе мы имеем текст из ссылки. Мы подразумеваем, что там число, но от пользователя можно поджидать чего угодно. Вдруг кому-то захочется «сломать» бота, указав в ссылке вместо ID реферера какой-то текст. Для этого проверим данные.

Еще по теме:  Как сжать видео для Telegram

Здесь, используя try. except мы преобразуем при помощи int() информацию в число. Если в переменной referer хранится не число, то int() вызовет ошибку ValueError

Теперь в referer записано число. Но тут появляется загвоздка: функция int() может перевести строку «-101» в число -101. То есть на данном этапе в referer может храниться отрицательное число. Почему это не важно, расскажу чуть позднее.

Пользователь может вставить в ссылку свой TG ID. Реферальная система подразумевает под собой некий бонус за переход, поэтому таким образом можно выдать самому себе бонус. Предусмотрим это. ID пользователя получаем, используя user_id = msg.from_user.id

Допустим, что имеется функция get_all_users(), которая возвращает список всех пользователей бота. Делаем это для того, чтобы не назначить в качестве реферера пользователя, которого не существует.

Что необходимо делать в случае, если у пользователя и так уже есть реферер? Не будем ведь при каждом использовании реферальной ссылки выдавать бонус за приведенного реферала, это нас попросту разорит. Поэтому необходимо написать проверку. Напишем функцию has_referrer() , которая вернет True при наличии у пользователя реферера и False при его отсутствии. Логично ее написать в начале для оптимизации.

Надеюсь, что статья будет для вас полезна!

  • реферальная система
  • telebot
  • telegrambot
  • telegram
  • реферальная ссылка

Источник: habr.com

Чат-бот в Telegram с реферальной системой за 5 минут

Реферальная ссылка Telegram Bot, Python

Необходимо приглашать друзей к боту по реф ссылкам, и при этом Пользователю который пригласил, давать бонусы. Дайте наводку, как можно организовать этот процесс. Обязательно ли создавать БД?

Отслеживать
задан 1 июн 2018 в 11:34
David Gederim David Gederim
61 1 1 золотой знак 2 2 серебряных знака 6 6 бронзовых знаков
Обязательно ли создавать БД? А какие есть еще варианты?

Еще по теме:  Подсказка при восстановлении ТГ

1 июн 2018 в 11:47
1 июн 2018 в 12:06
Ну да, без базы данных выйдет фигня. Можно сначала с sqlite3 попробовать
1 июн 2018 в 12:22

4 июн 2018 в 6:44

Получается так. t.me/BotFather?start=123q124, есть такая ссылка, пусть «123q124» это сгенерированный реферальный номер, его надо как-то получить. Ведь при переходе по этой ссылке в телеге или в других местах, на направляет к боту, где мы должны нажать кнопку «Start». Так вот значение что после «=» должно передаться. Как его получить?

4 июн 2018 в 8:52

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Решил проблему гениально! http://t.me/BotFather?start=123q124, переходя по этой ссылке нас кидает в к боту, если мы её открываем в телеге, либо на веб-странице, которая потом редиректит в телегу. После того как мы появились у бота, нажимаем на кнопку «Start», В этот момент в боте выводим наши данные после » mt24″>

Отслеживать
ответ дан 4 июн 2018 в 16:30
David Gederim David Gederim
61 1 1 золотой знак 2 2 серебряных знака 6 6 бронзовых знаков
Объясните, а в чем магия message.text[7:] ?
4 июн 2018 в 18:13
4 июн 2018 в 19:44

Понятно, т.е. те 7 символов, что пропускаем это ?start= , а дальше уже идет идентификатор, который и нужен был

Источник: ru.stackoverflow.com

Как приглашать друзей в боте?

Если Ваша цель — заработать еще больше, то требуется грамотный подход в привлечении Ваших друзей. Разместите рекламу со своей ссылкой в своих социальных сетях, чтобы за каждого реферала получать по 150 рублей.

Размещать нужно именно ту ссылку, которая появляется у Вас в разделе «Партнёры», а не ссылку на эту статью.

Два способа давать ссылки на каналы, группы и профили Телеграмм

У вас есть две ссылки, первая t.me — для размещения внутри телеграмма

Еще по теме:  Как в Телеграмме сделать жирный

Вторая, teleg.one — для размещения вне телеграмма, на внешних интернет-ресурсах — блогах, соц. сетях и так далее

Пользователь считается приглашённым только в том случае, если он перешёл по Вашей ссылке и начал диалог с ботом

Напоминаю, что ссылку Вы можете размещать где угодно. Вы также можете просто отправлять её друзьям или знакомым в личные сообщения. Главное помните, что внутри телеграмма Вы отправляете первую ссылку, в остальных местах — вторую. Первая ссылка работает только в самом телеграмме.

Приведу один из примеров, как разместить ссылку на ресурсе Instagram

| 1️⃣Первый шаг: переходим на главную страницу профиля | кнопка «Редактировать»

| 2️⃣Второй шаг: в настройках аккаунта, раздел «Сайт» вставляете ссылку на бот — (ваша реферальная ссылка)

| 3️⃣Третий шаг: в конечном счете, у вас должна выйти вот такая картина (скриншот ниже )

| 4️⃣Четвертый шаг: Процедура завершена, на выходе получается вот такая картина, где пользователь заинтересован в том, чтобы перейти по ссылке и начать зарабатывать вместе с вами

БОНУС | КАК СДЕЛАТЬ СТОРИС С ССЫЛКОЙ НА БОТА?

Так уж вышло, что сторис с внешней ссылкой на бот можно публиковать только с аудиторией от 10,000 подписчиков

В сторисе, вы можете рассказать, что бот платит за подписку на канал и 150 рублей за каждого приглашенного друга

Не забудьте сказать, что ссылка на бот находится в описании профиля , что источник находится в описании профиля, как на скриншоте выше.

Размещать ссылку можно так же на таких ресурсах, как VK, Facebook, Twitter, YouTube, и так далее.

Зарабатывайте вместе с ботом Акционер!

Источник: telegra.ph

Рейтинг
( Пока оценок нет )
Загрузка ...