Как получить участников группы в которой состоит бот с помощью aiogram?

Рейтинг: 1Ответов: 2Опубликовано: 07.02.2023

Мне надо получить всех участников группы с помощью aiogram

Ответы

▲ 0Принят

Выводит список всех участников чата. Вызов 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))
▲ 1

Вот код:

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)