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

מדיה ונכסים

קבלת סטטוס ייבוא נכס

קריאת ייבוא לפי import_id. לצורך פרסום, העבירו include_asset=true: תוצאה במצב ready כוללת את מזהה הנכס הרשום, הסוג ו-asset_url יציב, וחוסכת קריאת get_asset נפרדת. אי אפשר לתזמן נכסים ממתינים או חסרים. לעולם אין להשתמש ב-URL המקור או התצוגה המקדימה כזהות המדיה. אם הייבוא תקוע, קראו sosoapi_job_status עם job_id; לעולם אין להתחיל ייבוא כפול.

POST /assets-api/imports/status

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

סקירה

קריאת ייבוא לפי import_id. לצורך פרסום, העבירו include_asset=true: תוצאה במצב ready כוללת את מזהה הנכס הרשום, הסוג ו-asset_url יציב, וחוסכת קריאת get_asset נפרדת. אי אפשר לתזמן נכסים ממתינים או חסרים. לעולם אין להשתמש ב-URL המקור או התצוגה המקדימה כזהות המדיה. אם הייבוא תקוע, קראו sosoapi_job_status עם job_id; לעולם אין להתחיל ייבוא כפול.

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

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

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

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

שדות הבקשה

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

שדות הבקשה
שדה / ענףסוג / חובהאילוצים
$objectחובה באובייקט האב
  • additionalProperties: false
workspace_idstringחובה באובייקט האב
  • 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)$"
import_idstringחובה באובייקט האב
  • 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)$"
include_assetbooleanרשות / פריט—
JSON Schema מלא
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "workspace_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)$"
    },
    "import_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)$"
    },
    "include_asset": {
      "type": "boolean"
    }
  },
  "required": [
    "workspace_id",
    "import_id"
  ],
  "additionalProperties": false
}

תגובה והשלמה

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

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

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

תגובה והשלמה
שדה / ענףסוג / חובהאילוצים
$objectחובה באובייקט האב—
importobjectחובה באובייקט האב—
import.idstringחובה באובייקט האב
  • 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)$"
import.statusstringחובה באובייקט האב
  • enum: ["queued","importing","needs_repair","ready","asset_purged","failed"]
import.job_idstring | nullחובה באובייקט האב—
import.job_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)$"
import.job_idanyOf 2nullחובה באובייקט האב—
import.asset_idinteger | nullחובה באובייקט האב—
import.asset_idanyOf 1integerחובה באובייקט האב
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
import.asset_idanyOf 2nullחובה באובייקט האב—
import.completed_asset_idinteger | nullחובה באובייקט האב—
import.completed_asset_idanyOf 1integerחובה באובייקט האב
  • maximum: 9007199254740991
  • exclusiveMinimum: 0
import.completed_asset_idanyOf 2nullחובה באובייקט האב—
import.asset_purged_atstring | nullחובה באובייקט האב—
import.asset_purged_atanyOf 1stringחובה באובייקט האב—
import.asset_purged_atanyOf 2nullחובה באובייקט האב—
import.source_urlstringחובה באובייקט האב
  • format: "uri"
import.final_urlstring | nullחובה באובייקט האב—
import.final_urlanyOf 1stringחובה באובייקט האב
  • format: "uri"
import.final_urlanyOf 2nullחובה באובייקט האב—
import.object_keystring | nullחובה באובייקט האב—
import.object_keyanyOf 1stringחובה באובייקט האב
  • minLength: 1
import.object_keyanyOf 2nullחובה באובייקט האב—
import.content_typestring | nullחובה באובייקט האב—
import.content_typeanyOf 1stringחובה באובייקט האב
  • minLength: 1
import.content_typeanyOf 2nullחובה באובייקט האב—
import.byte_sizeinteger | nullחובה באובייקט האב—
import.byte_sizeanyOf 1integerחובה באובייקט האב
  • minimum: 0
  • maximum: 9007199254740991
import.byte_sizeanyOf 2nullחובה באובייקט האב—
import.content_sha256string | nullחובה באובייקט האב—
import.content_sha256anyOf 1stringחובה באובייקט האב
  • pattern: "^[0-9a-f]{64}$"
import.content_sha256anyOf 2nullחובה באובייקט האב—
import.media_probereference | nullחובה באובייקט האב—
import.media_probeanyOf 1string | number | boolean | null | array | objectחובה באובייקט האב—
import.media_probeanyOf 1 / anyOf 1stringחובה באובייקט האב—
import.media_probeanyOf 1 / anyOf 2numberחובה באובייקט האב—
import.media_probeanyOf 1 / anyOf 3booleanחובה באובייקט האב—
import.media_probeanyOf 1 / anyOf 4nullחובה באובייקט האב—
import.media_probeanyOf 1 / anyOf 5arrayחובה באובייקט האב—
import.media_probe[]anyOf 1 / anyOf 5referenceרשות / פריט
  • #/$defs/__schema0
import.media_probeanyOf 1 / anyOf 6objectחובה באובייקט האב
  • additionalProperties: {"$ref":"#/$defs/__schema0"}
import.media_probe.*anyOf 1 / anyOf 6referenceרשות / פריט
  • #/$defs/__schema0
import.media_probeanyOf 2nullחובה באובייקט האב—
import.error_messagestring | nullחובה באובייקט האב—
import.error_messageanyOf 1stringחובה באובייקט האב—
import.error_messageanyOf 2nullחובה באובייקט האב—
import.created_atstringחובה באובייקט האב—
import.completed_atstring | nullחובה באובייקט האב—
import.completed_atanyOf 1stringחובה באובייקט האב—
import.completed_atanyOf 2nullחובה באובייקט האב—
assetobject | nullרשות / פריט—
assetanyOf 1objectרשות / פריט—
asset.idanyOf 1integer | stringחובה באובייקט האב—
asset.idanyOf 1 / anyOf 1integerחובה באובייקט האב
  • minimum: -9007199254740991
  • maximum: 9007199254740991
asset.idanyOf 1 / anyOf 2stringחובה באובייקט האב—
asset.asset_typeanyOf 1stringחובה באובייקט האב
  • enum: ["text","image","video","audio"]
asset.asset_urlanyOf 1string | nullחובה באובייקט האב—
asset.asset_urlanyOf 1 / anyOf 1stringחובה באובייקט האב—
asset.asset_urlanyOf 1 / anyOf 2nullחובה באובייקט האב—
assetanyOf 2nullרשות / פריט—
JSON Schema מלא
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "import": {
      "type": "object",
      "properties": {
        "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)$"
        },
        "status": {
          "type": "string",
          "enum": [
            "queued",
            "importing",
            "needs_repair",
            "ready",
            "asset_purged",
            "failed"
          ]
        },
        "job_id": {
          "anyOf": [
            {
              "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)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "asset_id": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "completed_asset_id": {
          "anyOf": [
            {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "asset_purged_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "source_url": {
          "type": "string",
          "format": "uri"
        },
        "final_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "object_key": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "content_type": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1
            },
            {
              "type": "null"
            }
          ]
        },
        "byte_size": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            {
              "type": "null"
            }
          ]
        },
        "content_sha256": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^[0-9a-f]{64}$"
            },
            {
              "type": "null"
            }
          ]
        },
        "media_probe": {
          "anyOf": [
            {
              "$ref": "#/$defs/__schema0"
            },
            {
              "type": "null"
            }
          ]
        },
        "error_message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "completed_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "status",
        "job_id",
        "asset_id",
        "completed_asset_id",
        "asset_purged_at",
        "source_url",
        "final_url",
        "object_key",
        "content_type",
        "byte_size",
        "content_sha256",
        "media_probe",
        "error_message",
        "created_at",
        "completed_at"
      ]
    },
    "asset": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "anyOf": [
                {
                  "type": "integer",
                  "minimum": -9007199254740991,
                  "maximum": 9007199254740991
                },
                {
                  "type": "string"
                }
              ]
            },
            "asset_type": {
              "type": "string",
              "enum": [
                "text",
                "image",
                "video",
                "audio"
              ]
            },
            "asset_url": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "id",
            "asset_type",
            "asset_url"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "import"
  ],
  "$defs": {
    "__schema0": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "number"
        },
        {
          "type": "boolean"
        },
        {
          "type": "null"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#/$defs/__schema0"
          }
        },
        {
          "type": "object",
          "propertyNames": {
            "type": "string"
          },
          "additionalProperties": {
            "$ref": "#/$defs/__schema0"
          }
        }
      ]
    }
  }
}

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

בדקו את סטטוס ה-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

{
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "import_id": "11111111-1111-4111-8111-111111111111"
}

cURL

curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/assets-api/imports/status" \
  -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/assets-api/imports/status", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "workspace_id": "11111111-1111-4111-8111-111111111111",
  "import_id": "11111111-1111-4111-8111-111111111111"
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.

CLI

npx sosoapi api post /assets-api/imports/status < request.json

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

{
  "import": {
    "id": "11111111-1111-4111-8111-111111111111",
    "status": "queued",
    "job_id": null,
    "asset_id": null,
    "completed_asset_id": null,
    "asset_purged_at": null,
    "source_url": "https://example.com/media.png",
    "final_url": null,
    "object_key": null,
    "content_type": null,
    "byte_size": null,
    "content_sha256": null,
    "media_probe": null,
    "error_message": null,
    "created_at": "example",
    "completed_at": null
  }
}

MCP: sosoapi_get_asset_import_status