貼文與排程
取得 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 日期時間;不填則立即發布 |
status | draft 表示儲存為不會送出的草稿(此時不要帶 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。
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。請參閱分頁。