תיעוד 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.