Python aiogram отправка сообщений из Группы переделёным людям

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

Я сделал бота который отпровляет сообщения из Лс в Группу из Группы берутся написаные сообщения они пишутся админам то есть людям которые записаны в файле с id проблема в том что бот хорошо отпровляет сообщения и совсем не передаёт сообщения из чатов в лс к админам

Админы

admin_id = {RomaNpc, SwItEr, Sergo}

Код

@dp.message_handler()
async def msg(message: types.Message):
    if message.chat.type == 'private':
        if message.from_user.id in admin_id:
            await bot.send_message(group_id, message.text)
        else:
            await bot.send_message(message.from_user.id, 'У вас нет прав! ⚠️')
    else:
        if message.chat.id == group_id:
            await bot.send_message(admin_id, f'@{message.from_user.username}: {message.text}')
        else:
            pass

Ошибка

Task exception was never retrieved
future: <Task finished name='Task-7' coro=<Dispatcher._process_polling_updates() done, defined at /data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/dispatcher/dispatcher.py:407> exception=ChatNotFound('Chat not found')>
Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/dispatcher/dispatcher.py", line 415, in _process_polling_updates    for responses in itertools.chain.from_iterable(await self.process_updates(updates, fast)):
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/dispatcher/dispatcher.py", line 235, in process_updates
    return await asyncio.gather(*tasks)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/dispatcher/handler.py", line 117, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/dispatcher/dispatcher.py", line 256, in process_update
    return await self.message_handlers.notify(update.message)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/dispatcher/handler.py", line 117, in notify
    response = await handler_obj.handler(*args, **partial_data)
  File "<string>", line 42, in msg
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/bot/bot.py", line 346, in send_message
    result = await self.request(api.Methods.SEND_MESSAGE, payload)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/bot/base.py", line 236, in request
    return await api.make_request(await self.get_session(), self.server, self.__token, method, data, files,
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/bot/api.py", line 140, in make_request
    return check_result(method, response.content_type, response.status, await response.text())
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/bot/api.py", line 115, in check_result
    exceptions.BadRequest.detect(description)
  File "/data/user/0/ru.iiec.pydroid3/files/aarch64-linux-android/lib/python3.9/site-packages/aiogram/utils/exceptions.py", line 140, in detect
    raise err(cls.text or description)
aiogram.utils.exceptions.ChatNotFound: Chat not found

Ответы

▲ 0Принят

Ошибка ChatNotFound('Chat not found') возникает, когда вы пытаетесь отправить сообщение в чат, который не существует.

await bot.send_message(admin_id, f'@{message.from_user.username}: {message.text}')

admin_id является множеством, а не идентификатором чата. Чтобы отправить сообщение в личные сообщения админа, нужно перебрать все идентификаторы в admin_id и отправить сообщение каждому. Например

for admin_id in admin_ids:
    await bot.send_message(admin_id, f'@{message.from_user.username}: {message.text}')