CLI管理貼文

CLI

管理貼文

在終端機中建立、排程、列出、修改和刪除貼文,支援草稿、多個網路、媒體、試執行,以及完整的 JSON 請求主體內容。

每篇貼文都屬於某個店家,所以要用 -e 傳入店家 id。可以用 sofia establishments:list 查到(見帳號)。

發佈貼文

不指定日期時,貼文會立即發佈。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour"

排程發佈

用 -s, --date 傳入 ISO 8601 格式的日期。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" -s 2026-11-07T09:00:00Z

儲存草稿

--draft 只儲存貼文,不發佈也不排程。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Brunch ce samedi" --draft

同時發佈到多個網路

在 -p, --platforms 中用逗號分隔多個網路,每個網路都會收到相同的文字。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram,facebook,linkedin -c "Tarte tatin du jour"

媒體、格式和帳號也是共用的。可以用這些選項來調整貼文:

  • -c, --content:貼文的文字。
  • -f, --format:格式(post、reel、story、carousel 等)。
  • -a, --account:用於發佈的已連結帳號。

加入媒體

-m, --media 接受媒體庫中的媒體 id 或 https 網址,用逗號分隔。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
  -m $MEDIA_ID,https://images.example.com/tarte-tatin.jpg

對於網址,類型由副檔名決定:mp4、mov、webm、m4v 為影片,其他為圖片。如需先上傳,請看媒體。

試執行

--dry-run 會依各網路的規則檢查貼文,但不會發佈任何內容。見試執行。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" --dry-run

冪等性

用 --idempotency-key 可以安全地重複執行指令:同一個金鑰只會得到同一篇貼文,不會重複。見冪等性。

sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour" \
  --idempotency-key brunch-2026-11-07

從檔案讀取完整請求主體

如果要為每個網路寫不同的文字、附多個媒體或一次設定排程,可以把完整請求主體寫進檔案,用 -j, --json 傳入。它會取代內容類選項。

{
  "establishmentId": "$ESTABLISHMENT_ID",
  "targets": [
    {
      "platform": "instagram",
      "text": "Tarte tatin du jour",
      "media": [{ "id": "$MEDIA_ID" }],
      "format": "post"
    },
    {
      "platform": "tiktok",
      "text": "Tarte tatin du jour",
      "media": [{ "url": "https://images.example.com/tarte-tatin.mp4", "type": "video" }]
    }
  ],
  "scheduledAt": "2026-11-07T09:00:00Z",
  "status": "scheduled"
}
sofia posts:create --json post.json

列出貼文

可以用下列選項篩選清單。回應是分頁的,見分頁。

  • -e, --establishment:僅此店家。
  • --status:僅此狀態的貼文。
  • --from 和 --to:日期範圍。
  • --created-by me|app:你自己寫的貼文,或透過 API 建立的貼文。
  • --limit 和 --cursor:每頁數量和繼續讀取的位置。
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --from 2026-11-01 --to 2026-11-30 --limit 20

查看、修改、刪除

posts:update 可以修改日期(-s)、狀態(draft 或 scheduled),或用 -j 修改整個請求主體。

sofia posts:get $POST_ID
sofia posts:update $POST_ID -s 2026-11-08T09:00:00Z
sofia posts:update $POST_ID --status draft
sofia posts:delete $POST_ID

搭配 jq 撰寫腳本

因為輸出是 JSON,所以 jq 能取出你需要的內容:id、狀態、下一頁的游標。

sofia posts:list -e $ESTABLISHMENT_ID --status scheduled | jq '.data[] | {id, status}'
sofia posts:list -e $ESTABLISHMENT_ID | jq -r '.nextCursor'

接下來請看帳號和媒體。

這個頁面對你有幫助嗎?