Документация по серверному API Loomio

/api/b3 предназначен для операций на уровне сервера. Для действий от имени пользователя Loomio используйте /api/b2.

Аутентификация

Задайте для B3_API_KEY секретный ключ длиной более 16 символов.

Передавайте ключ как токен Bearer:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users

Передавайте учётные данные только в заголовке Authorization. API-ключи в строке запроса или теле запроса отклоняются.

Объект пользователя

Ответы с данными пользователя имеют следующую структуру:

{
  "id": 123,
  "name": "Ada Lovelace",
  "username": "ada",
  "email": "ada@example.org",
  "active": true,
  "deactivated_at": null,
  "identities": [
    {
      "id": 456,
      "identity_type": "oauth",
      "uid": "external-123",
      "email": "ada@example.org",
      "name": "Ada Lovelace"
    }
  ]
}

Список пользователей

Получите список всех учётных записей пользователей в установке Loomio.

GET /api/b3/users

Пример

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users

Ответ:

{
  "users": []
}

Получение данных пользователя

Найдите пользователя по его ID в Loomio или внешнему идентификатору.

GET /api/b3/users/:id

GET /api/b3/users/identity/:identity_type/:uid

Примеры

По ID пользователя в Loomio:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

По внешнему идентификатору:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

Ответ:

{
  "user": {}
}

Обновление данных пользователя

Обновите поля профиля пользователя, найденного по его ID в Loomio или внешнему идентификатору.

PATCH /api/b3/users/:id

PATCH /api/b3/users/identity/:identity_type/:uid

Параметры

Поле Описание
name Отображаемое имя
username Имя пользователя в Loomio
email Адрес электронной почты

Примеры

По ID пользователя в Loomio:

curl -X PATCH \
  -H 'Authorization: Bearer YOUR_SERVER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"user":{"name":"Ada Lovelace","username":"ada","email":"ada@example.org"}}' \
  https://www.loomio.com/api/b3/users/123

По внешнему идентификатору:

curl -X PATCH \
  -H 'Authorization: Bearer YOUR_SERVER_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"user":{"name":"Ada Lovelace","username":"ada","email":"ada@example.org"}}' \
  https://www.loomio.com/api/b3/users/identity/oauth/external-123

Ответ содержит обновлённые данные пользователя:

{
  "user": {}
}

Деактивация пользователя

Деактивируйте учётную запись пользователя, найденную по его ID в Loomio или внешнему идентификатору.

POST /api/b3/users/:id/deactivate

POST /api/b3/users/identity/:identity_type/:uid/deactivate

Примеры

По ID пользователя в Loomio:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/deactivate

По внешнему идентификатору:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/deactivate

Ответ:

{
  "success": true,
  "user": {}
}

Повторная активация пользователя

Повторно активируйте деактивированную учётную запись пользователя, найденную по его ID в Loomio или внешнему идентификатору.

POST /api/b3/users/:id/reactivate

POST /api/b3/users/identity/:identity_type/:uid/reactivate

Примеры

По ID пользователя в Loomio:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate

По внешнему идентификатору:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/reactivate

Ответ:

{
  "success": true,
  "user": {}
}

Удаление личных данных пользователя

При удалении личных данных комментарии пользователя и другие созданные им материалы остаются в его группах. При этом удаляются известные персональные данные: имя, биография, фотография профиля, адрес электронной почты, учётные данные для входа, внешние идентификаторы и активные сеансы.

Это рекомендуемый способ удалить пользователя из Loomio.

POST /api/b3/users/:id/redact

POST /api/b3/users/identity/:identity_type/:uid/redact

Примеры

По ID пользователя в Loomio:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact

По внешнему идентификатору:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123/redact

Ответ:

{
  "success": true
}

Удаление пользователя

При удалении исчезают учётная запись пользователя и созданные им записи. Комментарии удаляются из обсуждений, голоса — из голосований. Связи в базе данных могут также привести к удалению групп, обсуждений, голосований и других записей, созданных пользователем.

Удаление может привести к значительной потере данных. Вместо него настоятельно рекомендуется обезличивание.

DELETE /api/b3/users/:id

DELETE /api/b3/users/identity/:identity_type/:uid

Примеры

По ID пользователя в Loomio:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

По внешнему идентификатору:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

Ответ:

{
  "success": true
}

Настройки синхронизации профиля через SSO

Используйте эти настройки, если полями профиля Loomio управляет другая система.

LOOMIO_DISABLE_EDIT_USER_PROFILE=1
# LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1

LOOMIO_DISABLE_EDIT_USER_PROFILE=1 запрещает пользователям самостоятельно изменять следующие поля:

Поле Примечания
name Управляется внешней синхронизацией
username Управляется внешней синхронизацией
email Управляется внешней синхронизацией
avatar_kind / uploaded_avatar Управляется внешней синхронизацией

Пользователи по-прежнему могут изменять локальные поля Loomio, например short_bio и location.

LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 обновляет name и email на основе данных входа через SSO. Если единственным источником этих обновлений должен быть внешний скрипт синхронизации, оставьте эту строку закомментированной или не задавайте переменную.

LOOMIO_SSO_FORCE_USER_ATTRS по-прежнему работает в существующих установках. Эта настройка запрещает пользователям изменять профиль и обновляет name и email при входе через SSO.