Skip to content

SNS 投稿

対応 Issue: #7 SNS 投稿(X / Instagram)

要件「SNS 投稿機能」。撮影した写真 / タイムラプス動画を X (Twitter)Instagram に投稿する。

機能要件

  • 投稿対象の選択(写真 / タイムラプス動画)
  • キャプション・ハッシュタグ入力
  • X 投稿(画像 / 動画 + テキスト)
  • Instagram 投稿(画像 / リール)
  • OS 標準の**共有シート(Web Share API L2: navigator.share with files)**を汎用フォールバック

実装方針

X (Twitter)

  • PWA → Cloudflare Workers → X v2 API(メディアアップロード + 投稿)
  • API キーはサーバ側のみで保持。PWA には鍵を置かない
  • 鍵は Keychain / 環境変数経由X_POCOLOCO_*)。平文・ハードコード厳禁(プロジェクト規約)

Instagram

  • Graph API はビジネス / クリエイターアカウント必須で制約が多い
  • MVP は navigator.share(Web Share API L2、files 対応)で公式アプリへ受け渡し
  • 将来 Graph API 連携をオプション化

接続フローの注意

カメラ AP 接続中はインターネット不可。→ 画像を端末に DL 後、モバイル回線に戻して投稿するフローを UI で誘導。

セキュリティ

🔐 秘密鍵の取り扱いはプロジェクト規約を厳守。

  • .env への平文書き出し・コード内ハードコード禁止
  • macOS Keychain に保存し、環境変数経由でサーバ側のみ参照

リスク

  • X API のメディアサイズ / 動画長制限、レート制限
  • iOS の Web Share files 対応状況を実機検証

受け入れ条件

  • [ ] 写真 / 動画を X に投稿できる(サーバ経由・鍵秘匿)
  • [ ] Instagram へ共有シート経由で渡せる
  • [ ] API キーがクライアントに露出しない