Документация серверного 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.