目次
0全体像と必要なもの
Instagram の自動投稿は Instagram Graph API(Meta社提供)を経由して行います。Instagram単体では完結せず、必ず Facebookページ と Meta開発者アカウント を経由する仕組みです。
API を直接叩くのは Claude Code が担当します。Claude Code に渡すための情報(トークンとID)を画面操作で準備すれば、あとは「リール投稿して」「画像投稿して」と日本語で指示するだけで投稿できる状態になります。
必要なものチェックリスト
| 項目 | 用途 | 備考 |
|---|---|---|
| Instagramアカウント必須 | 投稿先 | 個人アカウントは不可。ビジネスまたはクリエイターに切替が必要 |
| Facebookアカウント必須 | 連携の起点 | 個人アカウントでOK |
| Facebookページ必須 | Instagramと紐付け | FB上で新規作成可(無料) |
| Meta開発者アカウント必須 | アプリ作成 | Facebookアカウントから登録 |
| Claude Code必須 | API実行・投稿の自動化 | 取得したトークンとIDを .env に保存して使う |
Facebook ⇄ Instagram ⇄ Meta開発者アプリ という三角関係を作る必要があります。
1アカウントの準備
1-1. Instagramをビジネスアカウントに切替
- Instagramアプリ → プロフィール → 三本線メニュー → 設定とプライバシー
- 「アカウントの種類とツール」→「プロアカウントに切り替える」
- カテゴリを選択し「ビジネス」を選ぶ
1-2. Facebookアカウントの準備
Facebookアカウントを持っていない場合は facebook.com から新規登録します。
2Facebookページとの連携
- Facebookページを作成(無料、ジャンルは何でもOK)
- Facebookページの「設定」→「リンクするアカウント」→ Instagram を接続
- Instagram側にログインして連携を承認
3Meta for Developers アプリ作成
- developers.facebook.com にFacebookアカウントでログイン
- 右上「マイアプリ」→「アプリを作成」
- ユースケースは 「ビジネス」 を選択
- アプリ名・連絡先メールを入力して作成
4Instagram Graph API の有効化
- 作成したアプリのダッシュボード左メニュー「製品」を開く
- 「Instagram Graph API」を セットアップ
- 同様に「Facebook Login for Business」も追加(トークン取得に必要)
必要な権限スコープ
| 権限名 | 用途 |
|---|---|
instagram_basic |
プロフィールやメディアの読み取り |
instagram_content_publish |
投稿(コンテンツの公開) |
pages_show_list |
連携されたFacebookページ一覧の取得 |
pages_read_engagement |
ページ情報の読み取り |
business_management |
ビジネスアカウント情報の取得 |
5アクセストークンの取得
ここで取得した 長期トークンを Claude Code に渡せば、以降の投稿は全自動化できます。
5-1. 短期トークン(1〜2時間)を画面で取得
- Graph API Explorer を開く
- 右上のアプリ選択でステップ3で作ったアプリを選ぶ
- 「Generate Access Token」をクリック
- 必要な権限(前項のリスト)にチェックを入れて承認
- 表示されたトークン文字列をコピーしておく
5-2. 長期トークン(60日)への変換は Claude Code に依頼
短期トークンを Claude Code に渡して、以下のように指示するだけでOKです。
「Instagram の長期アクセストークンを取得して .env に保存して。
短期トークンは {コピーした文字列} 。
アプリIDとシークレットは Meta for Developers の
アプリダッシュボード『設定 → ベーシック』から取得して。」
Claude Code が裏で以下のような API を叩いてトークンを取得・保存します。
# Claude Code が裏で実行する内容(参考)
GET https://graph.facebook.com/v21.0/oauth/access_token
?grant_type=fb_exchange_token
&client_id={APP_ID}
&client_secret={APP_SECRET}
&fb_exchange_token={SHORT_LIVED_TOKEN}
6Instagram Business Account ID の取得
投稿APIには「アプリのID」ではなく Instagram Business Account ID が必要です。これも Claude Code に取得させます。
長期トークンが
.env に保存されたあと、こう指示するだけでOK。
「Facebookページ一覧を取得して、連携されている Instagram Business Account ID を
.env に IG_USER_ID として保存して。」
Claude Code が裏で以下を実行します。
# 1. 連携先のFacebookページIDを取得
GET /me/accounts
# 2. ページに紐付く IG Business Account ID を取得
GET /{page-id}?fields=instagram_business_account
.env に IG_ACCESS_TOKEN と
IG_USER_ID が揃ったら、
画面操作する作業は完了です。以降の投稿はすべて Claude Code
に日本語で指示します。
7投稿の依頼方法(Claude Code への指示)
準備が完了したら、 Claude Code に投稿内容を伝えるだけです。
指示の例
「~/Desktop/today.jpg をインスタにフィード投稿して。
キャプションは下記、ハッシュタグもつけて。
---
今日の作業デスク☕️
#インスタ運用代行 #リベシティ」
Claude Code が裏で行う処理
Instagram Graph API は 2段階フローで投稿する仕組みです。Claude Code がこれを自動でこなします。
① 画像を公開URLにアップロード
Instagram API は インターネットからアクセス可能な画像URLしか受け付けません。Claude Code がローカル画像を S3 / Cloudflare R2 / GitHub Pages などにアップロードして公開URLを生成します。
② メディアコンテナ作成
POST /{IG_USER_ID}/media
?image_url={公開URL}
&caption={キャプション}
&access_token={TOKEN}
# レスポンス: { "id": "{creation-id}" }
③ コンテナを公開
POST /{IG_USER_ID}/media_publish
?creation_id={creation-id}
&access_token={TOKEN}
8投稿種別ごとの指示例
種別を変えたい場合は、Claude Code への一言で切り替わります。media_type
等の技術的な指定は Claude Code 側が判別します。
| 種別 | 指示の例 | 仕様 |
|---|---|---|
| フィード画像 | 「画像を投稿して」 | 1:1 推奨 |
| フィード動画 | 「動画を投稿して」 | 処理完了待ちあり(Claude Codeが自動でポーリング) |
| カルーセル | 「この3枚を1投稿でカルーセルに」 | 最大10枚 |
| リール | 「リールで投稿して」 | 動画のみ。縦長(9:16)推奨 |
| ストーリーズ | 「ストーリーズに上げて」 | 24時間で消える |
~/posts/
から1枚選んで自動投稿して」のように依頼すれば、Claude Code が cron /
GitHub Actions 等のスケジュール実行を組んでくれます。
9本番運用に向けたアプリレビュー
Meta for Developers のアプリには「開発モード」と「ライブモード」があります。
| モード | 挙動 |
|---|---|
| 開発モード | アプリの管理者・開発者・テスターのアカウントのみAPIが使える |
| ライブモード | 全ユーザーが利用可。アプリレビュー(審査)が必要 |
他人のアカウントにも投稿させるサービスを作る場合のみ、ライブモード+アプリ審査が必要です。
!よくあるつまずきポイント
準備フェーズで起きがちなエラーと対処です。投稿フェーズのエラーは Claude Code が読み取って自動で対応します。
- 個人アカウントのまま → ビジネス/クリエイターに切替(ステップ1)。
- Facebookページと連携していない → IG Business Account ID が取れない(ステップ2)。
-
権限スコープ不足 →
instagram_content_publishがないと投稿不可。Graph API Explorer で再取得。 - トークン期限切れ → 60日で失効。Claude Code に「トークンを更新して」と依頼すれば再取得します。
- アプリが開発モードのまま → 自分のアカウントで使うだけなら問題なし。他人のアカウントに投稿するならアプリ審査が必要。