Instagram 投稿
Publora MCP サーバーを使用して Instagram の投稿を作成・スケジュールします。画像投稿、カルーセル(2~10枚)、Reel、ストーリーに対応。Instagram ビジネスアカウントが必要です。
前提条件
プラン: 無料の Starter プランで動作します。現在の制限と料金: publora.com/pricing
始め方
- publora.com/register で アカウントを作成(無料)
- Instagram 設定で ビジネスアカウントに変換(パーソナルアカウントおよびクリエイターアカウントは API でサポートされていません)
- Publora ダッシュボード で OAuth 経由で Instagram を接続
- app.publora.com/dashboard/api で API キーを取得
- エージェントを MCP サーバー
https://mcp.publora.comに接続し、Authorization: Bearer sk_YOUR_API_KEYで認証します。Claude Code の場合:
claude mcp add publora --transport http https://mcp.publora.com \
--header "Authorization: Bearer sk_YOUR_API_KEY"
Claude Desktop、Cursor、Codex、OpenClaw、claude.ai コネクタにはそれぞれ異なる設定ファイルまたはフローが必要です。正確なパスとスニペットについては クライアント設定 を参照してください。
REST API フォールバック
MCP サーバーが利用できない場合、またはエラーが返される場合は、REST API を直接使用します:
ベース URL: https://api.publora.com/api/v1
認証: x-publora-key ヘッダーを使用します(Authorization: Bearer ではありません):
# 接続済みプラットフォームを取得
curl -X GET "https://api.publora.com/api/v1/platform-connections" \
-H "x-publora-key: sk_your_api_key"
# 投稿を作成
curl -X POST "https://api.publora.com/api/v1/create-post" \
-H "x-publora-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"platforms": ["instagram-11223344"],
"content": "ここにキャプションを入力 #ハッシュタグ",
"scheduledTime": "2026-03-25T10:00:00Z"
}'
プラットフォーム ID 形式: instagram-{id}。{id} は /platform-connections レスポンスから取得します。
ID の例: instagram-11223344、instagram-55667788
📖 完全な API ドキュメント: docs.publora.com
プラットフォーム制限(API vs ネイティブアプリ)
これらの制限は Instagram Graph API に固有のものであり、ネイティブアプリの制限とは異なります。
画像
| 機能 | API 制限 |
|---|---|
| 形式 | JPEG、PNG、WebP(WebP は自動変換されます)。アニメーション GIF、BMP、TIFF は拒否されます。 |
| 最大ファイルサイズ | 8 MB |
| カルーセル画像数 | 2~10(ネイティブアプリでは 20 まで) |
| アスペクト比 | 4:5(縦長)~1.91:1(横長) |
動画
| 機能 | Reel | ストーリー | カルーセル動画 |
|---|---|---|---|
| 最大時間 | 15 分(Reel タブに表示されるのは 5~90 秒のみ) | 60 秒 | 60 秒 |
| 最小時間 | 3 秒 | 3 秒 | 3 秒 |
| 最大ファイルサイズ | 300 MB | 100 MB | 300 MB |
| 形式 | MP4、MOV | MP4、MOV | MP4、MOV |
キャプション
| 機能 | 制限 |
|---|---|
| キャプション長 | 2,200 文字 |
| 「もっと見る」前に表示される文字数 | 最初の 125 文字 |
| ハッシュタグ | 投稿あたり 30 個(キャプションに含まれます) |
レート制限
- 24 時間あたり 50 件の投稿(一部のアカウントでは 25 件と報告されています)
使用可能なツール
create_post
新しい Instagram 投稿を作成します。
パラメータ:
platforms: Instagram 接続 ID を含む配列(例:["instagram-11223344"])content: キャプションテキスト(最大 2,200 文字)scheduledTime: ISO 8601 UTC 日時。オプション: 省略すると下書きとして作成されます。未来の時刻を指定するとスケジュールされます。5 分以上過去の時刻はSCHEDULED_TIME_IN_PASTで拒否されるため、即時投稿するには現在時刻に 1 分加算した時刻を使用してください。mediaUrls: 最大 10 個の公開 https 画像または動画 URL。Publora がサーバー側でダウンロードし、検証前に添付します。そのため、メディアとスケジュールは 1 回の呼び出しで完了します。これは、下書き作成→get_upload_url→complete_mediaフローに代わるワンショットの代替手段です。取り込みは 1 時間あたり 60 URL にレート制限されています。
get_upload_url
メディアアップロード用の署名付き URL を取得します。
パラメータ:
postGroupId: メディアを添付する投稿 IDfileName: ファイル名(例:"photo.jpg")contentType: 画像の場合はimage/jpeg、動画の場合はvideo/mp4である必要がありますtype:"image"または"video"
complete_media
get_upload_url でアップロードしたファイルを、署名付き PUT が成功した後にファイナライズします。オプションです。スケジュール設定でも保留中のメディアはファイナライズされますが、早めに呼び出すと公開前にフォーマットやプローブエラーを表面化できます。mediaUrls で添付されたメディアには不要です。
パラメータ:
mediaId:get_upload_urlによって返された ID
list_connections
接続済みアカウントとそのプラットフォーム ID をリストします。最初にこれを呼び出し、ID をそのままコピーしてください。ID は推測不可能です。
list_posts / get_post / update_post / delete_post
スケジュール済み投稿と下書きを管理します。update_post は下書きまたはスケジュール済み投稿の content と platforms も修正できるため、タイプミスの修正やターゲットの変更で削除して再作成する必要がありません。delete_media と prune_media_reference はアップロードされたファイルをクリーンアップします。
動画タイプ設定(REST API 経由)
platformSettings を使用して動画の公開方法を制御します:
{
"platformSettings": {
"instagram": {
"videoType": "REELS"
}
}
}
| 設定 | 値 | デフォルト | 説明 |
|---|---|---|---|
videoType | "REELS"、"STORIES" | "REELS" | 動画の公開方法を決定します |
注: platformSettings は MCP の create_post と update_post ツール、および REST 経由でも受け付けられます。スキーマは 厳格 です。誤ったプラットフォームやキーは、警告なしに無視されるのではなく、検証エラーで拒否されます。
例
単一画像投稿
これを Instagram に投稿:
「朝のコーヒーとコード。一日の始まりに最適。 #デフライフ #コーディング」
[JPEG 画像を添付]
形式: JPEG、PNG、WebP がすべて機能します。WebP は公開前に変換されます。
カルーセル投稿
これらの 5 つの製品スクリーンショットで Instagram カルーセルを作成。
キャプション: 「6 か月にわたるアプリの進化。スワイプして旅をチェック! #ビルドインパブリック」
注: 2~10 枚の JPEG 画像が必要です。カルーセル内で画像と動画を混在させることはできません。
Reel
この動画を Reel として投稿:
「新機能に関する 60 秒のチュートリアル。 #チュートリアル #アプリ」
動画はデフォルトで Reel になります。ストーリーの場合は、REST API 経由で videoType: "STORIES" を設定します。
ストーリー
この 30 秒のクリップをストーリーとして投稿(24 時間後に消えます)。
REST API 経由で platformSettings.instagram.videoType: "STORIES" が必要です。
スケジュール投稿
これを明日の午前 10 時にスケジュール:
「新機能の発表がもうすぐ!お楽しみに。」
[JPEG 画像を添付]
重要な制限事項
-
アニメーション GIF、BMP、TIFF は拒否されます。 JPEG、PNG、WebP は受け付けられ、WebP は自動変換されます。
-
ビジネスアカウントが必要: パーソナルアカウントとクリエイターアカウントは API 経由で投稿できません。ビジネスアカウントのみ機能します。
-
すべての投稿にメディアが必要: Instagram はテキストのみの投稿をサポートしていません。すべての投稿には少なくとも 1 つの画像または動画が必要です。
-
カルーセル内でのメディア混在不可: カルーセルはすべて画像、またはすべて動画(別々の投稿)のいずれかである必要があり、両方を混在させることはできません。
-
ストーリーは消える: ストーリーは一時的で、24 時間後に消えます。
-
Reel がデフォルト: 動画はデフォルトで Reel として公開されます。ストーリーを投稿するには、REST API で
videoType: "STORIES"を使用します。
ベストプラクティス
コンテンツ
- 最初の 125 文字が重要: ユーザーが「もっと見る」をタップする前に表示される部分です
- ハッシュタグ戦略: 関連性の高いハッシュタグを 5~15 個使用(最大 30)
- 画像品質: 最良の結果を得るには高品質の JPEG 画像を使用
- カルーセルのエンゲージメント: カルーセルは単一画像よりもエンゲージメントが高くなります
タイミング
- 最適な時間帯: ターゲットタイムゾーンの午前 11 時~午後 1 時、午後 7 時~午後 9 時
- 頻度: 成長のために 1 日 1~2 件の投稿
- Reel のブースト: Reel は静止画像よりもアルゴリズムで優先されます
エンゲージメント
- 最初の 1 時間以内にコメントに返信
- 関連する場合は位置情報タグを使用
- ストーリーからフィードへクロスプロモーション
トラブルシューティング
| エラー | 原因 | 解決策 |
|---|---|---|
| "Business account required" | パーソナル/クリエイターアカウントを使用 | Instagram 設定でビジネスアカウントに変換 |
| "Invalid image format" | PNG またはその他の非 JPEG 形式 | アップロード前に画像を JPEG に変換 |
| "Media upload failed" | ファイルが大きすぎるか、形式が間違っている | 確認: 画像 < 8 MB JPEG、動画 < 300 MB MP4 |
| "Carousel requires 2-10 items" | 画像の数が間違っている | カルーセルには 2~10 枚の画像があることを確認 |
| "Account not connected" | OAuth の有効期限が切れています | Publora ダッシュボードから再接続 |
| レート制限(429) | 1 日あたり 50 件の投稿を超過 | 24 時間待機 |