Как подписывать участников чата в ТГ

Но я не понимаю вообще, как можно отметить всех пользователей сразу?

  • Вопрос задан более года назад
  • 6660 просмотров

2 комментария

Простой 2 комментария

https://qna.habr.com/q/1160934
И рекомендую попробовать переслать сообщение ShowJsonBot.

В общем случае отметить всех будет проблематично, так как группы бывают очень большими, а длина сообщения ограничена.

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

Решения вопроса 0
Ответы на вопрос 1

Вставь в сообщение ники всех пользователей, отправь и сразу отредактируй, удалив ники. И научись пользоваться гуглом. Этот вопрос тут чуть ли не раз в день задают

Ответ написан более года назад
могу ошибаться, но вроде тг не дает возможности получить список всех пользователей в чате
driverx18, Какая разница? Вопрос вообще не в этом

i3a4em, так автор задал вопрос как тэгнуть всех в чате, ваш ответ был в том что автор глупый и тут очевидно что надо тэгнуть всех пользователей и изменить текст. Но как тэгнуть всех пользователей, если их список недоступен телеграмом?

driverx18, Подожди ка. Если ты не знаешь, как получить все id (про то что их можно сохранять в бд при входе юзеров, или про библиотеки типа telethon, которые позволяют это делать) — это совсем другая история. Во первых не нужно думать за автора вопроса. Что для него очевидно — известно только ему.
Во вторых глупым я его не называл. Это был сарказм с намеком на лень.
Вопрос был:

Как отметить всех пользователей в чате телеграм ботом?


я подсказал как.

i3a4em, мне нужно взять всех пользователей которые есть в чате
допустим чат существует давно, туда добавляют моего бота, и нужно чтобы он мог тэгнуть ВСЕХ кто там есть. В базе их у меня нет, потому что бота добавили туда одним из последних

Еще по теме:  Телеграмм определение владельца по номеру машины

Twitt, Тогда telethon попробуй, Вот нужный метод

Twitt, telethon нужен только для того, чтобы получить начальный список пользователей в группе. Далее надо ботом следить за входящими/выходящими и за счёт этого поддерживать список в актуальном состоянии.

Но я бы советовал просто сразу оставить идею вообще «пинговать всех», это плохая практика и это, как правило, даже не лучшее решение даже реальных практических полезных задач. Например, если надо уведомлять пользователях о каких-то событиях или новостях, то это правильно делать с помощью канала.

shurshur, Такие методы применяют для того, что бы обойти отключение уведомлений у пользователя. Хоть такие способы и кажутся грязными, когда на весах «эстетичный подход к решению вопроса» и «битва за клиента» — очевидно что перевесит второе и это вполне себе инструмент.
Ну вообщем это только мое мнение)

i3a4em, такие методы применяют для того, чтобы не делать правильно. В результате пользователи просто будут уходить из таких чатов, битва за клиента будет проиграна.

shurshur, по поводу тэгать всех, могу сказать так — так надо, прям без этого никак)
По поводу телефона — я так понимаю, что это какая то питоновская надстройка над апишкой телеги? Просто я не на питоне пишу

Twitt, это python-реализация клиентского (не ботового) API (MTProto). Есть и под другие языки, например, стандартная tdlib.

В принципе, так как это разовая операция на стадии первичного внедрения, то можно и на питоне один раз написать не очень длинный код.

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

Парсим телегу. Как собирать имена участников чатов в Telegram

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

Еще по теме:  Включить логирование в Телеграмме что это

В этой статье я пос­тара­юсь мак­сималь­но дос­тупно даже для далеких от кодин­га людей рас­ска­зать, что мож­но сде­лать, что нель­зя и какова тру­доем­кость все­го про­цес­са. Готовых исходни­ков, прав­да, я тебе не выдам, но будут неболь­шие при­меры для наг­ляднос­ти.

Как извес­тно, в «Телег­раме» есть чаты и каналы, куда, быва­ет, набива­ется мно­жес­тво поль­зовате­лей. Иног­да весь­ма полез­но иметь их спи­сок, нап­ример для каких‑то рас­сылок и приг­лашений.

Обыч­но под сло­вом «пар­синг» в кон­тек­сте телеги понима­ется имен­но получе­ние спис­ка поль­зовате­лей канала или чата. Реже — получе­ние еще и спис­ка сооб­щений.

Каналы

Нач­нем с каналов. Канал — это некий ресурс в «Телег­раме», где юзе­ры толь­ко чита­ют сооб­щения вла­дель­ца канала. Сами они ничего писать не могут за исклю­чени­ем тех слу­чаев, ког­да к каналу при­вязан чат для ком­мента­риев. Тог­да у под­писчи­ков появ­ляет­ся воз­можность ком­менти­ровать сооб­щения вла­дель­ца.

По­лучить спи­сок под­писчи­ков канала без при­вязан­ного к нему чата с ком­мента­риями мож­но, толь­ко если это твой канал и у него мень­ше 200 под­писчи­ков. Если хотя бы одно из этих усло­вий не выпол­няет­ся, пар­синг недос­тупен чис­то тех­ничес­ки и ник­то не смо­жет его про­вес­ти, что бы тебе ни обе­щали. Воз­можно, в будущем появят­ся какие‑то новые спо­собы — легаль­ные или с исполь­зовани­ем дыр, но пока рабочих спо­собов нет.

Ес­ли же чат с ком­мента­риями сущес­тву­ет, то спар­сить поль­зовате­лей ты можешь точ­но так же, как в слу­чае с любым дру­гим чатом.

Что каса­ется спис­ка сооб­щений в канале, то его мож­но получить как прог­рам­мно, через API «Телег­рама», так и вруч­ную, экспор­тировав спи­сок сооб­щений с помощью штат­ного кли­ента.

Чаты

С чатами гораз­до инте­рес­нее. Вруч­ную вытащить спи­сок юзе­ров через стан­дар­тный кли­ент не получит­ся, раз­ве что сидеть с блок­нотом и руч­кой и выписы­вать всю инте­ресу­ющую информа­цию. Спо­соб не очень, так что при­дет­ся пос­мотреть в сто­рону род­ного API Telegram или, если хочешь упростить себе жизнь, на какую‑нибудь биб­лиоте­ку, нап­ример Telethon.

Еще по теме:  Бомбер Телеграмм на 500 минут

В Telethon есть фун­кция GetParticipantsRequest, которая получа­ет на вход некую сущ­ность (entity), а на выходе выда­ет спи­сок поль­зовате­лей.

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник: xakep.ru

Можно ли получить список всех участников чата в Telegram?

Подскажите, пожалуйста, можно ли каким-то образом получить список всех участников некоторого чата в Telegram? Интересует именно «username» пользователей.

Отслеживать
5,708 3 3 золотых знака 21 21 серебряный знак 44 44 бронзовых знака
задан 11 фев 2018 в 21:23
173 1 1 золотой знак 2 2 серебряных знака 13 13 бронзовых знаков

3 ответа 3

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

Да, возможно, приложу свой скрипт который справляется с данной задачей, Github

Также приложу код тут с пояснениями, на случай удаления репозитория:

Делаем необходимые импорты:

import sys from getpass import getpass from time import sleep # pip install telethon==0.11.5 from telethon import TelegramClient from telethon.errors import SessionPasswordNeededError from telethon.errors.rpc_errors_400 import UsernameNotOccupiedError from telethon.errors.rpc_errors_420 import FloodWaitError from telethon.tl.functions.channels import GetParticipantsRequest from telethon.tl.functions.contacts import ResolveUsernameRequest from telethon.tl.types import ChannelParticipantsSearch, InputChannel

Далее нам нужно создать аккаунт тут https://my.telegram.org и заполнить следующие поля:

api_id = 0 api_hash = » phone = » limit = 100

Теперь нам надо авторизоваться:

Приступаем к сбору пользователей, для этого нам нужен ID чата и access_hash как сказано в документации:

def get_chat_info(username, client): try: chat = client(ResolveUsernameRequest(username)) except UsernameNotOccupiedError: print(‘Chat/channel not found!’) sys.exit() result = < ‘chat_id’: chat.peer.channel_id, ‘access_hash’: chat.chats[0].access_hash >return result

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