貼文與排程

取得 API 金鑰

一則貼文屬於一家門市,發往一個或多個網路,也就是它的目標(targets)。每個目標都有自己的文字、媒體、格式和狀態。

貼文的請求本文

欄位意義
establishmentId負責發布的門市(GET /v1/establishments)
targets[]每個網路一項:platform、text,以及選用的 media、format 和 accountId
targets[].media[]媒體庫中的媒體(依 id),或公開的 https url 加上它的 type(image 或 video)
targets[].accountId門市在該網路有多個帳號時要使用的帳號
scheduledAt未來的 ISO 8601 日期時間;不填則立即發布
statusdraft 表示儲存為不會送出的草稿(此時不要帶 scheduledAt)

狀態

狀態意義
draft已儲存,不會送出
scheduled將在 scheduledAt 送出
publishing正在傳送到網路
published已上線,附有 permalink
failed被網路拒絕;原因見 error
sent_to_inbox已傳送到該網路的應用程式,由擁有者在其中完成發布(TikTok)

貼文的 status 彙整了它各個目標的狀態。當一個網路已發布而另一個失敗時,為 partial。

送出前編輯

PATCH /v1/posts/{id} 可重寫目標、修改 scheduledAt 或變更 status:draft 會移除時間但保留內容,scheduled 會重新排程。一旦有網路已送出該貼文,就會回傳 409 post_not_editable。

bash
curl -X PATCH https://api.sofia-post.com/api/v1/posts/$POST_ID \
  -H "Authorization: Bearer $SOFIA_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"status":"scheduled","scheduledAt":"2026-11-20T09:00:00Z"}'

刪除

DELETE /v1/posts/{id} 回傳 204。當某個網路正在傳送該貼文時,回傳 409 post_in_flight:請稍後重試。

列出貼文

GET /v1/posts 依由新到舊的順序列出權杖可存取的所有貼文,可依 establishmentId、status、from、to 和 createdBy(me 或 app)篩選。只要貼文至少有一個網路處於該狀態,就符合 status。請參閱分頁。