代理店向け|クライアントのInstagramをパスワードなしで連携する
代理店がクライアントのInstagramをS.Earchに連携するとき、クライアントのInstagram・FacebookのIDやパスワードを預かる必要はありません。
Meta Business Suiteの「パートナーアクセス」で必要なアセットだけを共有し、代理店担当者が自分のFacebookアカウントでEAAトークンを発行してS.Earchへ入力します。
Metaの画面名はUI更新によって変わる場合があります。「ビジネスポートフォリオ」は旧画面の「ビジネスマネージャ」に相当します。
複数店舗をMuse・外部AIから運用する
AGENCYは最大15アカウント・運用者10席、TEAMは最大30アカウント・運用者30席です。PREMIUMの本人+サブ1件の接続と、AGENCY以上の一括接続・運用者招待は別の機能です。管理対象数と招待席数は別々に消費します。利用資格は料金・プランと本人の設定画面で確認してください。
案件ごとの接続とアカウント選択
- 管理アカウントから対象を追加します。一括接続はAGENCY以上で、契約対象だけを選びます。FacebookページとInstagramの対応を照合してください。
- Instagram投稿を使う場合は分析の権限に
instagram_content_publishを追加します。Threadsは別認証です。Instagramの接続だけではThreads投稿は使えません。 - 各対象のThreadsで接続します。InstagramとThreadsのユーザー名が異なる場合は、両方の正しい名前を確認します。停止済みの旧アカウントは選びません。
- Metaの認可画面に別の店舗や個人アカウントが表示されたら、そのまま許可せず対象本人のログインへ戻ります。既存接続を削除してやり直す必要はありません。
- 開発モードなどでテスター承認が必要な場合は、正しいThreads本人が招待を承認してから認可します。アプリ公開と、必要権限の審査・利用条件は別に確認します。
画面上部のアカウント切替から「別タブ」で開くと、URLの account_id を保ったまま店舗ごとに分析できます。MCPでも会話の記憶だけに頼らず、操作ごとにそのIDを指定します。
接続済み・期限・実公開を見分ける
searcher_accounts は対象・roleと、保存済みThreadsユーザー名・期限・最終取得時刻を返します。searcher_account は実際に選択されたIDも返します。threads_connected=true は接続レコードの存在であり、現在のトークン有効性や投稿成功を保証しません。
接続状態の stored は保存済み期限内、expired は保存済み期限切れ、expiry_unknown は期限不明、not_connected は未登録です。この照会自体はMetaへの疎通試験ではありません。ID未指定の結果と、特定店舗の結果を比較して接続切れと判断しないでください。取得時刻が古い・不明なら、最新数値として扱いません。
初回は承認済み通常投稿1件で確認する
searcher_contextで本人・プラン・許可scopeを確認します。投稿予約はPREMIUM以上とwrite:schedule、対象のowner/manager権限が必要です。閲覧のみの招待では投稿できません。searcher_accounts→searcher_account(account_id)→searcher_threads(account_id)で対象と投稿取得を照合します。店舗という理由で別の投稿プランが必要になるわけではありません。- 原稿・予定時刻・既存予約を確認し、次の承認済み通常投稿1件を初回検証に使います。公開のダミー投稿や二重予約は作りません。
searcher_scheduleにaccount_id、Threadsならplatform=threads、本文投稿ならmedia_type=TEXT_POST、未来の日時、固有UUIDのrequest_idを渡します。親+返信は対応する予約チェーン機能で依存関係を保ちます。searcher_schedulesで同じIDを読戻します。タイムアウト時も新しいIDで再送せず、同じIDの状態を確認します。- 公開後に
status=published・threads_media_id・published_atと、Threads上の対象・本文・順序を照合します。予約保存だけで完了にしません。失敗時は原IDと理由を残して修正します。 - 同じ経過時間で閲覧・反応を確認し、次の投稿で変える点を1つ決めます。未取得を0にせず、来店・予約への帰属は根拠がある場合だけ扱います。
Muse・Claude・Codexへ貼る開始文
角括弧を案件に合わせて置き換え、そのまま貼れます。接続方法は外部AI・MCP接続ガイドへ進んでください。
S.Earchでこの案件を運用します。
Instagram: @[名前] / Threads: @[名前] / account_id: [ID]
目的: [問い合わせ・予約など] / 原稿と希望日時: [内容]
最初にcontext、accounts、指定account_idのaccountとthreadsを読み、
本人・role・許可scope・両方のユーザー名・保存済み期限・最終取得時刻を照合してください。
必要な岡田ナレッジと本人知識の本文・出典を読み、原稿を具体的に改善してください。
既存担当・原稿・予約IDを保ち、承認された操作だけを進めてください。
同じrequest_idで予約を読み戻し、公開IDと実際のThreads表示まで確認してください。
接続保存・データ取得・予約・実公開・成果を区別し、不明は不明のまま報告してください。
全体の流れ
- クライアントがInstagramをプロアカウントにする
- InstagramとFacebookページを接続する
- クライアントが代理店のビジネスポートフォリオへパートナーアクセスを付与する
- 代理店側で実際の担当者を対象アセットに割り当てる
- 代理店担当者が自分のFacebookアカウントでEAAトークンを発行し、S.Earchの「セットアップ」から接続する
- S.Earchで投稿・インサイトの取得成功を確認する
分析・競合分析だけならInstagram Loginは不要です。 Facebook LoginのEAAトークンだけを使います。Instagram Login(IGAAトークン)は、自動返信・DMも使う場合だけ追加してください。
Meta Appはクライアントごとに作る必要がありますか?
分析・競合分析では、代理店が管理する1つのMeta Appを複数クライアントへ利用できます。 クライアントごとに新しいAppを作る必要はありません。
App作成時に1つだけ選ぶビジネスポートフォリオは、そのAppの所有・管理先です。「このAppはそのビジネスポートフォリオ内の1クライアントにしか接続できない」という制限ではありません。クライアントのFacebookページとInstagramはクライアント側のビジネスポートフォリオに残したまま、パートナーアクセスで代理店へ共有します。実際にAPIから見える対象は、EAAトークンを発行したFacebookユーザーに割り当てられたページとInstagramで決まります。
ただし、クライアントごとに次の設定は必要です。
- クライアントから代理店へのパートナーアクセス
- 実際に接続する担当者へのFacebookページ・Instagramの割り当て
- 対象アセットを許可したEAAトークンの発行と接続診断
App IDとApp Secretは共通で使えますが、自分のアカウント接続時に発行した古いEAAトークンをクライアント接続へ再利用しません。 クライアントのアセットを担当者本人へ割り当てた後、同じMeta Appを選んでクライアント用の新しいEAAトークンを発行します。
自動返信・DMでWebhookのPrimary Receiverが別システムと競合する場合は、すでに審査・Live運用が完了している分離済みAppがあるときだけ切り替えを検討します。S.Earchから新しいMeta Appの作成やApp Reviewを案内することはありません。該当する既存Appがなければ、分析機能だけを使い、自動返信・DMはサポートへ相談してください。Appを共有しても、クライアント間でアクセストークンを共有したり、チャット・メールでtokenを受け渡したりしないでください。
クライアントに送る依頼文
以下をそのままクライアントへ送れます。
S.Earchとの連携にあたり、InstagramやFacebookのパスワードをお預かりすることはありません。
Meta Business Suiteから、弊社のビジネスポートフォリオへ必要なアセットのみ共有をお願いいたします。
事前確認
- Instagramが「ビジネス」または「クリエイター」のプロアカウントになっている
- 対象InstagramがFacebookページと接続されている
- 操作する方が対象のビジネスポートフォリオまたはFacebookページを管理できる
共有手順
- パソコンでMeta Business Suiteを開く
- 「設定」または「ビジネス設定」を開く
- 「ユーザー」→「パートナー」を開く
- 「パートナーにアセットへのアクセスを許可」を選ぶ
- 弊社からお伝えするビジネスポートフォリオIDを入力する
- 対象のFacebookページとInstagramアカウントを選ぶ
- 広告レポートも利用する場合だけ、対象の広告アカウントを選ぶ
- Facebookページ・Instagramのコンテンツとインサイトを閲覧できる権限を付与する
- 広告アカウントは広告レポートの閲覧権限だけを付与する
- 保存後、共有したアセット名を弊社へ連絡する
パスワード、二段階認証コード、アクセストークンを弊社へ送る必要はありません。
代理店側で行う設定
クライアントがパートナーアクセスを付与しただけでは、代理店スタッフ個人に操作権限が付いていない場合があります。
- 代理店のMeta Business Suiteで「設定」を開く
- 「ユーザー」→「ユーザー」または「人物」を開く
- S.Earchとの接続を行う担当者を選ぶ
- クライアントから共有されたFacebookページとInstagramを担当者に割り当てる
- 広告レポートも使う場合だけ広告アカウントを割り当てる
- FacebookページとInstagramのインサイトを閲覧できる権限を確認する
担当者は、ここで割り当てた本人のFacebookアカウントを使ってS.Earchへ接続します。
すでに自分のアカウント接続で手順8まで完了している場合も、Meta Appを作り直す必要はありません。ただしクライアントごとに「パートナー共有 → 担当者本人へのアセット割り当て → 同じAppで新しいEAAトークンを発行 → 対象ユーザー名を入力 → 接続診断」の順で行います。自分のアカウント接続時の短期トークンを貼り直して手順9から始めても、後から共有されたクライアント資産は候補に出ません。
S.Earchで分析用アカウントを接続する
操作するのは、前の章でクライアントのFacebookページとInstagramを割り当てられた代理店担当者本人です。
- 担当者本人のFacebookアカウントでMeta for Developersへログインする
- Graph API Explorerを開き、S.Earch接続に使うMeta Appを選ぶ
- User Tokenを選び、基本分析用の4権限を追加する:
pages_show_list、pages_read_engagement、instagram_basic、instagram_manage_insights - 「Generate Access Token」を押す
- 「アクセスするページを選択」では、原則として**「現在のページのみにオプトイン」**を選ぶ
- 次の画面で、今回契約中の1件または複数のクライアントFacebookページだけを選ぶ
- 選択したページでS.Earchが実行できる内容を確認し、Instagramインサイト取得に必要な項目をオンのまま「続行」する
- 完了画面まで進む。以前に同じAppを許可済みの場合は「アクセスを編集」から新しいクライアントページを追加する
- 「現在および今後のページすべて」は将来追加される全ページまで自動許可する広い設定なので、代理店の社内承認がある場合だけ使う
- 発行された
EAA...で始まる短期トークンをコピーする - S.Earchのサイドメニュー「セットアップ」を開き、「Facebook Loginで接続(分析・競合の標準)」まで移動する
- Meta AppのApp ID、App Secret、手順10のEAAトークンを入力する
- 「★ 先に接続診断する」を押し、対象ページ・Instagramが表示されて8項目すべて緑になったことを確認する
- 候補一覧で契約対象を1件または複数件チェックする。全候補が契約対象なら「契約対象をすべて選択」を押す
- 「分析用アカウントを接続」または「選択したN件を一括接続」を押す
ここでいうMetaの認証画面は、手順4の「Generate Access Token」を押した直後にMetaが表示する権限確認ダイアログです。S.Earch内の別画面ではありません。
複数のクライアントを管理している場合は、診断結果に表示されるFacebookページ名とInstagramユーザーネームを照合してからチェックしてください。一括接続は選択した候補だけを既存の所有権・重複防止検査へ1件ずつ通します。一部だけ失敗した場合は成功件数と未接続理由が分かれて表示されます。すでに別アカウントを接続済みでも同じ手順で追加できます。
Graph API Explorerで権限を選べない場合
分析用のEAAトークンはGraph API Explorerで発行します。Instagram Login用のinstagram_business_*権限ではなく、Facebook Login用の権限を選んでください。
このEAAトークンにMeta広告APIのads_readは含めません。広告レポートをAPI同期する場合は、次の「Meta広告API専用tokenの発行」を別途行ってください。
Graph API Explorerで権限が表示されない場合は、次を確認します。
- 選択中のMetaアプリがS.Earch連携に使うアプリと一致している
- Facebook LoginとInstagram Loginの権限名を混同していない
- 対象アプリが必要権限の審査・Live運用まで完了済みである
- 開発モードでは、操作中のFacebookユーザーがアプリの管理者・開発者・テスターに登録されている
- 操作中のFacebookユーザーに対象Facebookページへのアクセス権がある
必要権限が未審査の場合は、新しいAppの作成やApp Reviewを進めず、権限済みの既存Appを選ぶかS.Earchサポートへ相談してください。
Facebook Login経由では、機能に応じて次の権限が使われます。
基本分析・競合分析で最初に必要:
pages_show_listinstagram_basicpages_read_engagementinstagram_manage_insights
投稿予約を使う場合だけ追加:
instagram_content_publish
business_management、自動返信、Threadsの権限は基本分析の開始条件ではありません。追加機能を使う場合だけ、その機能の案内に従って設定します。
Instagram Loginでは権限名が instagram_business_basic などに変わります。両方式の権限名を同じ画面で探さないでください。
Meta広告API専用tokenの発行
Meta広告のAPI同期欄へ入力するのは、Instagram再連携のtokenではなく、対象広告アカウントに対する ads_read を持つ専用tokenです。Graph API Explorerの一時tokenは運用に使いません。
安定運用では、代理店のMetaビジネスポートフォリオに所有または追加済みのMetaアプリと「システムユーザー」を使います。
- Meta Business Suiteの「ビジネス設定」を開く
- 「ユーザー」→「システムユーザー」で、管理者システムユーザーを追加する
- 「アセットを追加」で対象の広告アカウントを選び、「広告の表示」またはレポート閲覧に必要な権限を付ける
- 「アカウント」→「アプリ」で、Marketing APIを追加済みのMetaアプリがビジネスに紐づいていることを確認する
- システムユーザーの「新しいtokenを生成」を開き、そのMetaアプリを選ぶ
ads_readを選んでtokenを生成する- S.Earchの「Meta広告 APIを接続」にtokenと
act_から始まる広告アカウントIDを入力する - 「入力内容を検証して接続」を押し、「API応答と初回データを確認済み」と表示されることを確認する
ads_read が候補に出ない場合は、選択した既存Appに必要権限がない、アプリとシステムユーザーが同じビジネスに属していない、または操作ユーザーにアプリ・広告アカウントの管理権限がありません。一般クライアントのuser tokenは、必要権限の審査・Live運用が完了済みの既存Appでのみ発行してください。
権限済みの既存Meta Appまたはシステムユーザーがない場合、S.Earchから新規作成・審査は案内しません。S.Earchの「数値を手入力」で広告実績を保存し、必要ならサポートへ相談してください。クライアントのパスワードやtokenをチャット・メールで受け渡ししないでください。
接続成功チェック
次の項目を確認できれば接続は完了です。
- S.Earchの管理アカウント一覧に対象Instagramが表示される
- 表示ユーザーネームがクライアントの対象アカウントと一致する
- Instagramのプロフィール情報が取得できる
- 投稿一覧またはリール一覧が取得できる
- リーチ・閲覧数・反応など、許可された範囲のインサイトが取得できる
- 最終同期日時が更新される
- 複数アカウント利用時、切り替え後も対象データが正しく表示される
- 「権限不足」「トークン期限切れ」「Instagram未接続」の警告が出ていない
トラブル別の対処
対象のFacebookページが認証画面に出ない
- クライアント側でパートナーアクセスが保存されているか確認する
- 代理店側で担当者本人にFacebookページを割り当てる
- 担当者にインサイトを閲覧できる権限があるか確認する
- 正しいFacebookアカウントでログインしているか確認する
Facebookページは出るがInstagramが出ない
- Instagramが個人アカウントではなく、ビジネスまたはクリエイターのプロアカウントか確認する
- FacebookページとInstagramが正しく接続されているか確認する
- Instagramアセット自体も代理店へ共有されているか確認する
- 接続先のFacebookページを取り違えていないか確認する
Meta Business Suiteでは見えるがS.Earchに出ない
- S.Earchで現在選択中のアカウントを確認する
- Graph API Explorerで必要権限を選び、EAAトークンを発行し直す
- Metaの認証画面で対象ページ・Instagramの選択を外していないか確認する
- S.Earchの「セットアップ」で対象ユーザーネームを指定し、再診断してから接続する
プロアカウント連携済みなのに「Instagram未接続」と表示される
- S.Earchのアカウント切り替えで対象アカウントが選択されているか確認する
- 複数アカウントが登録されている場合は、対象へ切り替えてから再試行する
- 改善しない場合は、対象ユーザーネーム、Facebookページ名、発生日時、エラー画面をサポートへ送る
パスワード、アクセストークン、二段階認証コードは送らないでください。
投稿は取れるがインサイトが取れない
- FacebookページとInstagramのインサイト閲覧権限を確認する
- 代理店担当者本人へのアセット割り当てを確認する
- Graph API Explorerで
instagram_manage_insightsを含むEAAトークンを再発行し、S.Earchの「セットアップ」で再診断・接続する - 広告レポートの場合は広告アカウントの閲覧権限も確認する
セキュリティ上の注意
- クライアントのFacebook・Instagramパスワードを預からない
- 二段階認証コードを送ってもらわない
- アクセストークンをチャットやメールで共有しない
- 退職者・担当変更者のアセット権限は速やかに解除する
- 必要以上の管理者権限を付けず、業務に必要な権限だけを付与する
- 広告運用をしない場合、広告アカウントへの編集権限は付与しない
Meta公式資料
- Instagram API with Facebook Login — Getting Started
- Meta公式 Instagram APIコレクション
- Facebookページのアクセス権について
- Facebookページへのアクセスを付与・編集・削除する方法
アカウントを増やす時の確認とナレッジの分離
- 新しいInstagramを接続し、アカウント一覧のID・ユーザー名・roleを確認します。Threadsは各店舗の正しいユーザー名で別に接続します。既存店舗の認証は上書きしません。
- 分析はその
account_idを指定し、取得日時・対象・欠測を確認します。別タブではURLのaccount_idを保持します。 - 店舗の素材・方針・検証結果は、
searcher_knowledge_createまたはsearcher_knowledge_importの各項目のig_account_idに同じIDを指定して保存します。省略またはnullなら本人共通です。共通知識を店舗へ整理する時は、searcher_knowledge_updateにid・取得済みexpected_updated_at・ig_account_idを渡します。他人との共有を追加する操作ではありません。 - 店舗資料は
searcher_search(q, ig_account_id)で検索し、searcher_knowledge(id, ig_account_id)で本文を確認します。店舗指定の横断検索は未分離の目標・ToDoを除外します。共通スキルは本人共通資料として別に読み、適用先を明記します。0件なら別店舗へ切り替えません。 - 素材登録と予約は同じ
account_idで実行し、返った予約IDを読み戻します。予約完了と実公開は別です。結果不明なら同じIDを確認し、別IDで再送しません。 - 公開後は同アカウント・同期間の指標、変更した一つの要素、分母と欠測を記録し、その店舗のナレッジへ戻します。他店舗へ応用する時は固有の顧客情報や数値を除き、検証した考え方だけを本人が選んで共通化します。
接続数は契約プランの上限内です。店舗が増えてもプランや外部AIの権限は自動拡張されません。素材登録用ローカル実行に未対応のクライアントでは、既存の素材担当が登録を行い、MUSEは対象・期限・検収条件が一致した素材を使います。クライアントのツール一覧が古い時は、既存接続のツール一覧を更新してください。未対応の引数を削って本人共通へ保存し直さないでください。