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