Пишу Telegram бота при помощи библиотеки aiogram, хочу чтобы бот проверял подписан ли человек на Telegram канал, в противном случае предлагал подписаться. Не знаю как это реализовать, помогите пожалуйста!
Отслеживать
задан 28 июл 2020 в 14:33
German Shtukmaister German Shtukmaister
109 1 1 золотой знак 1 1 серебряный знак 7 7 бронзовых знаков
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Отслеживать
51.5k 198 198 золотых знаков 59 59 серебряных знаков 239 239 бронзовых знаков
ответ дан 26 сен 2021 в 19:12
46 2 2 бронзовых знака
Ваш вариант лучше, спасибо!
30 сен 2021 в 14:39
Вроде разобрался! Для решения проблемы использовал метод «GetChatMember», который возвращает строку с данными о пользователе (причем не важно, подписан ли человек на интересующий канал или нет, в конце строки будет статус пользователя, который нам и нужен!). В общем получили мы эту строку, что делать дальше? Я разбил ее на элементы при помощи библиотеки ‘re’ (user_channel_status — та самая строка)
user_channel_status = re.findall(r»w*», str(user_channel_status))
Далее на нужно вытащить уже из разбитой строки статус, здесь нужно помнить, что не у всех пользователей есть фамилия, так что нужно сделать условие для всех возможных случаев!
try: #Это для тех у кого есть фамилия #из-за этого элемент со статусом находится дальше if user_channel_status[70] != ‘left’: await bot.send_message(message.from_user.id, ») #Пользователь уже подписан else: await bot.send_message(message.chat.id, ») #Требуем подписки except: #Для тех кто без фамилии if user_channel_status[60] != ‘left’: await bot.send_message(message.from_user.id, ») #подписан else: await bot.send_message(message.from_user.id, ») #Требуем подписки
Собственно ниже будет весь код:
user_channel_status = await bot.get_chat_member(chat_id=id_канала, user_id=message.chat.id) user_channel_status = re.findall(r»w*», str(user_channel_status)) try: if user_channel_status[70] != ‘left’: #Условие для «подписанных» else: await bot.send_message(message.chat.id, ») #Условие для тех, кто не подписан except: if user_channel_status[60] != ‘left’: await bot.send_message(message.from_user.id, ») #Условие для «подписанных» else: await bot.send_message(message.from_user.id, ») #Условие для тех, кто не подписан
Источник: ru.stackoverflow.com
Как посмотреть подписчиков в Телеграм на своем канале
Каждый автор аккаунта “Телеграм” делает все возможное, чтобы на его странице было много подписчиков. Для этого часто задействуется накрутка фолловеров, более подробно можно узнать на специализированном сайте. Также у владельца ресурса есть возможность видеть статистику касательно подписчиков и их действий. Как можно определить уровень вовлеченности? Вариант один – изучить количество просмотров под каждым постом и в общем количество фолловеров.
КАК СДЕЛАТЬ ОПРОСЫ У КОТОРОГО ОТВЕТЫ МОЖНО УЗНАТЬ ПОСЛЕ ПОДПИСКИ НА ТЕЛЕГРАМ? | ARMKATV
Как посмотреть подписчиков в Телеграм с помощью бота
За один просмотр считается одно посещение пользователя. Если ежедневно тот заходит на страницу с разных устройств, то за каждое такое посещение будет добавляться один просмотр. Количество просмотров – это для “Телеграмма” главная статистика. Поэтому часто владельцы каналов заказывают услугу по получению просмотров в специальных сервисах.
Например, на сайте http://martinismm.com купить подпичиков в Телеграм канал возможно по заниженным ценам. Она может выполняться на постоянной основе либо разово.
Статистика от бота
Некоторые пользователи устанавливают бота-помощника, который помогает им наполнить ресурс, просмотреть статистику. Также он выполняет дополнительные функции:
- изучает рост подписчиков, его динамику;
- форматирует текст;
- выполняет автопостинг.
Как узнать количество подписчиков
Как посмотреть подписчиков в “Телеграм” на своем канале? Чтобы понять, какое количество подписчиков на вашей странице, стоит зайти в Telegram, используя компьютер либо мобильный телефон. Дальше нужно войти в профиль и открыть категорию “Подписчики”. Последняя находится в меню снизу.
При желании можно кликнуть по любому из указанных подписчиков и перейти на его профиль для ознакомления. Но это актуально только при количестве до 200 подписчиков.
Когда их больше, нет возможности изучить всех участников. Считается, что Telegram – это секретный мессенджер, поэтому здесь скрывается вся статистика, данные. Есть предположение, что те 200 подписчиков, которые отображаются вам на канале, — это последние посетители ресурса. Можно внимательно изучить список и понять, меняется ли он.
Доступ к просмотру подписчиков имеется исключительно у владельца аккаунта. Если речь идет о простом пользователе, который хочет увидеть, кто подписан на данную страничку, то ему такая опция недоступна. Единственное, что ему предоставляется, — это число подписчиков.
Как узнать, сколько посетителей подписалось либо отписалось от канала? На сегодняшний день это сделать невозможно. Выход один – определить количество и наблюдать, чтобы цифра не уменьшалась.
Реклама
Рекламодатель: martinismm.com
Источник: tv-express.ru