TakeUserList
TakeUserList — загружает список пользователей в целевые переменные для массовой обработки.
📝 Назначение
В отличие от LoadUserList, которая просто загружает массив в ${load}, TakeUserList помещает список пользователей в целевую переменную (${target.from}), что позволяет отправлять сообщения или выполнять действия автоматически для каждого пользователя из списка.
Когда это нужно:
- Массовая рассылка сообщений всем пользователям из списка
- Выполнение действия для каждого пользователя (например, выдача бонуса)
- Обработка списка пользователей в цикле
⚠️ Важно: Реакция загружает первые 200 пользователей из списка. Если в списке больше 200 участников, остальные не будут обработаны.
⚙️ Параметры
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| Список пользователей | Выбор из списка | ✅ Да | Имя списка для загрузки |
| Устанавливать chat | Boolean | ❌ Нет | Заменять target.chat на target.from |
📍 Результат
После выполнения реакции данные становятся доступны в целевых переменных:
| Переменная | Описание |
|---|---|
${target.from} |
Массив пользователей из списка (максимум 200) |
${target.chat} |
Информация о чате (или дубликат target.from при включённой опции) |
🔧 Опция «Устанавливать chat»
По умолчанию (опция включена):
${target.chat}— информация о чате, где произошло событие${target.from}— массив пользователей из списка
При включённой опции:
${target.chat}дублирует информацию из${target.from}(каждый пользователь становится «чатом»)- Это удобно для массовых рассылок, где нужно отправить сообщение каждому пользователю
Пример структуры target по умолчанию:
{
"chat": {
"id": -1001798752916,
"title": "Group Testing",
"type": "supergroup"
},
"from": {
"first_name": "Example",
"id": 7042623778,
"is_bot": false,
"last_name": "07"
}
}
Пример структуры target при включённой опции:
{
"chat": {
"first_name": "Example",
"id": 7042623778,
"last_name": "07",
"type": "user"
},
"from": {
"first_name": "Example",
"id": 7042623778,
"is_bot": false,
"last_name": "07"
}
}
📊 Ограничения
| Ограничение | Значение |
|---|---|
| Максимум пользователей за один вызов | 200 пользователей |
| При превышении | Остальные пользователи не загружаются |
💡 Совет: Если в списке больше 200 пользователей, разбейте рассылку на несколько этапов или используйте
LoadUserListдля получения полного списка.
🧪 Примеры использования
Пример 1: Массовая рассылка сообщений
Задача: Отправить сообщение всем пользователям из списка contest_participants.
Реакции:
TakeUserList→Список пользователей:contest_participants,Устанавливать chat:trueSendMessage→ (автоматически для каждого пользователя) текст:Вы участвуете в розыгрыше!
Пример 2: Выдача бонуса всем участникам списка
Задача: Начислить 100 бонусов каждому пользователю из списка vip_users.
Реакции:
TakeUserList→Список пользователей:vip_usersAddVarCloud→ (для каждого пользователя)value:100
Пример 3: Проверка количества пользователей перед рассылкой
Задача: Перед рассылкой проверить, есть ли пользователи в списке.
Реакции:
TakeUserList→Список пользователей:contest_participantsTriggerFolderс условием: проверка, пуст ли${target.from}
- Внутри (если не пуст): рассылка
- Иначе:
SendMessage→Список пуст
🔄 Особенности поведения
| Ситуация | Поведение |
|---|---|
| Список пуст | ${target.from} будет пустым массивом |
| Список не существует | Реакция вызовет ошибку |
| В списке более 200 пользователей | Загружаются только первые 200 |
| Опция «Устанавливать chat» включена | target.chat дублирует target.from |
🔗 Связанные реакции
| Реакция | Назначение |
|---|---|
| AddToUserList | Добавить пользователя в список |
| DelFromUserList | Удалить пользователя из списка |
| LoadUserList | Загрузить полный список (без ограничения 200) |
| ClearUserList | Очистить список |
🔗 Связанные разделы
| Раздел | Описание |
|---|---|
| Списки пользователей | Общая информация о списках |
| Целевые переменные | Работа с target.from и target.chat |