Как вытащить всех участников группы telegram
Кто-нибудь даст стартер о том, как я могу получить информацию о пользователях из моего бота Telegram. Представьте, что мой бот является пользователем с правами администратора на моем канале, и я хочу получить список пользователей моего канала или быть замеченным при присоединении нового пользователя. Как мне это сделать. Документы Telegram настолько неорганизованы. До сих пор я смотрел на это:
Но ничего из этого не помогает.
Чтобы получить список пользователей, вам необходимо использовать Telegram API.
Telegram API довольно сложен. Есть клиенты, которые выполняют работу намного быстрее.
Для python существует Telethon, и метод получения пользователей канала:
Telegram Bot ничего не хранит о ваших пользователях. Вы должны сами сохранить всех пользователей, которые общаются с вашим ботом. Например, сохранить их идентификаторы в базе данных.
В случае с каналом - вы можете получить эту информацию из списка участников канала.
Если вам нужно уведомление - ваш бот должен где-то хранить пользователей и проверять, новый ли пользователь.
Как уже упоминалось, вы не можете перечислить пользователей канала через Bot API.
Но вы можете использовать MTProto API, чтобы войти в систему как обычный пользователь и получить программный доступ ко всему, что вы можно увидеть в настольном или мобильном приложении.
Вот рабочий пример того, как использовать библиотеку Python Telethon для получения списка пользователей канала / группы Telegram.
Легко искать каналы / пользователей по имени / телефону / URL с помощью client.get_entity ().
Чтобы получить список пользователей, вам необходимо использовать Telegram API.
Telegram API довольно сложен. Есть клиенты, которые выполняют работу намного быстрее.
Для python существует Telethon, а код для получения пользователей канала:
Бот не может получить доступ к списку пользователей канала через api. Для этого есть две возможности:
Для бота Telegram нет API для доступа к каналу или группе пользователей. Если для вас важен доступ к групповым пользователям, я предлагаю вам использовать Telegram-CLI. Вы можете получить доступ ко всем API учетной записи пользователя Telegran, чтобы иметь доступ ко всем данным пользователей вашей группы.
Для указанных задач будет использоваться Python не ниже версии 3.5, а также высокоуровневая библиотека для работы с Telegram API – Telethon. Установить библиотеку можно с помощью менеджера пакетов pip :
Регистрируем в Telegram новое приложение
Для подключения к Telegram API необходимы api_id и api_hash . Эти параметры выдаются при регистрации приложения в инструментах разработчика (при отсутствии доступа используйте VPN). Для авторизации указываем номер телефона, к которому привязан аккаунт Telegram.
Вводим пришедший в Telegram численно-буквенный код и попадаем на страницу регистрации нового приложения. Заполняем форму, достаточно первых двух граф:
В результате попадаем на страницу конфигурации приложения. Находим оба параметра, а также доступные MTProto-сервера и открытые (публичные) ключи.
Избегая проблем с безопасностью, сохраняем учетные данные в отдельном файле config.ini следующей структуры:
Поле username далее будет использоваться лишь для автоматического сохранения сессии под именем username.session . Одному клиенту соответствует одна сессия, учтите это в случае запуска нескольких клиентов.
Создаем клиент Telegram
Начнем с импорта библиотек.
Теперь считаем учетные данные из config.ini :
Создадим объект клиента Telegram API:
При необходимости прописываем прокси. При использовании протокола MTProxy прокси задается в виде кортежа (сервер, порт, ключ) .
При первом запуске платформа запросит номер телефона, и вслед – код подтверждения. Так же, как если бы вы входили в учетную запись в приложении или браузере.
Для сбора, обработки и сохранения информации мы создадим две функции:
Обе функции будут вызываться в теле функции main , в которой пользователь передаст ссылку на интересующий источник:
Касательно написания вызова функций стоит оговориться, что Telethon является асинхронной библиотекой. Поэтому в коде используются операторы async и await. В связи с этим функция main полностью будет выглядеть так:
Заметим, что из-за асинхронности Telethon может некорректно работать в средах, использующих те же подходы (Anaconda, Spyder, Jupyter).
Рекомендуемым способом управления клиентом является менеджер контекстов with . Его мы запустим в конце скрипта после описания вложенных в main функций.
Собираем данные об участниках
Telegram не выводит все запрашиваемые данные за один раз, а выдает их в пакетном режиме, по 100 записей за каждый запрос.
Устанавливаем ограничение в 100, начинаем со смещения 0, создаем список всех участников канала all_participants . Внутри бесконечного цикла передаем запрос GetParticipantsRequest .
Проверяем, есть ли у объекта participants свойство users . Если нет, выходим из цикла. В обратном случае добавляем новых членов в список all_participants , а длину полученного списка добавляем к смещению offset_user . Следующий запрос забирает пользователей, начиная с этого смещения. Цикл продолжается до тех пор, пока не соберет всех фолловеров канала.
Самый простой способ сохранить собранные данные в структурированном виде – воспользоваться форматом JSON. Базы данных, такие как MySQL, MongoDB и т. д., стоит рассматривать лишь для очень популярных каналов и большого количества сохраняемой информации. Либо если вы планируете такое расширение в будущем.
В JSON-файле можно хранить и всю информацию о каждом пользователе, но обычно достаточно лишь нескольких параметров. Покажем на примере, как ограничиться набором определенных данных:
Итак, для каждого пользователя создается свой словарь данных и добавляется в общий список all_user_details , который записывается в JSON-файл.
Таким образом, с помощью Python и Telethon мы написали скрипт, собирающий и сохраняющий данные и реплики участников сообществ Telegram.
Чаты в Телеграм, они же группы или супергруппы, созданы для общения с несколькими собеседниками одновременно. Чаще диалог помогает отключать от посторонних глаз настройками приватности, но иногда в беседе принимают участие несколько сотен человек, которые нашли группу через поисковую строку мессенджера.
Как найти ненужный чат в списке своих контактов
Рисунок 1. Поиск беседы в контакт-листе по ключевому слову
Как выйти из чата
Покинуть своих собеседников в группе можно двумя способами: через список контактов или через окно диалога. И тот и другой метод прост, но всегда стоит помнить о том, что, покидая беседу, вернуться обратно будет проблематично, хотя бы по тому, что публичный доступ имеют только супергруппы.
Как через список контактов удалиться из числа участников группы со смартфона:
- Открыть приложение, найти нужный чат и при длительном нажатии появится меню.
- Выбрать из предложенных вариантов – «покинуть» (андройд) или «удалить» (iPhone (iOS)).
Рисунок 2. Выход из беседы со смартфона через контакт-лист.
Отписка от чата с телефона через окно беседы:
- Вверху окна нажать на название группы, откроется окно с информацией.
- В правом верхнем углу нажать на кнопку с изображением трёх вертикальных точек.
- Во всплывающем меню выбрать – «покинуть» или «выйти».
Этот путь не имеет существенных отличий для смартфонов с разной операционной системой. В приложениях для android, ios, windows возможна разница лишь в названии пунктов меню, но суть их ясна.
Рисунок 3. Выход из чата на смартфоне через меню группы.
Как выйти из чата в Телеграм через список контактов на компьютере:
- Найти нужный чат в контактах.
- Кликнуть по нему правой кнопкой мыши и выбрать из предложенных вариантов – «leave group».
Рисунок 4. Выход из группы через список контактов в приложении для ПК.
Отписка на компьютере из беседы через меню в окне чата:
- В окне диалога нажать на знак с изображением трёх вертикальных точек, он находится в правом верхнем углу.
- Из предложенных вариантов выбрать – «leave group».
Рисунок 5. Как удалиться из беседы через окно диалога в приложении для ПК.
Как удалить человека из чата
Иногда некоторые участники диалога группы ведут себя не корректно по отношению к собеседникам. Такое поведение приводит к конфликтам. В других случаях чат имеет свод правил, за нарушение которых участник может получить бан, или быть изгнанным из группы.
Как удалить человека из чата на телефоне:
- Открыть окно беседы и нажать строку с названием и логотипом группы, которая находится вверху экрана.
- Под описанием будет виден список контактов, в нём нужно нажать на имя интересующего человека и во всплывающем меню выбрать – «удалить» или «исключить» (зависит от ОС смартфона, например iOS или android).
Рисунок 6. Исключить пользователя из числа собеседников со смартфона.
Как убрать пользователя из участников беседы в приложении для компьютера:
- В приложении для ПК есть возможность видеть все три окна мессенджера одновременно (контакты, окно диалога, информация о чате). Если окно информации скрыто, то над диалогом следует нажать на знак с изображением прямоугольника.
- В списке участников найти нужного пользователя и, кликнув по его никнейму правой кнопкой мыши, выбрать из предложенных вариантов – «remove from group».
Рисунок 7. Удаление человека из беседы через приложение для ПК.
Возможные проблемы при выходе из чата
Так как главный козырь мессенджера – это анонимность, то беседы приватны, за исключением супергрупп. Ещё одним важным моментом является отсутствие возможности восстановить удалённый чат. Поэтому и проблемы при выходе из беседы в большинстве случаев связаны с этими двумя факторами:
- Выход создателя из группы. Создателю просто так невозможно покинуть своих собеседников, например, если ему надоел диалог, то он не вправе его прекратить пока остальные участники не обсудят интересующие их вопросы. Если создатель всё же покинут группу, то она автоматически удаляется.
- При выходе из группы вернуться в неё без помощи администраторов невозможно. Доступ к чату возможен через ссылку-приглашение, которую администратор может сбросить в любой момент.
- Когда один из собеседников покидает чат, то его имя видно в окне диалога с припиской «покинул(а) группу», так что уйти незамеченным не получится. Это касается приложения Telegram для iPhone (iOS)а, компьютера и прочих гаджетов и ОС.
Вопрос о том, как выйти из чата в Телеграм, возникает не только у новичков, но и уже привыкших к общению в мессенджере пользователей. Связано это с тем, что покидать группы приходится не часто, в основном пользователи периодически проводят чистку контактов и избавляются от ненужных бесед, каналов и прочего. Поэтому порядок действий для удаления чата из контакт-листа ничем не отличается от, скажем, удаления бота или канала. Всё довольно просто, понятно и легко запоминается на будущее.
Наличие большого количества тематических каналов и чатов в мессенджере «Телеграм» делает времяпровождение пользователей максимально интересным. Информация для определённого круга лиц может быть представлена в группе, которую можно закрыть от других, общаясь внутри беседы. Канал предоставляет своим подписчикам различные сведения в зависимости от тематики. Создавать подобные общины может любой пользователь «Telegram».
Отличие каналов от групп
Чтобы выбрать какой вид объединения по интересам лучше организовать, следует ознакомиться с их возможностями. Обычные группы в «Телеграм» имеют ограниченное число участников и предназначены только для узкого круга лиц. Открывая новое сообщество, важно определиться с его назначением. Канал или чат создаются для разных целей.
Группы
- ограничение числа участвующих – 200 человек;
- возможность общаться внутри чата;
- все пользователи могут добавлять к беседе новых членов; можно по приглашению или ссылке;
- переписка, которая создана внутри чата, недоступна людям, не относящимся к группе;
- у любого участника есть возможность менять фото, название.
Если вы создали новую группу в «Телеграм» и хотите повысить количество людей, её нужно преобразовать в супергруппу. Иначе добавление контактов придётся производить, удаляя другого человека из сообщества.
Супергруппы
Каналы
- число подписчиков на каналах не ограничено;
- записи на стену отправляются от имени сообщества;
- прикреплённый файл должен быть не более 1,5 Гб;
- канал отличается отсутствием функции комментирования;
- подписчики могут отключать уведомления;
- канал можно монетизировать.
Как создать группу в «Telegram»
Процесс создания данных объединений несложен. Для телефонной версии мессенджера, чтобы организовать закрытую беседу, нужно произвести такие действия:
Аналогичным образом производятся действия для компьютерной версии приложения. По умолчанию такое объединение будет закрытым, но если вы решили преобразовать его в супергруппу («Upgrade to supergroup»), тогда она станет публичной и сможет отображаться в поиске.
Как сделать новый канал
По такому же принципу, как и групповой чат, создаём канал:
Управление группами
Управление чатами, а также каналами осуществляется на правах администратора при помощи большого количества опций, позволяющих менять название, описание, загружать фото, чистить историю. Эти функции доступны благодаря настройкам.
Закрепление записей
Как добавить контакт
Действия по добавлению к беседе совершаются двумя способами:
Как удалить человека из группы
Удаляются люди из чата кнопкой «Исключить», которую вы найдёте напротив каждого члена объединения. Список всех участвующих доступен при нажатии на аватар.
Удаление группы
Покинуть сообщество и удалить его, если вы являетесь администратором, возможно при помощи пункта настроек «Delete and Exit» либо «Delete channel» во вкладке с описанием для каналов.
Читайте также: