Loomio サーバー API ドキュメント

/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 のユーザー ID または外部の識別情報でユーザーを検索します。

GET /api/b3/users/:id

GET /api/b3/users/identity/:identity_type/:uid

使用例

Loomio のユーザー ID を使用する場合:

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 のユーザー ID または外部の識別情報で検索したユーザーのプロフィール項目を更新します。

PATCH /api/b3/users/:id

PATCH /api/b3/users/identity/:identity_type/:uid

パラメーター

項目 説明
name 表示名
username Loomio のユーザー名
email メールアドレス

使用例

Loomio のユーザー ID を使用する場合:

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 のユーザー ID または外部の識別情報で検索したユーザーアカウントを無効化します。

POST /api/b3/users/:id/deactivate

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

使用例

Loomio のユーザー ID を使用する場合:

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 のユーザー ID または外部 ID でユーザーアカウントを検索し、無効化されているアカウントを再有効化します。

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

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

例

Loomio のユーザー ID を使用する場合:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/reactivate

外部 ID を使用する場合:

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": {}
}

ユーザーの個人情報の削除

個人情報の削除では、ユーザーがグループ内に投稿したコメントやその他のコンテンツは保持されますが、名前、自己紹介、プロフィール写真、メールアドレス、ログイン認証情報、外部 ID、有効なセッションなど、個人の特定につながる既知の情報は削除されます。

Loomio からユーザーを削除する際は、この方法を推奨します。

POST /api/b3/users/:id/redact

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

例

Loomio のユーザー ID を使用する場合:

curl -X POST -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123/redact

外部 ID を使用する場合:

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 のユーザー ID を使用する場合:

curl -X DELETE -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/123

外部 ID を使用する場合:

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 外部同期で管理します

ユーザーは引き続き、short_bio や location などの Loomio 内で管理する項目を編集できます。

LOOMIO_SSO_UPDATE_USER_PROFILE_ON_LOGIN=1 を設定すると、SSO ログインデータから name と email を更新します。これらの更新を外部同期スクリプトのみで行う場合は、コメントアウトしたままにするか、設定しないでください。

既存のインストール環境では、引き続き LOOMIO_SSO_FORCE_USER_ATTRS を使用できます。この設定は、ユーザーによる編集を禁止するとともに、SSO ログイン時に name と email を更新します。

このページは機械翻訳されています。誤った言葉やわかりにくい表現がありましたら、contact@loomio.org までメールでお知らせください。修正します。