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'

接下来请看账号和媒体。

这个页面对你有帮助吗?