Перейти к содержимому
FidmosДокументация

Server-to-Server API

Когда пользователя рядом нет, а профиль нужен — например, ваш сервер обходит своих пользователей и подтягивает их имена и аватары, — используйте Server-to-Server API. Он работает не от имени пользователя, а от имени вашего приложения: токен по гранту client_credentials со скоупом users.read.

POSThttps://id.fidmos.com/oauth/token
Content-Type: application/x-www-form-urlencoded

grant_type=client_credentials&
client_id=ВАШ_CLIENT_ID&
client_secret=ВАШ_CLIENT_SECRET&
scope=users.read

Ответ:

{
  "token_type": "Bearer",
  "expires_in": 3600,
  "access_token": "eyJ0eXAiOiJKV1Qi…",
  "scope": "users.read"
}

Дальше во все запросы к API — заголовок Authorization: Bearer <access_token>.

Ключ — это парный sub пользователя: 64 hex-символа, свой у каждого партнёра. Тот самый sub, что пришёл вам при входе пользователя — его и сохраняйте у себя.

POSThttps://id.fidmos.com/api/v1/users
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json

{ "sub": ["742ca3e3b6567052f880bb607d5b997b51be4ab0d70d2d52e55f0d5aac8bc24a", "6dac6a4bc0bea7efc53f751359422fa82ba801a13544f269c7d05c94abd7f6ea"] }

Ответ — карта «присланный ключ → краткий профиль». Ненайденные ключи в ответ не попадают; ключи ответа — ровно те, что вы прислали:

{
  "data": {
    "742ca3e3b6567052f880bb607d5b997b51be4ab0d70d2d52e55f0d5aac8bc24a": {
      "sub": "742ca3e3b6567052f880bb607d5b997b51be4ab0d70d2d52e55f0d5aac8bc24a",
      "avatar": "https://id.fidmos.com/avatar-blank.png",
      "full_name": "Иван Петров"
    },
    "6dac6a4bc0bea7efc53f751359422fa82ba801a13544f269c7d05c94abd7f6ea": {
      "sub": "6dac6a4bc0bea7efc53f751359422fa82ba801a13544f269c7d05c94abd7f6ea",
      "avatar": "https://id.fidmos.com/avatar-blank.png",
      "full_name": "Пётр Иванов"
    }
  }
}

За раз — до 1000 ключей. Если ни один не нашёлся, data приходит пустым списком.

GEThttps://id.fidmos.com/api/v1/users/742ca3e3b6567052f880bb607d5b997b51be4ab0d70d2d52e55f0d5aac8bc24a
Authorization: Bearer ACCESS_TOKEN

Одиночный ответ шире — с почтой и раздельными именем и фамилией:

{
  "data": {
    "sub": "742ca3e3b6567052f880bb607d5b997b51be4ab0d70d2d52e55f0d5aac8bc24a",
    "email": "user@example.com",
    "name": "Иван",
    "last_name": "Петров",
    "avatar": "https://id.fidmos.com/avatar-blank.png",
    "full_name": "Иван Петров"
  }
}
HTTP Когда
401 нет, истёк или неверен токен
403 у токена нет скоупа users.read
404 (только GET) ключ не найден или не похож на sub (отсекается маршрутом)
422 (только POST) ключ в пачке не похож на sub

Разбор форм ошибок — в справочнике ошибок.