← ダッシュボードに戻る

📘 SNS連携セットアップガイド

各SNSを sns-auto-poster に繋ぐ手順。基本は「ワンクリック連携」が用意されているSNSから始めるのがおすすめ。

🎯 SNSごとの難易度
LinkedInかんたん noteかんたん Blueskyかんたん Facebookふつう Threadsふつう WordPressふつう はてなブログふつう X (Twitter)ふつう (¥600〜/月)

♾️ 自律改善ループの使い方
自律改善ループとはPro限定 /insights ページの見方 重要投稿モード ネタ候補の活用

📹 動画投稿
動画投稿の概要 動画の添付手順 媒体別の制限一覧 動画投稿のトラブル対処

📹 動画投稿の概要

7媒体すべてに mp4 動画を投稿できます。各媒体の API・仕様に合わせて自動で変換・アップロードします。

対応形式

💡 初回テスト推奨: 10〜15秒の短いmp4 を Bluesky か Facebook で試すのが最速で動作確認できます。

📝 動画の添付手順

  1. ダッシュボード → ✨ AI Generate でドラフトを通常通り作成
  2. 📝 Drafts タブに移動 → 作成したドラフトの行に 📹 動画 ボタンが見える
  3. クリック → ファイル選択ダイアログ → mp4 を選ぶ
  4. サーバーが Supabase Storage (video-assets バケット) に保存 + DBに記録
  5. サムネが動画プレビュー (▶ オーバーレイ付き) に変わる
  6. Approve → 予約 or Post Now で実投稿
⚠️ 1ドラフト = 1メディア です。動画を添付すると既存の画像は上書き削除されます (媒体仕様の都合)。

NOTE は特殊

NOTE は ローカル PC の Playwright runner が15分おきに拾います。Approve しても即時投稿されません。サーバー側 (Railway) からは NOTE 投稿は走りません。

📓 note 連携 セクションの ③ で Task Scheduler 登録手順を参照してください。

📊 媒体別の制限一覧

媒体最大サイズ最大長さ形式備考
Bluesky100MB60秒mp4 (H.264)video.bsky.app で非同期変換
Facebook10GB4時間mp4 / movPage 投稿のみ
Threads1GB5分mp4 (H.264)Supabase 経由でURL渡し
X (Twitter)512MB140秒 (Basic)mp4 (H.264)chunked upload (4MB単位)
LinkedIn200MB10分mp4 (H.264)register→PUT→AVAILABLE 待ち
WordPressサーバー次第制限なしmp4 推奨本文先頭に <video> 埋め込み
notenote仕様note仕様mp4 推奨Playwright で本文中に挿入
💡 横断運用のコツ: 全媒体に同じ動画を投げる場合、「60秒 / 100MB以内 / mp4 H.264」 を共通仕様にしておけば全媒体で安全に通ります。Bluesky の60秒上限が最厳しいため。

🆘 動画投稿のトラブル対処

症状原因対処
「too_large」エラー100MB 超圧縮ツール (HandBrake等) で 100MB 以下に
「duration_exceeds_max」10分超10分以内にトリミング
「video too long: Xs (max Ys)」媒体別の長さ制限超え媒体別制限表を確認してトリム
「video processing timeout」媒体側の変換が3分超過もう一度試す。続くなら短い動画で検証
Bluesky 「getServiceAuth failed」App Password 失効 or 動画機能未対応 PDSApp Password を再生成、bsky.social の標準 PDS を使う
LinkedIn 「video PUT failed」access token のスコープ不足OAuth で w_member_social 確実に取得済か確認
X 「FINALIZE failed」動画 spec 違反 (codec/aspect 等)HandBrake で「X 用」プリセット出力
NOTE 「動画アップロード input が見つからない」note エディタの UI が変更storage/note-runs/ のスクショで現状確認、セレクタ更新

♾️ 自律改善ループとはPro限定

Resonate Post の 最大の特徴 がこれ。投稿するたびに AI が反響を学習して、来週の生成プロンプトに自動反映するループ。
運用するほど発信が磨かれていきます。

仕組み

1. 投稿            → 7媒体 (X / LinkedIn / Bluesky / Threads / FB / WP / NOTE)
2. 反響を毎時計測  → いいね / コメント / 保存 / シェア / 閲覧
3. 日曜 23:30 UTC  → AI が「効いた要素」「避ける要素」を抽出 → WeeklyInsight に保存
4. 月曜 08:30 JST  → 週次サマリーメールで通知
5. 以降の生成     → systemPrompt に自動注入されて、次週の投稿に反映
💡 Pro プラン もしくは 所有者特権 email でのみ稼働します。Free / Lite / Standard は無効。

📊 /insights ページの見方

ダッシュボード右上の ♾️ Insights ボタンから開けます。3つのセクションで構成:

① ステータスサマリー (4カード)

② 過去のインサイト一覧

プラットフォーム別カード:

💡 ⚡今すぐ分析 ボタンで cron を待たず手動キックも可能。

③ 📡 読者が次に聞きたがってる話題

過去30日のあなたの投稿のうち、以下のいずれかが「異常に高い」投稿から続編ネタを自動抽出:

各カードの 📝 この角度でドラフト作成 ボタンで、その角度のままダッシュボードの Generate タブに飛んで投稿作成できます。

④ 📅 14日以内のイベント・先回りネタ

祝日・季節・ビジネス周期 (年度末・ボーナス時期 etc) を AI があなたのテーマと結びつけて角度提案。「桜が綺麗」じゃなくて「桜と起業3年目で気付くこと」のような切り口を出します。

⚡ 重要投稿モード (マルチAI討論)

ダッシュボードの AI Generate タブにある ⚡ 重要投稿モード チェックボックス。絶対外したくない投稿だけに使ってください。

4段パイプライン

Stage 1: OpenAI が初期草案を3つの角度で生成
Stage 2: 別 AI (Claude / Gemini) が独立した視点で辛口批評
Stage 3: OpenAI が批評を踏まえて統合・書き直し
Stage 4: 「重要投稿の格」最終仕上げ (フック最強化、無駄削除)

コストとレイテンシ

項目通常生成重要投稿モード
所要時間約10秒約15〜25秒
API コスト$0.005$0.02 (4倍)
⚠️ 全投稿で ON にしないでください。AI 月間消費量を一気に食い潰します。重要な発信 (採用 / リリース / プレゼン直前) だけで使うのが正解です。

使い方

  1. ダッシュボード → ✨ AI Generate タブ
  2. テーマ・切り口を入力
  3. 重要投稿モード のチェックを ON
  4. 「生成 (プレビュー)」をクリック
  5. 結果カードの下に ⚡ マルチAI討論の中身を見る という折りたたみセクションが出る → クリックで Stage 1〜4 の中身が全部見られる

💡 ネタ候補を効率よく回す

毎週月曜の朝にやるルーティン例:

  1. 📧 週次サマリーメールを開く → 「今週のAI分析」セクションを読む
  2. ♾️ Insights ページを開く → 「効いた要素」を頭に入れる
  3. 📡 「読者が次に聞きたがってる話題」セクションから1〜2件、続編ネタを選ぶ
  4. 各カードの 📝 この角度でドラフト作成 をクリックして AI Generate へ
  5. 3案から選んで予約投稿 (定期ルールに組み込めばさらに自動化)
  6. 📅 「先回りネタ」もチェック → 来週の祝日 / 業界イベントに合わせた投稿を予約
💡 この流れを続けると、「何を書くか考える時間」がほぼゼロ になります。AI が「読者が次に聞きたがってるもの」を毎週運んでくるので、あなたは選んで予約するだけ。

🚀 はじめに

各SNSを sns-auto-poster と連携するには大きく2つの方法があります。

方法 手順 対象
ワンクリック連携 (OAuth) ボタンを押して該当SNSの認証画面で「許可」するだけ。トークンが自動保存されます。 LinkedIn (今後 X / Facebook / Threads も対応予定)
認証情報を手動登録 各SNSの管理画面でAPIキー / トークンを取得し、コピペで登録。 note (ローカル運用) / Bluesky / WordPress / はてなブログ など

💡 おすすめ順: まず LinkedIn (ワンクリック連携) で動作確認 → 次に note (運用者側設定が必要) → そのあと使いたいSNSを順次追加。

🔵 LinkedIn 連携かんたん

ワンクリックで連携できます。アクセストークンの手動取得は不要です。

クライアント側 (利用者) の手順

① ダッシュボードを開く
右上のメニューから SNS Credentials タブをクリック。
② 「🔗 ワンクリック連携 (OAuth)」セクションを探す
LinkedIn 行の「LinkedInに接続」ボタンをクリック。
③ LinkedIn の認証画面で「許可」
普段使っている LinkedIn アカウントでログイン。
「Allow」ボタンで投稿権限を許可。
④ 完了画面で「✅ LinkedIn 連携完了」と表示
3秒で自動的にダッシュボードに戻ります。
⑤ 「✅ 連携済み: お名前」と表示されればOK

運用者 (サービス提供側) の事前セットアップ

ワンクリック連携を使えるようにするには、サービス管理者が LinkedIn Developer Console で1回だけ設定する必要があります。

① LinkedIn Developer アカウントでアプリ作成
https://www.linkedin.com/developers/apps → 「Create app」
必要事項: アプリ名 / 紐付ける LinkedIn Company Page / ロゴ / Legal agreement
② Products タブで2つを追加
必須:
Sign In with LinkedIn using OpenID Connect (即承認)
Share on LinkedIn (即承認)
どちらも「Request access」→「Add」で `Added products` に移動すれば完了。
③ Auth タブで Redirect URL を登録
「Authorized redirect URLs for your app」に以下を追加:
https://post.snsmapapp.work/api/oauth/linkedin/callback
一字一句完全一致で。末尾スラッシュ違いでも失敗します。
④ Client ID と Client Secret をコピー
Auth タブ → Application credentials セクション
Client ID をコピー (例: 86xxxxxxxxxx)
Primary Client Secret の👁ボタンで値を表示 → コピー (例: WPL_xxxxxx==)
⑤ Railway の Variables に登録
sns-auto-poster の Railway プロジェクト → Variables タブ → New Variable で2つ追加:
LINKEDIN_CLIENT_ID=86xxxxxxxxxx
LINKEDIN_CLIENT_SECRET=WPL_xxxxxx==
保存すると自動で再デプロイ。3〜5分後にクライアント側で「LinkedInに接続」ボタンが使えるようになります。
⚠️ よくあるエラー

手動でアクセストークンを入れる場合 (緊急用)

OAuth が動かない場合の逃げ道。LinkedIn 公式 Token Generator を使います。

  1. https://www.linkedin.com/developers/tools/oauth/token-generator を開く
  2. 自分の作ったアプリを選択
  3. Scopes チェック: openid profile email w_member_social
  4. 「Request access token」→ 認証画面で許可 → access token が表示される
  5. ダッシュボード → SNS Credentials → 「認証情報の追加 / 更新」:

トークンの有効期限は2ヶ月。失効したら再取得して同じ手順で上書き。

📓 note 連携かんたん

note は 公式投稿APIがない ため、他媒体と違って半自動連携になります。2026-06-24 から推奨方式が変わりました:

🆕 推奨: Chrome 拡張機能 (Resonate Post Helper)

ダッシュボードの「📤 noteへ送る」ボタンで note 編集画面が自動で開いてタイトル/本文が自動入力されます。インストール手順は 下の「Chrome 拡張機能のインストール」 参照。

🗂️ 旧方式 (Playwright ローカル自動投稿) について

Playwright によるローカル PC からの自動投稿は、cookie 切れや note UI 変更で頻繁に止まるため非推奨化しました。Chrome 拡張機能の方が安定・運用負荷ゼロです。

Chrome 拡張機能のインストール (推奨)

① 拡張機能フォルダを取得
Resonate Post のリポジトリ extension/ フォルダをローカルに置く (zip でも DL でも OK)
② Chrome の拡張機能管理画面を開く
アドレスバーに chrome://extensions を入力
③ デベロッパーモードを ON
画面右上のトグルスイッチを ON にする
④ 「パッケージ化されていない拡張機能を読み込む」
左上のボタンをクリック → ①で取得した extension/ フォルダを選択
⑤ note.com にログイン
https://note.com を開いて、いつもの note アカウントでログインしておく (cookie が残るので1回だけ)
⑥ 動作確認
Resonate Post でドラフトを作成 (platform: NOTE) → 「📤 noteへ送る」ボタンをクリック → note の編集画面が開いてタイトル/本文が自動で入っていれば成功。
画像がある場合は、エディタにフォーカスして Ctrl+V で貼付け → 右上「公開設定」→「投稿する」
💡 拡張機能が入ってない場合は、自動で 手動コピペモーダル に切り替わります (タイトル/本文/画像が個別コピーボタン付きで表示される)。 インストールしなくても投稿可能ですが、毎回コピペが必要です。
⚠️ 拡張機能の制約:

使い方 (クライアント側)

  1. ダッシュボード → ✨ AI Generate タブ
  2. プラットフォーム: NOTE を選択
  3. テーマを入れて「生成」→ 3案から選ぶ
  4. 「Draft 作成」または「予約投稿」をクリック
  5. 15分以内にローカル runner が拾って note.com に投稿 (下書きor公開、設定による)
💡 note は長文向き。X / LinkedIn の本文をそのまま流用するより、AI に「note 用に膨らませて」と指示すると刺さりやすいです (Generate の「補足情報」欄に note 用に1500字以上で展開 と書く)。

運用者側セットアップ (Windows PC で1回だけ)

① npm 依存をインストール
cd C:\Users\weapo\OneDrive\デスクトップ\SNS\自動投稿
npm i -D playwright
npx playwright install chromium
② 初回ログイン (1回だけ)
npx tsx scripts/note-spike/login.ts
Chrome が開くので note.com に手動でログイン → コンソールに戻って Enter。
cookie が storage/note-spike-userdata/ に保存される (以降は自動でログイン状態維持)。
③ Windows タスクスケジューラに「投稿runner」登録 (15分おき)
schtasks /create /f /sc minute /mo 15 /tn "SnsAutoPoster-NoteTick" /tr ""C:\Users\weapo\OneDrive\デスクトップ\SNS\自動投稿\scripts\run-note-tick.bat"" /ru "ガレリア\weapo" /it
これで予約された note 投稿が自動公開される。
④ Windows タスクスケジューラに「メトリクス取得runner」登録 (1日1回, 自律ループ用)
schtasks /create /f /sc daily /st 23:00 /tn "SnsAutoPoster-NoteMetrics" /tr "cmd /c cd /d "C:\Users\weapo\OneDrive\デスクトップ\SNS\自動投稿" && set NOTE_METRICS_ENABLED=1 && npx tsx scripts/note-metrics-runner.ts" /ru "ガレリア\weapo" /it
23:00 に note ダッシュボードを巡回して、スキ数・コメント数を Resonate Post の PostMetric に保存。これで 自律改善ループ (Pro) が note の反響も学習対象にできる。
⑤ .env に投稿モード設定
C:\Users\weapo\OneDrive\デスクトップ\SNS\自動投稿\.env に以下を追加:
NOTE_PUBLISH_MODE=publish      # 自動公開する場合 (draft なら下書き保存まで)
NOTE_USERNAME=your_note_user   # note.com の自分のユーザー名 (URL用)
NOTE_METRICS_ENABLED=1         # メトリクス取得を許可 (安全装置、未設定なら走らない)

動作確認

  1. 投稿: ダッシュボードから NOTE 向けドラフト作成 → 15分以内に runner が拾う → タスクスケジューラの「最終実行結果」が成功になる → note.com に反映
  2. メトリクス: 23:00 のメトリクスタスク実行後、/insights ページで NOTE 向けのインサイトが累積される

トラブルシューティング

症状原因対処
「note.com 未ログイン」エラーcookieが切れたもう一度 scripts/note-spike/login.ts でログインし直し
投稿runnerが15分おきに動かないタスクスケジューラ未設定 or 設定漏れschtasks /query /tn SnsAutoPoster-NoteTick で確認
「AccessDenied」エラーnote.com の WAF にブロック1時間ほど時間を置いてから再試行。連続アクセス回避
メトリクスが /insights に出ないNOTE_METRICS_ENABLED=1 設定漏れ.env に追加 + Task Scheduler の環境変数にも入っているか確認
記事URLがnoteで違うものになるNOTE_USERNAME 未設定.env に noteアカウント名を入れる
💡 WAFブロック対策: note.com は短時間に大量アクセスすると一時的にブロックされます。投稿は15分間隔、メトリクスは1日1回くらいに抑えるのが安全。複数アカウント運用したい場合は別 PC を用意するのが確実です。

🦋 Bluesky 連携かんたん

App Password 方式。OAuth不要、簡単。

  1. Bluesky 設定 → App Passwords でアプリパスワード生成
  2. ダッシュボード → SNS Credentials → 「認証情報の追加 / 更新」:

📘 Facebook 連携ふつう

Facebook Page への投稿のみ対応 (個人ウォール投稿は API 非対応)。

  1. Meta for Developers でアプリ作成
  2. 製品「Facebook ログイン」+「Pages API」を追加
  3. Graph API Explorer で Page Access Token 取得 (権限: pages_manage_posts pages_read_engagement)
  4. 長期トークンに変換 (60日有効)
  5. ダッシュボードに登録:

権限 pages_manage_posts は Meta の App Review 必須。承認に数日〜数週間かかります。

🧵 Threads 連携ふつう

Meta の Threads API。設定方法は Facebook と類似。

  1. Meta for Developers でアプリに「Threads API」を追加
  2. Threads User ID と Long-lived Access Token を取得
  3. ダッシュボードに登録:

📝 WordPress 連携ふつう

WordPress 5.6+ の Application Password 機能で連携。

  1. WordPress 管理画面 → ユーザー → プロフィール → Application Passwords セクション
  2. 名前 (例: sns-auto-poster) を入れて「新しいアプリケーションパスワードを追加」
  3. 表示される xxxx xxxx xxxx xxxx xxxx xxxx 形式のパスワードをコピー
  4. ダッシュボードに登録:

📔 はてなブログ 連携ふつう

AtomPub API + WSSE 認証。

  1. はてなブログ管理画面 → 設定 → 詳細設定 → AtomPub セクション
  2. 「APIキー」をコピー
  3. ダッシュボードに登録:

🐦 X (Twitter) 連携ふつう

⚠️ X は必ず「自分の X アカウント」で連携してください
Resonate Post 運営側の X アカウントを共有する形では提供していません。理由: 連携未設定の場合、X 投稿は実行されずエラーになります。

💡 2026年2月から大幅に安くなりました
旧 Basic ($200/月固定) は新規受付終了、現在は Pay-per-use ($5 デポ + 投稿1件 $0.01) がデフォルト。
1日10投稿の運用なら 月 $4 程度 (¥600) しかかかりません。

🗺️ 全体マップ (まずこれだけ覚える)

X 側の用語と Resonate Post の用語が違って混乱しがちなので、最初に対応表:

X Developer Console の表記 (日本語UI)X の英語 UIResonate Post の Key Name
コンシューマーキー → 再生成で出てくる1つ目API Key (Consumer Key)api_key
コンシューマーキー → 再生成で出てくる2つ目API Key Secret (Consumer Secret)api_secret
アクセストークン → 再生成で出てくる1つ目Access Tokenaccess_token
アクセストークン → 再生成で出てくる2つ目Access Token Secretaccess_token_secret
ベアラートークンBearer Token使わない (無視)
💡 つまり「再生成」を2回押すだけ: コンシューマーキー再生成 → 2値ゲット / アクセストークン再生成 → 2値ゲット。これで Resonate Post に登録する4キーが揃います。

📋 セットアップ手順 (約30分 + 月¥600〜)

① X Developer Portal でアカウント作成
https://developer.x.com/en/portal/dashboard にアクセス → X (Twitter) アカウントでログイン → Developer Agreement に同意。
Use Case は「Make a bot」または「Publishing rich content」を選択 (詳細記述は2-3文でOK)。
② $5 デポジット (クレジットカード必要)
左メニュー 請求書作成 → クレジット から「クレジットを購入する」→ $5 をデポ。
上限を $10/サイクル に設定しておくと暴走防止に。
自動チャージは OFF推奨 (残高ゼロでAPIが止まる安全装置になる)。
③ App を作成
左メニュー アプリ → 新規アプリ作成 → アプリ名 (例: resonate-post-myaccount) を入力 → Save。
→ 自動で App 詳細画面の「Keys & Tokens」タブが開きます。
④ ⚠️ ユーザー認証設定で「Read and Write」にする (一番大事)
App 詳細画面の一番下に 「ユーザー認証設定」 / "User authentication settings" セクションがあります。
まだ未設定の状態だと 「セットアップ」 ボタンしか見えません。これを 必ずクリック: Save を押す。
⚠️ この設定をしないままアクセストークンを再生成しても、トークンは「読む (Read only)」のままで投稿時にエラーになります。必ず ④ → ⑤ → ⑥ の順番で。
⑤ コンシューマーキーを「再生成」して2値を取得
「Keys & Tokens」タブの 「OAuth 1.0 キー」 セクション → 「コンシューマーキー」 の右端の 「再生成」 をクリック。
ポップアップに以下2つが 一度しか表示されない ので即コピー:
⚠️ コピー忘れたらもう一度「再生成」(古い値は無効化されます)。メモ帳等に貼り付けてから先に進む。
⑥ アクセストークンを「再生成」して2値を取得
同じく 「アクセストークン」 セクションの 「再生成」 をクリック。
ポップアップに以下2つが表示されるので即コピー: 権限表記を確認: 「読み書き (Read and Write)」または「読み書きとダイレクトメッセージ」になっていれば成功。
「読む (Read only)」のままなら ④ をやり直し → そのあと再度この ⑥ をやり直す。
⑦ Resonate Post に4キーを登録
ダッシュボード → 🔐 SNS Credentials タブ → 「認証情報の追加 / 更新」:
  1. Service ドロップダウンで 「X (Twitter, 有料API)」 を選択 → Key Name 欄が自動で X 用に切り替わる
  2. Key Name ドロップダウンから 「① API Key (X側: コンシューマーキー)」 を選択 → Value に ⑤ の API Key を貼付け → Save
  3. 同じく 「② API Key Secret」 → Value に ⑤ の API Key Secret → Save
  4. 「③ Access Token」 → Value に ⑥ の Access Token → Save
  5. 「④ Access Token Secret」 → Value に ⑥ の Access Token Secret → Save
⑧ 接続テストで動作確認 + Premium 判定
SNS Credentials タブで「接続テスト」ボタンをクリック → 以下のいずれかが表示されれば成功:

X Premium (月¥980〜1,380程度) を契約しているアカウントだと、自動で長文上限 25,000字に切り替わります。後から Premium 契約した場合は再度 SNS Credentials を「再保存」すれば再判定されます。

🧪 動作確認 (実投稿)

  1. ダッシュボードで AI Generate → platform: X → 短いテーマで本文生成
  2. 「Save Draft」 → Drafts タブで作成したドラフトの「Post Now」をクリック
  3. X (@yourname) を開いて実投稿が反映されてるか確認
  4. X Developer Portal で 請求書作成 → クレジット を見ると残高が $0.01 減ってるはず

💰 料金イメージ

投稿頻度月間投稿数月額
軽め (1日3投稿)90~$0.9 + 分析リード分$0.5 = ~$1.4
標準 (1日10投稿)300~$3 + リード$1.5 = ~$4.5
ヘビー (1日30投稿)900~$9 + リード$5 = ~$14

💡 支出上限を $10/サイクルに設定 しておけば、想定外の暴走 (バグや bot 化) で月額が爆発するリスクを完全に防げます。

🆘 トラブルシューティング

症状原因対処
missing keys: api_key, api_secret, access_token, access_token_secretまだ4キーが Resonate Post に保存されてない⑦ で4回 Save してから「接続テスト」を押す
401 UnauthorizedKey Name の typo (大文字や typo) / 値の貼り間違いSNS Credentials のドロップダウン (① → ④) を使って再登録
403 Forbidden / billing requiredクレジット残高ゼロ$5 追加デポジット
権限関連の 403 エラー / "Your client app is not configured..."App の権限が「Read only」のまま④ で「Read and Write」に変更後、必ず ⑥ で Access Token を再生成 (Consumer Key は変えなくていい)
「アクセストークン」が「読む (Read)」になっている④ をやらずに ⑥ をやった④ → ⑥ の順番でやり直し
429 Too Many RequestsApp 単位のレート制限15分待つ、または投稿間隔を空ける
失敗エラー詳細を見たい-Drafts タブで該当ドラフトの「last_error」セクション
ベアラートークンは何に使う?「アプリ専用認証」用 (検索 API 等)Resonate Post では使わない。無視してOK

⚠️ App 権限を変更したら必ず Access Token を再生成 してください。旧トークンは「Read only」のまま無効化されないので、これが原因で「保存はできたのに投稿失敗」の事故が多発します。

🆘 困ったときは

最終更新: 2026-05-18