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