Документація серверного 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": []
}
Перегляд користувача
Знайдіть користувача за його ідентифікатором у Loomio або зовнішнім ідентифікатором.
GET /api/b3/users/:id
GET /api/b3/users/identity/:identity_type/:uid
Приклади
За ідентифікатором користувача в 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": {}
}
Оновлення користувача
Оновіть поля профілю користувача, знайденого за ідентифікатором у Loomio або зовнішнім ідентифікатором.
PATCH /api/b3/users/:id
PATCH /api/b3/users/identity/:identity_type/:uid
Параметри
| Поле | Опис |
|---|---|
name |
Відображуване ім’я |
username |
Ім’я користувача Loomio |
email |
Адреса електронної пошти |
Приклади
За ідентифікатором користувача в 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": {}
}
Деактивація користувача
Деактивуйте обліковий запис користувача, знайдений за ідентифікатором у Loomio або зовнішнім ідентифікатором.
POST /api/b3/users/:id/deactivate
POST /api/b3/users/identity/:identity_type/:uid/deactivate
Приклади
За ідентифікатором користувача в 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.