registerUser, профиль, аватар, гео — что видит Platform admin.
Пользователи в админке
После Auth пользователь попадает в админку Platform через членство application_users (не через «сырой» список Auth).
Обязательно
После signup/signin вызовите:
await platform.registerUser({
platform: "web", // или android / ios / …
});
Без этого (и без других JWT-вызовов вроде registerDevice / getMyEntitlements) пользователь не появится в списке «Пользователи».
Профиль: имя и аватар
Передавайте публичный URL аватара и имя — они сразу видны в админке (список + карточка).
// при регистрации или сразу после
await platform.registerUser({
platform: "android",
display_name: "Иван",
avatar_url: "https://cdn.example.com/avatars/u1.jpg",
timezone: Intl.DateTimeFormat().resolvedOptions().timeZone,
acquisition_source: "google_play",
});
// когда пользователь сменил аватар / имя в приложении
await platform.updateUserProfile({
display_name: "Иван П.",
avatar_url: "https://cdn.example.com/avatars/u1-new.jpg",
});
Flutter:
await platform.registerUser(
platform: 'android',
displayName: 'Иван',
avatarUrl: 'https://cdn.example.com/avatars/u1.jpg',
timezone: 'Europe/Moscow',
);
await platform.updateUserProfile(
displayName: 'Иван П.',
avatarUrl: 'https://cdn.example.com/avatars/u1-new.jpg',
);
Auth metadata
Если пишете аватар в Supabase Auth:
await supabase.auth.updateUser({
data: { avatar_url: "https://…", full_name: "Иван" },
});
await platform.updateUserProfile({}); // подтянет metadata в application_users
Ключи metadata: avatar_url / picture / avatar, имя — full_name / name / display_name.
avatar_url должен быть публичным https://… (или data:image/…), не локальный путь на устройстве.
Гео (страна / город / timezone)
При первом контакте с API Platform заполняет:
| Поле | Источник |
|---|---|
country_code, city | IP запроса (Cloudflare или GeoIP) |
timezone | IP или поле timezone из SDK |
acquisition_source | только если передали в registerUser |
В админке показывается флаг страны. Поля first-seen не перетираются при каждой поездке/смене VPN.
VPN: GeoIP видит страну выхода VPN, не «домашнюю» страну пользователя. Надёжно восстановить дом по IP нельзя.
HTTP
POST /v1/applications/{app_code}/users/register
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"platform": "web",
"display_name": "Иван",
"avatar_url": "https://…",
"timezone": "Europe/Moscow",
"acquisition_source": "organic"
}
PATCH /v1/applications/{app_code}/users/me
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"display_name": "Иван П.",
"avatar_url": "https://…"
}
Далее: Чеклист · Справка API