画像を3枚用意して、AIに「Instagramへ出して」と頼みたい。でも、その前に何をつなげればよいのでしょうか。
ぼくは2026年10月6日、自分の発信用アカウントで接続から1本目の投稿まで進めました。そのときの画面と、つまずいたところを残します。
アカウントを特定できる情報は、本文では伏せ、スクリーンショットでは不透明に隠しています。操作の説明や赤枠は残しています。
🙋 こんな人に向けた記事です

自分のInstagramに、AIや自分のプログラムから自動で投稿したい人へ向けて書きます。Meta(Instagramの会社)の開発者ページで迷っている人や、投稿用の鍵を安全に扱いたい人にも、作業の流れを見てもらえる記事です。
🎯 この記事を読むと、できるようになること

Meta の開発者のページでアプリを作り、自分の Instagram で「許可」を出す流れを、実画面で追えます。
後半は、ぼくが専用プログラムで画像3枚を1つにまとめた投稿(カルーセル)を出した記録です。
記事のコマンドだけを貼れば、誰でも投稿できるわけではありません。 投稿用プログラムそのものの配布記事ではないため、自分のAIに作ってもらうなど、別途準備が必要です。
※用語の補足①「API」=アプリ同士がやり取りする窓口です。画面を手で押す代わりに、プログラムがこの窓口へ投稿を頼みます。
2026年10月6日に、せどりの発信用アカウント([アカウント名は非掲載])で実際に行った手順です
Facebook ページは使っていません(Instagram のログインだけで使う方式です)
✅ 完成したときの状態

プログラムから出した投稿が、ほかのアカウントから見ても、画像3枚とキャプションがそろって見えている状態です。

*別のアカウントで開いた、完成した投稿(1枚目)*
🧰 始める前に用意するもの

まず、Instagramのプロアカウント(ビジネスかクリエイター)と、Metaの開発者アカウントを用意します。ぼくはクリエイター(MEDIA_CREATOR)を使い、開発者アカウントは作成済みでした。
投稿の素材は、JPEG画像1080×1350を3枚と、キャプションです。画像を一時的にネットへ置く場所にはVercel(バーセル)を使い、投稿後に置き場を消す作りにしました。
さらに、Pythonで専用に作った投稿プログラムを使っています。パソコンに最初から入っているものではなく、別途準備する道具です。
💡 Instagram の API は、画像をネット上のアドレスからしか受け取りません。パソコンの中の画像を直接は送れないので、「一時的に置く場所」が要ります。
🪜 手順

手順1:Meta の開発者のページで、アプリを作る
Meta for Developers の「マイアプリ」から「アプリを作成」に進み、名前とユースケース(使い道)を選んでいきます。最後の「概要」の画面です。

*①ユースケースが「Instagramでメッセージとコンテンツを管理」になっているのを確かめて、②「アプリを作成」を押します。メールアドレスは隠しています*
① ユースケースは「Instagramでメッセージとコンテンツを管理」を選びます。
② 内容を確かめて「アプリを作成」を押します。
手順2:自分の Instagram を「テスター」に追加する
今回は、アプリが「開発中」の状態で、自分をテスターに追加しました。アプリの「アプリの役割」で「メンバーを追加」を押します。
※用語の補足②「テスター」=そのアプリを試す人です。追加だけで終わらず、Instagram側でも招待を受けます。

*①「Instagramテスター」を選び、②投稿したいアカウント名を入れて、③「追加」*
手順3:Instagram の側で、招待を「承認する」
追加しただけでは、まだ使えません。投稿したいアカウントで Instagram にログインして、招待を受けます。
Instagram の「設定」→「アプリとウェブサイト」を開きます。

*①「テスターへのご招待」を開き、作ったアプリ(今回は [アカウント名は非掲載])の②「承認する」を押します*
手順4:Instagram でログインして、「許可」を出す
開発者のページのアプリに戻り、「Instagramログインによる API 設定」から、投稿したいアカウントでログインします。

*ログインは本人がします(パスワードは画面に出さないよう、この画像では隠しています)*
ログインすると、「何を許可するか」の画面が出ます。最初は「コンテンツへのアクセスと公開」だけがオンでした。

*最初の状態。「コンテンツへのアクセスと公開」がオン。上には「メッセージへのアクセスを許可するには、この設定をオンにする必要があります。」と出ています*
今回は、あとでコメントへの返事などにも使う予定だったので、全部オンにしました。

*①今回は将来の返信にも使うため全部オンにし、②「許可」を押しました。投稿だけのために全部オンをすすめる画面ではありません*
投稿だけが目的なら、全部オンにする必要があるかは、この記事では確かめていません
手順5:鍵(アクセストークン)を、チャットに貼らずに保存する
「許可」のあと、開発者のページでアクセストークンを作ります。
※用語の補足③「アクセストークン」=許可された操作をするための鍵です。パスワードと同じように、他人へ渡さずに扱います。
この画面は鍵がそのまま写るため、この記事には載せていません
鍵はチャットやメモに貼らず、コピーしたものをプログラムが直接ファイルにしまうやり方にしました
以下は、専用の `save_instagram_from_clipboard.py` を用意した作業フォルダで動かしたコマンドです。このファイルや `.venv` は、読者のパソコンに最初からあるものではありません。コマンドに鍵の文字は書きません。
.venv/bin/python -B save_instagram_from_clipboard.py画面に出るのは「保存できた/できなかった」だけです。保存できたら、クリップボードは空になります
⚠️ コピー履歴を残すアプリを使っている場合は、そのアプリに鍵が残ります。その1件だけを手で消します
手順6:鍵が使えるか、Meta 公式の道具で確かめる
Meta の「アクセストークンデバッガー」で、保存した鍵を確かめます。

*「有効」が True か、期限が切れていないか、許可した中身が目的に合っているかを確かめます。今回5つ並んでいたことは、全員が5つ必要という意味ではありません*
今回の有効期限は 2026年12月5日でした。期限の前に延ばす必要があります
手順7:投稿したいアカウントと、ちゃんとつながっているか確かめる
ここからはターミナル(文字で命令する画面)での作業です。`sedo.py` も今回専用に作ったプログラムです。そのプログラムで、まず「読むだけ」の確認をしました(投稿はしません)。
.venv/bin/python -B sedo.py check-connection --media Instagram出てきた結果(番号は伏せています):
{"media": "Instagram", "account_id": "(投稿用のID)", "identity_verified": true, "read_only": true, "publishing_verified": false, ...}`identity_verified: true` は「つながった先が、投稿したいアカウント本人だった」という意味です
手順8:本番と同じ指定で「試運転」する
投稿の命令に `--dry-run`(試運転)を付けて動かします。画像は置かず、投稿もしません。
.venv/bin/python -B sedo.py publish --media Instagram --approval approvals/(この作品の許可ファイル).json --dry-run"checks": {
"作品の版と画像の指紋": "OK",
"公開の許可(設定のスイッチ・許可ファイル)": "OK",
"専用の鍵ファイル(600・期限)": "OK",
"Vercel(コマンドとログイン)": "OK",
"二重送信の記録": "OK"
},
"ready_to_publish": true全部 OK になるまで、本番には進みません
「公開の許可」は、持ち主が「出していい」と言った作品だけ、許可のファイルと設定のスイッチで OK になる作りにしました(勝手に投稿しないため)
手順9:本番の1本を出す
同じ命令から `--dry-run` を外して動かします。
.venv/bin/python -B sedo.py publish --media Instagram --approval approvals/(この作品の許可ファイル).jsonプログラムの中では、次の順に進みます。
1.画像3枚を Vercel に一時的に置き、外から同じ画像が読めるまで待つ
2.Instagram に画像を1枚ずつ渡し、3枚をまとめた「入れ物」を作る
3.公開して、投稿の中身とアカウントを読み返して確かめる
4.Vercel の一時的な置き場を消す(成功しても失敗しても)
結果:
"result": "api_verified_public_view_pending",
"url": "[公開先URLは非掲載]",
"image_host_removed": true`api_verified_public_view_pending` は「API での確かめは済み。ほかの人からの見え方は、まだ人の目で見ていない」という意味です
🔍 ほかの人から見えるかを確かめる

別のアカウントで投稿のページを開き、画像を1枚ずつ送って確かめました。

*2枚目も見えています*

*3枚目と、右側のキャプションも見えています*
ログインしていない状態での見え方は、この記事では確かめていません
🧗 今回、実際につまずいたところ

つまずき1:ID が2種類あって、同じではなかった
確かめの途中で、Instagram の「投稿用のID」と、デバッガーに出る「App-Scoped User ID(アプリの中だけのID)」がちがう番号でした。
対処:この2つはもともと別の種類の番号です。同じでなくても問題ありません。投稿には「投稿用のID」を使います。
つまずき2:権限を調べる窓口がエラーでも、鍵は使えた
権限の一覧を調べる窓口がエラー(HTTP 400・401)を返しました。
対処:鍵が切れたと決めつけず、「自分のアカウントを読む」窓口(成功した)と、Meta 公式のデバッガーの画面で確かめました。鍵は有効でした。
つまずき3:いつもの Python では、プログラムが動かなかった
このMacにもともと入っていた Python には、通信に使う部品(requests)が入っていませんでした。
対処:この作業専用の Python の部屋(`.venv`)を作り、そこに入れました。以後のコマンドは、すべて `.venv/bin/python` で動かしています。
⚠️ 気をつけること

鍵(アクセストークン)は、チャット・メモ・スクリーンショットに出さない。期限(今回は2026年12月5日)の前に延ばす
Vercel の無料プランは「個人の非商用向け」とされています。お仕事で使うときは、規約に合うかを確かめてください
一度送った作品は記録され、同じ作品を二重に送らないようになっています。結果が分からないときも、勝手に送り直しません
今回は、1本出したあとに設定のスイッチをオフに戻しました。次の作品も、1本ずつ「出していい」をもらってから出します
📝 まとめ

ぼくは、最初の1本が見えたところで、投稿のスイッチをオフに戻しました。
次の作品も、画像と文章を見て「これを出す」と決めてから進めます。AIに任せることと、公開する作品を自分で決めることは、両立できます。
Xの接続だけを先に進めた記録もあります。SNSによって、許可を出す画面は違いました。








