CLI投稿の管理

CLI

投稿の管理

ターミナルから投稿の作成、予約、一覧、編集、削除ができます。下書き、複数ネットワーク、メディア、ドライラン、JSON 本文にも対応します。

投稿は必ず店舗に属するので、-e で店舗 ID を渡します。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 の URL をカンマ区切りで渡します。

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

URL の場合、種類は拡張子で決まります。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'

次はアカウントとメディアです。

このページは役に立ちましたか?