החיפוש נטען רק כשמשתמשים בו. עיינו בכל הקטגוריות שלהלן.

חשבונות וסביבות עבודה

קבלת פרופיל משתמש

קריאת הפרופיל של המשתמש המחובר עצמו (שם תצוגה, אזור זמן, תמונת פרופיל, ערכת נושא); profile הוא null עד שקיים פרופיל.

POST /identity-api/user/profile/get

החוזה נבדק: · sha256:563d2d581da0ad29

סקירה

קריאת הפרופיל של המשתמש המחובר עצמו (שם תצוגה, אזור זמן, תמונת פרופיל, ערכת נושא); profile הוא null עד שקיים פרופיל.

תגובת HTTP מוצלחת עשויה לציין שבקשה התקבלה, ולא שהושלמה. בעבודת רקע, שמרו את המזהה שהוחזר ובדקו את אותה פעולה עד שתסתיים. פוסט שתוזמן או התקבל נחשב שפורסם רק כשהפלטפורמה מאשרת זאת; חריגה מזמן ההמתנה אצל הלקוח אינה קובעת מה התוצאה.

אימות והרשאות

סוגי אמצעי גישה מתקבלים
user_session, delegated_oauth, personal_access_token
יכולת מואצלת
agent:operate
תפקיד מינימלי בסביבת העבודה
בחוזה הזה אין תפקיד מינימלי בסביבת העבודה; בדיקות בעלות והרשאות עדיין חלות.
היקף הגישה
משאבים שהמשתמש הזה מורשה לגשת אליהם
נדרשת הסכמה לכל סביבות העבודה
לא
משנה מצב
לא
מתי הפעולה הושלמה
synchronous_http_response

אסימון יכול להשתמש רק בזכויות שיש לבעליו. כל בקשה בודקת חברות בסביבת העבודה, בעלות על משאבים, סביבות עבודה נבחרות ויכולות שהוענקו. הפרופילים core ו-full משנים אילו כלים מוצגים; הם אינם מעניקים גישה.

שדות הבקשה

שדה חובה נדרש בתוך אובייקט האב והענף הנבחר שלו. צאצא נדרש אינו הופך אב אופציונלי לנדרש. הכללים ושמות השדות שלהלן מועתקים מהחוזה.

שדות הבקשה
שדה / ענףסוג / חובהאילוצים
$objectחובה באובייקט האב
  • additionalProperties: false
include_versionbooleanרשות / פריט

רשות. true מוסיף את גרסת המשאב לתשובה.

—
JSON Schema מלא
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "include_version": {
      "description": "Optional. true adds the resource version to the answer.",
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

תגובה והשלמה

סטטוסי HTTP להצלחה: 200. מתי הפעולה הושלמה: synchronous_http_response.

תגובת HTTP מוצלחת עשויה לציין שבקשה התקבלה, ולא שהושלמה. בעבודת רקע, שמרו את המזהה שהוחזר ובדקו את אותה פעולה עד שתסתיים. פוסט שתוזמן או התקבל נחשב שפורסם רק כשהפלטפורמה מאשרת זאת; חריגה מזמן ההמתנה אצל הלקוח אינה קובעת מה התוצאה.

שדה חובה נדרש בתוך אובייקט האב והענף הנבחר שלו. צאצא נדרש אינו הופך אב אופציונלי לנדרש. הכללים ושמות השדות שלהלן מועתקים מהחוזה.

תגובה והשלמה
שדה / ענףסוג / חובהאילוצים
$objectחובה באובייקט האב—
actionstringחובה באובייקט האב
  • const: "get"
profileobject | nullחובה באובייקט האב—
profileanyOf 1objectחובה באובייקט האב—
profile.user_idanyOf 1stringחובה באובייקט האב
  • format: "uuid"
  • pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
profile.display_nameanyOf 1string | nullחובה באובייקט האב—
profile.display_nameanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.display_nameanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.timezoneanyOf 1string | nullחובה באובייקט האב—
profile.timezoneanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.timezoneanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.avatar_urlanyOf 1string | nullחובה באובייקט האב—
profile.avatar_urlanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.avatar_urlanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.avatar_preview_urlanyOf 1string | nullרשות / פריט—
profile.avatar_preview_urlanyOf 1 / anyOf 1stringרשות / פריט
  • format: "uri"
profile.avatar_preview_urlanyOf 1 / anyOf 2nullרשות / פריט—
profile.avatar_preview_expires_atanyOf 1string | nullרשות / פריט—
profile.avatar_preview_expires_atanyOf 1 / anyOf 1stringרשות / פריט
  • format: "date-time"
  • pattern: "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
profile.avatar_preview_expires_atanyOf 1 / anyOf 2nullרשות / פריט—
profile.themeanyOf 1string | nullחובה באובייקט האב—
profile.themeanyOf 1 / anyOf 1stringחובה באובייקט האב
  • enum: ["light","dark","system"]
profile.themeanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.created_atanyOf 1string | nullחובה באובייקט האב—
profile.created_atanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.created_atanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.updated_atanyOf 1string | nullחובה באובייקט האב—
profile.updated_atanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.updated_atanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.deletion_scheduled_atanyOf 1string | nullחובה באובייקט האב—
profile.deletion_scheduled_atanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.deletion_scheduled_atanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.hard_delete_atanyOf 1string | nullחובה באובייקט האב—
profile.hard_delete_atanyOf 1 / anyOf 1stringחובה באובייקט האב—
profile.hard_delete_atanyOf 1 / anyOf 2nullחובה באובייקט האב—
profile.versionanyOf 1integerרשות / פריט
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
profileanyOf 2nullחובה באובייקט האב—
JSON Schema מלא
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "action": {
      "type": "string",
      "const": "get"
    },
    "profile": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "user_id": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "display_name": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "timezone": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "avatar_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "avatar_preview_url": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "avatar_preview_expires_at": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "theme": {
              "anyOf": [
                {
                  "type": "string",
                  "enum": [
                    "light",
                    "dark",
                    "system"
                  ]
                },
                {
                  "type": "null"
                }
              ]
            },
            "created_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "updated_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "deletion_scheduled_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "hard_delete_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "version": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            }
          },
          "required": [
            "user_id",
            "display_name",
            "timezone",
            "avatar_url",
            "theme",
            "created_at",
            "updated_at",
            "deletion_scheduled_at",
            "hard_delete_at"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "action",
    "profile"
  ]
}

שגיאות וניסיונות חוזרים בטוחים

בדקו את סטטוס ה-HTTP ואת גוף התגובה. שגיאת אימות 400 עשויה להכיל ZodError; שגיאות מטפל משתמשות בשדות error, ‏message ו-code. שמרו request_id או x-request-id לאבחון, ללא אמצעי גישה. תקנו שגיאות גישה 401/403 לפני ניסיון חוזר, ופעלו לפי Retry-After עבור 429. אם תוצאת כתיבה אינה ודאית או שמוחזר 5xx, קראו תחילה את התוצאה הקיימת. השתמשו שוב במפתח אידמפוטנטיות רק במקומות הנתמכים; התנהגות הניסיון החוזר משתנה בין פעולות ואינה מבטיחה מסירה בדיוק פעם אחת.

מדריך לפתרון בעיות

דוגמאות

הדוגמאות משתמשות בערכים בדויים שנבדקו מול הסכמות. החליפו את המזהים בכאלה שאתם מורשים להשתמש בהם, את המדיה בנכסים מוכנים ואת התאריכים במועד הפרסום שאישרתם. בדקו את התאמת החשבון לפני שליחת כתיבה. העמוד הזה אינו שולח בקשות API.

הגדירו בשרת שלכם SOSOAPI_ACCESS_TOKEN לאמצעי גישה שהפעולה הזו מקבלת, והשאירו אותו מחוץ לקוד הדפדפן. עבור סוכן, השתמשו ב-sosoapi auth login כדי להיכנס דרך הדפדפן ולאפשר ל-CLI לרענן את אמצעי הגישה שלו.

request.json

{}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/identity-api/user/profile/get" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json

JavaScript

// Server-side JavaScript. Do not print tokens or credential-bearing responses.
const token = process.env.SOSOAPI_ACCESS_TOKEN;
if (!token) throw new Error("Set an accepted credential for this operation");
const response = await fetch("https://gqeshlawtcexsapabaui.supabase.co/functions/v1/identity-api/user/profile/get", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /identity-api/user/profile/get < request.json

דוגמת תגובה סינתטית

{
  "action": "get",
  "profile": null
}

MCP: sosoapi_get_user_profile