Приветствуем вас на нашем форуме! Мы очень рады вас видеть и с большим удовольствием поделимся всей информацией нашего форума!
Мы уважаем своих пользователей и так же ждем от вас приятного общения.
Добро пожаловать на сайт - wlux.net!
FAQ по форуму
1. Все сообщения до группы местный проходят модерацию от 1 минуты до 24 часа
2. Сообщения учитываются в следующих разделах: Читать
3.Что-бы скачать вложение нужно 2 сообщения.
4.Личные переписки не работают на форуме
5. Запрещено: Просить скрытый текст , спам, реклама, скам, ддос, кардинг и другая чернуха, нарушать любые законы РФ/СНГ = бан аккаунта
6. Внимание! Мы не удаляем аккаунты с форума! Будьте внимательны ДО регистрации! Как удалить аккаунт на форуме?!
5.Не понимаю, как и что тут работает у вас?!Как создавать темы, писать сообщения, как получать реакции. Почему не засчитывает сообщения. Все ответы здесь
Репутация:
Огроменное спасибо за быстрый ответ и помощьСпособ 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. И назначаем бота админом канала или группы.
Теперь после старта бот будет проверять, является пользователь подписчиком или нет. Если нет, то предложить подписаться на канал или вступить в группу. Можно включить такую проверку на любом этапе пользования ботом, например, после триала или для получения расширенного функционала.
Протестить такого бота со стороны пользователя можно тут: . Хотя подобные проверки на подписки наверняка встречались не раз.
Репутация:
юСпособ 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. И назначаем бота админом канала или группы.
Теперь после старта бот будет проверять, является пользователь подписчиком или нет. Если нет, то предложить подписаться на канал или вступить в группу. Можно включить такую проверку на любом этапе пользования ботом, например, после триала или для получения расширенного функционала.
Протестить такого бота со стороны пользователя можно тут: . Хотя подобные проверки на подписки наверняка встречались не раз.
Наш форум wlux.net создан для того, чтобы каждый желающий мог в любое время бесплатно найти и ознакомиться с разнообразными курсами и материалами. Здесь представлены темы, связанные с читами для игр, программированием, скриптами для игр, тренингами, книгами, уроками, гайдами, 3D-графикой, исходным кодом телеграм-ботов и другими направлениями. Кроме того, платформа предоставляет возможность участникам обсуждать множество различных тем.Весь материал на сайте представлене бесплатно и взят из открытых источников!
Здесь вы можете отправить жалобу на материал для Правообладателя
Почта для жалоб: [email protected]
Вся информация, размещенная на данном сайте, предоставлена исключительно в ознакомительных целях и только для просмотра, и призвана помочь посетителям сайта wlux.net выбрать для себя и в последствии приобрести соответствующие лицензионные авторские продукты.
Администрация проекта сообщает, что вся опубликованная информация на нашем сайте взята из открытых интернет-источников.