CLIУправление публикациями

CLI

Управление публикациями

Создавайте, планируйте, просматривайте, редактируйте и удаляйте посты из терминала: черновики, несколько сетей, медиа, пробный запуск и полное JSON-тело.

Каждый пост принадлежит заведению, поэтому передайте его id через -e. Найти его можно командой sofia establishments:list (см. аккаунты).

Создание постов

Опубликовать пост

Без даты пост выходит сразу.

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

Параметры

ПараметрНазначение
-e, --establishmentId заведения (обязательно, кроме случая с --json).
-p, --platformsСети через запятую (instagram,facebook,x,linkedin,tiktok); обязательно, кроме случая с --json.
-c, --contentТекст поста.
-s, --dateДата публикации (ISO 8601); без неё пост выходит сразу.
-m, --mediaId медиа или https-адреса через запятую.
-f, --formatФормат: post, reel, story, carousel…
-a, --accountПодключённый аккаунт, от имени которого публиковать.
--draftСохраняет черновик, который никуда не отправляется.
--dry-runПроверяет пост, ничего не записывая.
--idempotency-keyПовторяет тот же запрос как один.
-j, --jsonФайл с полным телом запроса; он заменяет параметры содержимого.

Запланировать пост

Передайте дату в формате ISO 8601 через -s, --date.

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'

Дальше: аккаунты и медиа.

Эта страница была полезной?