Изменяется ли статус пользователя, когда он подает заявку на вступление в группу?

Я пытаюсь выяснить, как отследить статус пользователя, который отправил заявку на вступление в группу в Telegram и ждет подтверждения. В частности, меня интересует, изменяется ли какой-либо статус у пользователя, который отправил заявку, в этот момент ожидания подтверждения. Вот код, с которым я работаю: <br/> <pre><code class="python">user_status = await message.bot.get_chat_administrators(chat_id=chat_id) # получаем статус
if user_status == 'left': # проверяем, left - не состоит в группе.
.......</code></pre>
  • 2 марта 2025 г. 12:05
Ответы на вопрос 1
В Telegram API статус пользователя в группе (например, `administrator`, `member`, `restricted`, `left`, `kicked`) меняется в зависимости от его текущего состояния в группе. Когда пользователь подает заявку на вступление в закрытую группу, у него не изменяется статус в самой группе до тех пор, пока его заявка не будет обработана администратором.

Таким образом, если пользователь отправил заявку на вступление в группу, его статус остается на уровне `left`, пока администратор не одобрит заявку. После одобрения пользователю будет присвоен статус, соответствующий его роли в группе (например, `member`).

В вашем коде, если вам нужно проверить статус пользователя, который подал заявку на вступление, вы можете использовать такой подход:

1. Проверьте текущий статус пользователя в группе (он будет `left`).
2. Учитывайте, что поданная заявка на вступление не меняет этот статус.
3. После подтверждения администратором пользователь получит новый статус (например, `member`).

Пример кода:

```python
user_status = await message.bot.get_chat_member(chat_id=chat_id, user_id=user_id)  # получаем статус пользователя

if user_status.status == 'left':
    # Пользователь подал заявку, но еще не состоит в группе
    # Здесь можно обработать ситуацию, когда заявка ожидает одобрения
    await message.reply("Ваша заявка на вступление в группу отправлена и ожидает подтверждения.")
elif user_status.status == 'member':
    # Пользователь уже является членом группы
    await message.reply("Вы уже состоите в группе.")
```

Таким образом, можно отслеживать, что пользователь ждет одобрения, когда его статус равен `left`.
Похожие вопросы