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'这个页面对你有帮助吗?