SNS 投稿
対応 Issue: #7 SNS 投稿(X / Instagram)
要件「SNS 投稿機能」。撮影した写真 / タイムラプス動画を X (Twitter) と Instagram に投稿する。
機能要件
- 投稿対象の選択(写真 / タイムラプス動画)
- キャプション・ハッシュタグ入力
- X 投稿(画像 / 動画 + テキスト)
- Instagram 投稿(画像 / リール)
- OS 標準の**共有シート(Web Share API L2:
navigator.sharewith 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 キーがクライアントに露出しない