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