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

/api/b3 はサーバー単位の操作に使用します。Loomio のユーザーアカウントとして行う操作には /api/b2 を使用します。

認証

B3_API_KEY に 16 文字を超える秘密の値を設定します。

キーをベアラートークンとして送信します。

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 または外部 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

外部 ID で検索:

curl -H 'Authorization: Bearer YOUR_SERVER_API_KEY' https://www.loomio.com/api/b3/users/identity/oauth/external-123

戻り値:

{
  "user": {}
}

ユーザーの更新

Loomio のユーザー ID または外部 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

外部 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/identity/oauth/external-123

更新後のユーザーが返されます。

{
  "user": {}
}

ユーザーの無効化

Loomio のユーザー ID または外部 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

外部 ID で検索:

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 を更新します。