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

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

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

Задайте для 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": {}
}

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

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

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

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

Примеры

По идентификатору пользователя 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

Примеры

По идентификатору пользователя 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

Примеры

По идентификатору пользователя 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.

Эта страница переведена автоматически. Если вы заметили неверное или непонятное слово, напишите на contact@loomio.org, и мы исправим перевод.