/dev/member/shared/load
Метод загружает профиль тестового пользователя в текущий профиль. Данные текущего пользователя будут перезаписаны данными выбранного shared_ профиля.
Адрес метода
/dev/member/shared/load
Требует сессию пользователя
Метод доступен только администраторам
Параметры
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| name | ДА | string | Имя тестового пользователя, начинающееся с shared_ |
Note
Импорт несёт profile_version самой фикстуры, поэтому после него метод сразу прогоняет цепочку миграций (ProfileMigration::migrate()) на версию из заголовка X-Game-Version — так же, как это делает авторизация. Отдельная переавторизация ради миграции импортированных данных не нужна.
Если profile_version фикстуры новее версии клиента, вернётся ошибка 10403 Client version is older than profile version с appreload: true — фикстура снята на более свежей сборке, чем та, что её загружает.
Note
Прогресс ачивок и ежедневных заданий импорт всегда переписывает целиком, а не дополняет. Если в загружаемом профиле секций objective_progress/objective_counters нет (старый экспорт, снятый до фичи), прогресс текущего игрока стирается, а отметка о миграции profile.1.0.5.objective_backfill не восстанавливается — счётчики пересобираются из импортированного профиля (уровни, скиллы, гача, лучшее комбо) на ближайшем прогоне цепочки миграций.
Так же ведёт себя member_stats (лучшее комбо): секция stats в блобе есть — переносится, нет — обнуляется. Иначе бэкфил досчитывал бы ачивку о комбо из боёв предыдущего владельца аккаунта.
Так же ведёт себя секция freebies (бесплатные предложения): она хранит отметки дня последнего получения, а не журнал, поэтому её отсутствие в блобе означает «ничего не забрано» и открывает все слоты. Иначе импортированный профиль унаследовал бы закрытые на сутки слоты от предыдущего владельца аккаунта.
Если секции есть, они импортируются, но сверяются с конфигом этого сервера: ачивки и задания с неизвестным objective_id, тиры с неизвестным порогом и счётчики с неизвестным именем отбрасываются. День дневных строк переносится на «сегодня» импортирующего игрока. Ротация заданий импортируется только целиком пригодной — если игрок ниже уровня разблокировки, или хотя бы одно задание/сундук ротации в конфиге отсутствует, ротация и дневные счётчики не переносятся и собираются заново. Нотификации о завершении (pendingCompletions) не переносятся: иначе чужие попапы отыгрались бы у импортирующего игрока пачкой.
Результат
{
"response": {
"success": 1,
"timestamp": 1758253785.916074
},
"update": {
"member": {
...,
}
}
}
Если профиль с таким именем не найден, возвращается ошибка 10002 Invalid parameter name.