# 重試排程貼文

標準 URL： https://sosoapi.ai/zh-tw/docs/api/studio-api-scheduled-posts-retry

契約：sha256:563d2d581da0ad29

重試失敗的排程貼文，可選擇新的 scheduled_at。需要 expected_version。

POST /studio-api/scheduled-posts/retry

## 驗證與權限

- **接受的憑證類別：** user_session、delegated_oauth、personal_access_token

- **委派能力：** agent:publish

- **最低工作空間角色：** editor

- **存取範圍：** 此使用者獲准存取的資源

- **需要所有工作空間同意：** 否

- **更改狀態：** 是

- **操作完成時：** 終端發布結果

權杖只能使用其擁有者持有的權利。每次請求會檢查工作空間成員資格、資源擁有權、所選工作空間及已授予能力。core 與 full 設定檔只變更顯示的工具，不會授予存取權。

## 請求欄位

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
    },
    "expected_version": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    },
    "scheduled_at": {
      "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|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
    }
  },
  "required": [
    "id",
    "expected_version"
  ],
  "additionalProperties": false
}
```

## 回應與完成

成功 HTTP 狀態：200

成功 HTTP 回應可能表示請求已接受，並非已完成。背景工作請儲存回傳 ID，持續檢查同一操作直到完成。已排程或已接受的貼文，只有平台確認後才算已發布；用戶端逾時無法證明結果。

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "post": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"
        },
        "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)$"
        },
        "social_account_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"
            }
          ]
        },
        "platform": {
          "type": "string",
          "enum": [
            "instagram",
            "threads",
            "facebook",
            "youtube",
            "x"
          ]
        },
        "destination": {
          "type": "object",
          "properties": {
            "social_account_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"
                }
              ]
            },
            "platform": {
              "type": "string",
              "enum": [
                "instagram",
                "threads",
                "facebook",
                "youtube",
                "x"
              ]
            },
            "platform_user_id": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "account_label": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "social_account_id",
            "platform",
            "platform_user_id",
            "account_label"
          ]
        },
        "caption": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "hashtags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "media": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "image",
                  "video"
                ]
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "cover_url": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "cover_asset_id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "asset_id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "mime_type": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 160
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "preview_url": {
                "description": "Temporary authorized read URL; keep url as persisted Scheduled Post media identity.",
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "cover_preview_url": {
                "description": "Temporary authorized cover read URL; keep cover_url as persisted media identity.",
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uri"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "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"
                  }
                ]
              }
            },
            "required": [
              "kind",
              "url"
            ]
          }
        },
        "link_url": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "publish_options": {
          "type": "object",
          "properties": {
            "post_type": {
              "type": "string",
              "enum": [
                "TEXT",
                "LINK",
                "IMAGE",
                "MULTI_IMAGE",
                "VIDEO",
                "CAROUSEL",
                "REELS",
                "STORY_IMAGE",
                "STORY_VIDEO",
                "REPOST",
                "SHORT"
              ]
            },
            "location_id": {
              "type": "string",
              "minLength": 1
            },
            "share_to_feed": {
              "type": "boolean"
            },
            "collaborators": {
              "maxItems": 3,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              }
            },
            "first_comment": {
              "type": "string",
              "minLength": 1,
              "maxLength": 2200
            },
            "topic_tag": {
              "type": "string",
              "minLength": 1
            },
            "thumb_offset_ms": {
              "type": "integer",
              "minimum": 0,
              "maximum": 9007199254740991
            },
            "title": {
              "type": "string",
              "maxLength": 255
            },
            "youtube_privacy_status": {
              "type": "string",
              "enum": [
                "private",
                "unlisted",
                "public"
              ]
            },
            "youtube_category_id": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "youtube_contains_synthetic_media": {
              "type": "boolean"
            },
            "description": {
              "type": "string",
              "maxLength": 5000
            },
            "category_id": {
              "type": "string",
              "pattern": "^\\d+$"
            },
            "privacy_status": {
              "type": "string",
              "enum": [
                "private",
                "unlisted",
                "public"
              ]
            },
            "cancellation_mode": {
              "type": "string",
              "enum": [
                "DELETE",
                "UNSCHEDULE_KEEP_PRIVATE"
              ]
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "default_language": {
              "type": "string"
            },
            "localizations": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "license": {
              "type": "string",
              "enum": [
                "youtube",
                "creativeCommon"
              ]
            },
            "embeddable": {
              "type": "boolean"
            },
            "public_stats_viewable": {
              "type": "boolean"
            },
            "self_declared_made_for_kids": {
              "type": "boolean"
            },
            "contains_synthetic_media": {
              "type": "boolean"
            },
            "has_paid_product_placement": {
              "type": "boolean"
            },
            "recording_date": {
              "type": "string"
            },
            "notify_subscribers": {
              "type": "boolean"
            },
            "thumbnail_asset_id": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "surface_expectation": {
              "type": "string",
              "const": "SHORT"
            },
            "brand_partner": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "cover_asset_id": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "maximum": 9007199254740991
            },
            "audio_name": {
              "type": "string"
            },
            "trial_params": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "is_ai_generated": {
              "type": "boolean"
            },
            "branded_content_sponsor_ids": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "is_paid_partnership": {
              "type": "boolean"
            },
            "media_options": {
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "reply_to_id": {
              "type": "string"
            },
            "quote_post_id": {
              "type": "string"
            },
            "repost_target_id": {
              "type": "string"
            },
            "reply_control": {
              "type": "string"
            },
            "enable_reply_approvals": {
              "type": "boolean"
            },
            "link_attachment": {
              "type": "string",
              "format": "uri"
            },
            "poll_attachment": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "gif_attachment": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "text_attachment": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "text_entities": {
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "is_spoiler_media": {
              "type": "boolean"
            },
            "is_ghost_post": {
              "type": "boolean"
            },
            "allowlisted_country_codes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "crossreshare_to_ig": {
              "type": "boolean"
            },
            "crossreshare_to_ig_dark_mode": {
              "type": "boolean"
            },
            "auto_publish_text": {
              "type": "boolean"
            },
            "publication_mode": {
              "type": "string",
              "enum": [
                "PUBLISH",
                "DRAFT"
              ]
            },
            "backdated_time": {
              "type": "number"
            },
            "backdated_time_granularity": {
              "type": "string",
              "enum": [
                "year",
                "month",
                "day",
                "hour",
                "minute"
              ]
            },
            "place": {
              "type": "string"
            },
            "feed_targeting": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "targeting": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            "child_attachments": {
              "type": "array",
              "items": {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              }
            },
            "multi_share_end_card": {
              "type": "boolean"
            },
            "multi_share_optimized": {
              "type": "boolean"
            },
            "unpublished_content_type": {
              "type": "string"
            },
            "no_story": {
              "type": "boolean"
            },
            "crossposted_video_id": {
              "type": "string"
            },
            "spherical": {
              "type": "boolean"
            }
          }
        },
        "scheduled_at": {
          "type": "string"
        },
        "display_timezone": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "local_scheduled_at": {
          "anyOf": [
            {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}(?::\\d{2}(?:\\.\\d{1,6})?)?$"
            },
            {
              "type": "null"
            }
          ]
        },
        "schedule_timezone": {
          "anyOf": [
            {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            {
              "type": "null"
            }
          ]
        },
        "schedule_dst_disambiguation": {
          "anyOf": [
            {
              "type": "string",
              "enum": [
                "exact",
                "earlier",
                "later"
              ]
            },
            {
              "type": "null"
            }
          ]
        },
        "schedule_intent_state": {
          "type": "string",
          "enum": [
            "verified",
            "legacy_unverified"
          ]
        },
        "expires_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "status": {
          "type": "string",
          "enum": [
            "scheduled",
            "publishing",
            "published",
            "failed",
            "expired",
            "needs_reschedule",
            "cancelled",
            "deleted"
          ]
        },
        "version": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "automatic_retry_enabled": {
          "type": "boolean"
        },
        "delete_requested_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "published_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "deleted_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "provider_post_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "permalink": {
          "anyOf": [
            {
              "type": "string",
              "format": "uri"
            },
            {
              "type": "null"
            }
          ]
        },
        "created_at": {
          "type": "string"
        },
        "updated_at": {
          "type": "string"
        },
        "project_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"
            }
          ]
        },
        "batch_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"
            }
          ]
        },
        "source_ref": {
          "anyOf": [
            {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {}
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "workspace_id",
        "social_account_id",
        "platform",
        "destination",
        "caption",
        "hashtags",
        "media",
        "publish_options",
        "scheduled_at",
        "display_timezone",
        "expires_at",
        "status",
        "version",
        "automatic_retry_enabled",
        "delete_requested_at",
        "published_at",
        "deleted_at",
        "provider_post_id",
        "permalink",
        "created_at",
        "updated_at",
        "project_id",
        "batch_id",
        "source_ref"
      ]
    }
  },
  "required": [
    "post"
  ]
}
```

## 錯誤與安全重試

檢查 HTTP 狀態和回應內容。400 驗證錯誤可能包含 ZodError；處理常式錯誤使用 error、message 和 code 欄位。保留 request_id 或 x-request-id 以便診斷，但不要保留憑證。先解決 401/403 存取錯誤再重試，並在收到 429 時遵循 Retry-After。如寫入結果不確定或回傳 5xx，先讀取現有結果。僅在支援時重複使用冪等鍵；重試行為因操作而異，並不保證恰好傳送一次。

## 範例

這些範例使用已依結構描述檢查的虛構值。請將 ID 替換為您有權使用的 ID、將媒體替換為已就緒素材，並將日期替換為已確認的發布時間。提交寫入前，請檢查帳號資格。本頁不會傳送 API 請求。

在伺服器上將 SOSOAPI_ACCESS_TOKEN 設為此操作接受的憑證，且不要放入瀏覽器程式碼。代理程式請使用 sosoapi auth login 透過瀏覽器登入，並由 CLI 更新憑證。

request.json

```json
{
  "id": "11111111-1111-4111-8111-111111111111",
  "expected_version": 1
}
```

cURL

```bash
curl --request POST \
  "https://gqeshlawtcexsapabaui.supabase.co/functions/v1/studio-api/scheduled-posts/retry" \
  -H "Authorization: Bearer $SOSOAPI_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data-binary @request.json
```

JavaScript

```js
// 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/studio-api/scheduled-posts/retry", {
  method: "POST",
  headers: { "Content-Type": "application/json", Authorization: "Bearer " + token },
  body: JSON.stringify({
  "id": "11111111-1111-4111-8111-111111111111",
  "expected_version": 1
})
});
const result = await response.json();
// Check response.ok, the operation-specific body and completion state before continuing.
```

CLI

```bash
npx sosoapi api post /studio-api/scheduled-posts/retry < request.json
```

合成回應範例

```json
{
  "post": {
    "id": "11111111-1111-4111-8111-111111111111",
    "workspace_id": "11111111-1111-4111-8111-111111111111",
    "social_account_id": null,
    "platform": "instagram",
    "destination": {
      "social_account_id": null,
      "platform": "instagram",
      "platform_user_id": null,
      "account_label": null
    },
    "caption": null,
    "hashtags": [],
    "media": [],
    "publish_options": {},
    "scheduled_at": "example",
    "display_timezone": "UTC",
    "expires_at": null,
    "status": "scheduled",
    "version": 1,
    "automatic_retry_enabled": false,
    "delete_requested_at": null,
    "published_at": null,
    "deleted_at": null,
    "provider_post_id": null,
    "permalink": null,
    "created_at": "example",
    "updated_at": "example",
    "project_id": null,
    "batch_id": null,
    "source_ref": null
  }
}
```

## 相關工具與指南

MCP：sosoapi_retry_scheduled_post

[API 參考](https://sosoapi.ai/zh-tw/docs/api)
