В python-telegram-bot как получить всех участников группы?

В Python-telegram-bot как получить, если возможно , полный список всех участников группы, в которую добавлен бот?


person Thomas8    schedule 02.01.2016    source источник
comment
Я попытался найти в документации и в примерах метод получения списка участников. Я хочу реализовать мафию, например. Чтобы установить роли, мне нужно сначала получить список.   -  person Thomas8    schedule 02.01.2016


Ответы (2)


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

Если вы проверите объект Сообщение, вы обнаружите:

  • new_chat_participant: в группу добавлен новый участник, информация о нем (этим участником может быть сам бот)
  • left_chat_participant: участник удален из группы, информация о нем (этим участником может быть сам бот)

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

Основная стратегия - хранить где-нибудь (например, в базе данных) случаи присоединения и выхода пользователей из группы.

Когда пользователь присоединяется к чату, сохраните объект User в хранилище. Когда пользователь выходит из чата, удалите объект «Пользователь» из хранилища.

Ну тогда делайте логику сколько угодно.

person unnikked    schedule 08.01.2016
comment
Могу ли я получить идентификаторы всех пользователей в группе, не используя магазин? - person Vadim; 21.11.2018
comment
Telegram этого не допускает - person unnikked; 16.12.2018

Кроме того, последнее обновление API позволяет:

  • telegram.get_chat_members_count (chat_id): используйте этот метод, чтобы получить количество участников в чате.

  • telegram.get_chat_member (chat_id, user_id): используйте этот метод для получения информации об участнике чата.

Вы можете комбинировать со стратегиями new_chat_participant и left_chat_participant, чтобы собрать информацию о группе.

Больше информации здесь:

person Leandro Toledo    schedule 29.05.2016
comment
Опубликованные ссылки не работают с 404. - person Zoran Pavlovic; 13.11.2017
comment
но как это может помочь мне получить все идентификаторы пользователей в группе? - person Vadim; 21.11.2018
comment
Супергруппа не показывает оставшихся пользователей при большом количестве участников. У BOT API нет возможности получить участников чата. Единственный способ - использовать Telegram TDLib API. - person eos1d3; 04.10.2020