Как получить участников группы в которой состоит бот с помощью aiogram?
Мне надо получить всех участников группы с помощью aiogram
Источник: Stack Overflow на русском
Мне надо получить всех участников группы с помощью aiogram
Выводит список всех участников чата. Вызов await bot.get_chat_members(chat_id=message.chat.id) извлекает список всех участников чата. Затем перебирает этот список и создает список их полных имен, используя member.user.full_name. Наконец, он отправляет список обратно в чат, используя вызов функции await message.answer("\n".join(members_list)) .
@dp.message_handler(commands='all_members')
async def cmd_all_members(message: types.Message):
members = await bot.get_chat_members(chat_id=message.chat.id)
members_list = [member.user.full_name for member in members]
await message.answer("\n".join(members_list))
Вот код:
p.s использовал версию aiogram 2.21
from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
from pyrogram import Client
bot = Bot(token="токен")
dp = Dispatcher(bot)
async def get_chat_members(chat_id):
# получите на https://my.telegram.org/apps
api_id = "ВАШЕ апи айди и можно без кавычек"
api_hash = "ваше апи хэщ"
member_ids = []
async with Client("s1", api_id, api_hash) as app:
async for member in app.get_chat_members(chat_id):
member_ids.append(member.user.id)
return member_ids
@dp.message_handler(commands=['start'])
async def process_start_command(message: types.Message):
chat_id = message.chat.id
participant_ids = await get_chat_members(chat_id)
await message.reply(f"Found participants with IDs: {', '.join(str(id) for id in participant_ids)} in the chat.")
if __name__ == "__main__":
executor.start_polling(dp, skip_updates=True)