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