Добро пожаловать! Форум WLUX.NET - Игры, Читы, Скрипты, Статьи, Софт, Курсы.

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

Добро пожаловать гость!

Приветствуем вас на нашем форуме! Мы очень рады вас видеть и с большим удовольствием поделимся всей информацией нашего форума!

Мы уважаем своих пользователей и так же ждем от вас приятного общения.

Система наград, ежедневное пополнения тем!

Общайся, получай награды.

Статьи, гайды, софт

У нас вы можете скачать бесплатно читы для игр. Полезные гайды на любые темы и схемы заработка. Есть раздел халявы!

FAQ по форуму

Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

  • Добро пожаловать на сайт - wlux.net!

    FAQ по форуму

    1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа

    2. Сообщения учитываются в следующих разделах: Читать

    3.Что-бы скачать вложение нужно 2 сообщения.

    4.Личные переписки не работают на форуме

    5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта

    6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!

    5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь

python Исходник Гайд Проверяем подписку на канал или группу в Telegram через бота + исходник

5,00 звёзд
1 Рейтинг
R Оффлайн

rgett2r3

Участник
LV
0
 
20.11.2024
2
0
6
25

Репутация:

вроде норм должно быть щас буду пробывать
 
М Оффлайн

миша50

Участник
LV
2
 
10.07.2024
3
0
24
Награды
2
30

Репутация:

Норм бот топовый советую
 
V Оффлайн

VladosikPyposik228

Участник
LV
0
 
21.03.2025
2
0
5
26

Репутация:

Способ 1: Cкрипт проверки подписки на каналы Telegram

🔅 Cкрипт проверки подписки на каналы Telegram
🐍 ЯП : Python
🌀 Модули : aiogram, SQLAlchemy, gino
⭕ База : PostgreSQL

🤖 Бот для проверки на подписку канала. Добавляете в чат специальной командой и там же добавляете каналы, на которые нужно подписаться. Инструкция есть внутри скрипта. Делал давно, поэтому не пинайте за плохую структуру проекта и gino

Способ 2:
Кусок кода для проверки подписки через бота

Написано на telebot
Что бы всё работало, бота нужно добавить в админы канала
Python:
import telebot
import sqlite3 as sql


#База Данных
con = sql.connect("data.db", check_same_thread=False)
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS users(id INT)")

#Ваш бот
token = ""
bot = telebot.TeleBot(token)

#ID Вашего канала
chan_id =

#Клавиатура для проверки подписки
keyboard = telebot.types.InlineKeyboardMarkup()
subscribe = telebot.types.InlineKeyboardButton(text="Подписаться", url="ссылка на ваш канал")
check = telebot.types.InlineKeyboardButton(text="Проверить", callback_data="check")
keyboard.add(subscribe)
keyboard.add(check)

#Не нужная хуйня, вписал просто для видимости
menu = telebot.types.ReplyKeyboardMarkup(True, True)
menu.add("Вы уже подписаны")


@bot.message_handler(commands=["start"])
def start(message):
    users = cur.execute("SELECT id FROM users WHERE id = ?", (message.chat.id, )).fetchone()
    con.commit()
    if users == None: #Если юзер ещё не в БД
        bot.send_message(message.chat.id, "Что-бы продолжить подпишитесь на канал", reply_markup=keyboard)
    else: #Уже в бд
        bot.send_message(message.chat.id, "Вы уже подписаны", reply_markup=menu)


#Тут мы чекаем подписку
@bot.callback_query_handler(func=lambda call: True)
def c_listener(call):
    if call.data == "check":
        x = bot.get_chat_member(chan_id, call.message.chat.id)

        if x.status == "member" or x.status == "creator" or x.status == "administrator":
            bot.send_message(call.message.chat.id, "Добро пожаловать!", reply_markup=menu)
            cur.execute("INSERT INTO users VALUES(?)", (call.message.chat.id, ))
            con.commit()
        else:
            bot.send_message(call.message.chat.id, "Вы не подписались!", reply_markup=keyboard)



if __name__ == "__main__":
    bot.polling()

Способ 3 : Бот для проверки подписки на канал или группу

Проверка подписан ли пользователь на канал или группу производится с помощью запроса к Telegram API методом

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

. Для этого в конструкторе ботов Botmother предусмотрен такой сценарий.
1. Создадим экран запроса с компонентом «Запрос», метод Post.
2. Пропишем URL запроса:

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


где «ТОКЕН» — токен вашего бота в Телеграм (получен от BotFather).
Посмотреть вложение 6874

3. В настройках компонента добавим тело запроса:

Код:
{
"chat_id": "id канала/группы",
"user_id": "{{this_user.platform_id}}"
}

где id канала/группы — идентификатор канала/группы, на который проверяется подписка,
user_id — id пользователя, у которого проверяется подписка. Можно оставить как есть.
Посмотреть вложение 6875

4. Выберем «Экран, который выпролнится при удачном выполнении запроса» — следующий шаг по сценарию (п. 5).

5. Добавим экран с компонентом "Развилка", чтобы распределять по разным сценариям пользователей в зависимости от того, подписан юзер или нет, или имеет другой статус, например, заблокирован.
Статус пользователя сообщит Телеграм, ответ попадет в переменные пользователя. Эти переменные можно посмотреть в разделе «Состояния пользователей».
Ответы от Телеграм приходят такие:
member - пользователь является подписчиком;
left — пользователь не подписан;
kicked — пользователь заблокирован;
administrator - админ;
creator — создатель.
В боте ответ попадет в переменную last_request. result. status, значит ее значение мы и проверим в Развилке.
Посмотреть вложение 6876

left - не подписан
Посмотреть вложение 6877

member - подписан
Пишем last_request. result. status в «Имя переменной, откуда развилка возьмет значение».
Посмотреть вложение 6878

6. Добавляем Цели развилки (кнопка «Добавить цель» в настройках Развилки), т. е. куда перейдет пользователь в зависимости от его статуса, подписан или нет.
Посмотреть вложение 6880
Посмотреть вложение 6879

В целом схема экранов может быть такой.

Посмотреть вложение 6881

7. И назначаем бота админом канала или группы.
Теперь после старта бот будет проверять, является пользователь подписчиком или нет. Если нет, то предложить подписаться на канал или вступить в группу. Можно включить такую проверку на любом этапе пользования ботом, например, после триала или для получения расширенного функционала.
Протестить такого бота со стороны пользователя можно тут:

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

. Хотя подобные проверки на подписки наверняка встречались не раз.
Огроменное спасибо за быстрый ответ и помощь
 
V Оффлайн

VladosikPyposik228

Участник
LV
0
 
21.03.2025
2
0
5
26

Репутация:

вроде норм должно быть щас буду пробывать
Способ 1: Cкрипт проверки подписки на каналы Telegram

🔅 Cкрипт проверки подписки на каналы Telegram
🐍 ЯП : Python
🌀 Модули : aiogram, SQLAlchemy, gino
⭕ База : PostgreSQL

🤖 Бот для проверки на подписку канала. Добавляете в чат специальной командой и там же добавляете каналы, на которые нужно подписаться. Инструкция есть внутри скрипта. Делал давно, поэтому не пинайте за плохую структуру проекта и gino

Способ 2:
Кусок кода для проверки подписки через бота

Написано на telebot
Что бы всё работало, бота нужно добавить в админы канала
Python:
import telebot
import sqlite3 as sql


#База Данных
con = sql.connect("data.db", check_same_thread=False)
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS users(id INT)")

#Ваш бот
token = ""
bot = telebot.TeleBot(token)

#ID Вашего канала
chan_id =

#Клавиатура для проверки подписки
keyboard = telebot.types.InlineKeyboardMarkup()
subscribe = telebot.types.InlineKeyboardButton(text="Подписаться", url="ссылка на ваш канал")
check = telebot.types.InlineKeyboardButton(text="Проверить", callback_data="check")
keyboard.add(subscribe)
keyboard.add(check)

#Не нужная хуйня, вписал просто для видимости
menu = telebot.types.ReplyKeyboardMarkup(True, True)
menu.add("Вы уже подписаны")


@bot.message_handler(commands=["start"])
def start(message):
    users = cur.execute("SELECT id FROM users WHERE id = ?", (message.chat.id, )).fetchone()
    con.commit()
    if users == None: #Если юзер ещё не в БД
        bot.send_message(message.chat.id, "Что-бы продолжить подпишитесь на канал", reply_markup=keyboard)
    else: #Уже в бд
        bot.send_message(message.chat.id, "Вы уже подписаны", reply_markup=menu)


#Тут мы чекаем подписку
@bot.callback_query_handler(func=lambda call: True)
def c_listener(call):
    if call.data == "check":
        x = bot.get_chat_member(chan_id, call.message.chat.id)

        if x.status == "member" or x.status == "creator" or x.status == "administrator":
            bot.send_message(call.message.chat.id, "Добро пожаловать!", reply_markup=menu)
            cur.execute("INSERT INTO users VALUES(?)", (call.message.chat.id, ))
            con.commit()
        else:
            bot.send_message(call.message.chat.id, "Вы не подписались!", reply_markup=keyboard)



if __name__ == "__main__":
    bot.polling()

Способ 3 : Бот для проверки подписки на канал или группу

Проверка подписан ли пользователь на канал или группу производится с помощью запроса к Telegram API методом

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

. Для этого в конструкторе ботов Botmother предусмотрен такой сценарий.
1. Создадим экран запроса с компонентом «Запрос», метод Post.
2. Пропишем URL запроса:

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.


где «ТОКЕН» — токен вашего бота в Телеграм (получен от BotFather).
Посмотреть вложение 6874

3. В настройках компонента добавим тело запроса:

Код:
{
"chat_id": "id канала/группы",
"user_id": "{{this_user.platform_id}}"
}

где id канала/группы — идентификатор канала/группы, на который проверяется подписка,
user_id — id пользователя, у которого проверяется подписка. Можно оставить как есть.
Посмотреть вложение 6875

4. Выберем «Экран, который выпролнится при удачном выполнении запроса» — следующий шаг по сценарию (п. 5).

5. Добавим экран с компонентом "Развилка", чтобы распределять по разным сценариям пользователей в зависимости от того, подписан юзер или нет, или имеет другой статус, например, заблокирован.
Статус пользователя сообщит Телеграм, ответ попадет в переменные пользователя. Эти переменные можно посмотреть в разделе «Состояния пользователей».
Ответы от Телеграм приходят такие:
member - пользователь является подписчиком;
left — пользователь не подписан;
kicked — пользователь заблокирован;
administrator - админ;
creator — создатель.
В боте ответ попадет в переменную last_request. result. status, значит ее значение мы и проверим в Развилке.
Посмотреть вложение 6876

left - не подписан
Посмотреть вложение 6877

member - подписан
Пишем last_request. result. status в «Имя переменной, откуда развилка возьмет значение».
Посмотреть вложение 6878

6. Добавляем Цели развилки (кнопка «Добавить цель» в настройках Развилки), т. е. куда перейдет пользователь в зависимости от его статуса, подписан или нет.
Посмотреть вложение 6880
Посмотреть вложение 6879

В целом схема экранов может быть такой.

Посмотреть вложение 6881

7. И назначаем бота админом канала или группы.
Теперь после старта бот будет проверять, является пользователь подписчиком или нет. Если нет, то предложить подписаться на канал или вступить в группу. Можно включить такую проверку на любом этапе пользования ботом, например, после триала или для получения расширенного функционала.
Протестить такого бота со стороны пользователя можно тут:

Пожалуйста, войдите или зерегистрируйтесь, чтобы увидеть скрытый текст.

. Хотя подобные проверки на подписки наверняка встречались не раз.
ю
 

Поиск по форуму

Похожие темы:

shape1
shape2
shape3
shape4
shape7
shape8
Верх