CLI
管理帖子
在终端中创建、定时、列出、修改和删除帖子,支持草稿、多个网络、媒体、试运行,以及完整的 JSON 请求体内容。
每篇帖子都属于某个店铺,所以要用 -e 传入店铺 id。可以用 sofia establishments:list 查到(见账号)。
创建帖子
发布帖子
不指定日期时,帖子会立即发布。
sofia posts:create -e $ESTABLISHMENT_ID -p instagram -c "Tarte tatin du jour"选项
| 选项 | 作用 |
|---|---|
-e, --establishment | 门店 id(必填,使用 --json 时除外)。 |
-p, --platforms | 以逗号分隔的平台(instagram,facebook,x,linkedin,tiktok);必填,使用 --json 时除外。 |
-c, --content | 帖子文本。 |
-s, --date | 定时日期(ISO 8601);不填则立即发布。 |
-m, --media | 以逗号分隔的媒体 id 或 https 地址。 |
-f, --format | 格式:post、reel、story、carousel… |
-a, --account | 用于发布的已连接账号。 |
--draft | 保存一份不会发出的草稿。 |
--dry-run | 检查帖子,不写入任何内容。 |
--idempotency-key | 将同一请求重放为一次请求。 |
-j, --json | 包含完整请求体的文件;它会替代内容类选项。 |
定时发布
用 -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添加媒体
-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 为视频,其他为图片。如需先上传,请看媒体。
同时发布到多个网络
在 -p, --platforms 中用逗号分隔多个网络,每个网络都会收到相同的文字。
sofia posts:create -e $ESTABLISHMENT_ID -p instagram,facebook,linkedin -c "Tarte tatin du jour"试运行
--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 传入。它会取代内容类选项。
sofia posts:create --json post.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"
}列出帖子
可以用下列选项筛选列表。响应是分页的,见分页。
-e, --establishment:仅此店铺。--status:仅此状态的帖子。--limit和--cursor:每页数量和继续读取的位置。
sofia posts:list -e $ESTABLISHMENT_ID --status scheduled --limit 20按时间段筛选
--from 和 --to:日期范围。
sofia posts:list -e $ESTABLISHMENT_ID --from 2026-11-01 --to 2026-11-30按作者筛选
--created-by me|app:你自己写的帖子,或通过 API 创建的帖子。
sofia posts:list -e $ESTABLISHMENT_ID --created-by app读取和修改帖子
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 --json post.json更改帖子状态
posts:update --status 可将帖子从草稿改为定时,或反过来。
sofia posts:update $POST_ID --status draft
sofia posts:update $POST_ID --status scheduled -s 2026-11-08T09:00:00Z--status scheduled -s <日期>将草稿定时到该日期。--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'这个页面对你有帮助吗?