2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Instagram API 自動投稿手順書 (IG Graph API)

2
Posted at

このドキュメントでは、公式の Instagram Graph API を使用して、プログラム(PythonやcURLなど)から自動的に写真を投稿するための正規の手順と要件を解説します。

[!NOTE]
この方法は公式APIを使用するため、アカウント凍結のリスクは低いですが、**「Instagramプロアカウント」「Facebookページ」**が必須となります。個人のプライベートアカウントでは実行できません。

1. 必須要件 (Prerequisites)

APIを使用するには、以下の条件をすべて満たす必要があります。

  1. Instagramアカウントの種類: プロアカウント(ビジネス または クリエイター)であること。
  2. Facebookページ: InstagramアカウントがFacebookページとリンクされていること。
  3. Meta Developer App: Facebook Developersでアプリを作成し、適切な権限を持っていること。
  4. 画像の公開URL: APIに渡す写真は、インターネット上の公開サーバー(AWS S3, Google Driveの公開リンクなど)にある必要があります。ローカルファイルパス(C:...)は指定できません。

2. セットアップ手順

Step 1: Facebook Developersでの準備

  1. Meta for Developers にアクセスし、アプリを作成します(タイプ: "Business" など)。
  2. 「製品」から Instagram Graph API を追加します。
  3. グラフAPIエクスプローラなどを使い、アクセストークンを取得します。
    • 必要な権限 (Permissions):
      • instagram_basic
      • instagram_content_publish (投稿に必須)
      • pages_show_list
      • pages_read_engagement

Step 2: Instagram Business Account ID の取得

APIリクエストには、あなたのアカウントの IG Business ID が必要です。

GET /me/accounts?fields=instagram_business_account

レスポンス内の instagram_business_account.id をメモしてください。

3. 投稿実行フロー (2段階プロセス)

Instagram APIでの投稿は、「① メディアコンテナの作成」「② コンテナの公開」 という2ステップで行います。

Step 1: メディアコンテナの作成 (Create Container)

写真をアップロード状態にする(コンテナを作る)ステップです。

  • Endpoint: POST /{ig-user-id}/media
  • Parameters:
    • image_url: 写真の公開URL (必須, JPEGのみ)
    • caption: 投稿のキャプション(ハッシュタグ含む)

cURL例:

curl -X POST "https://graph.facebook.com/v21.0/{ig-user-id}/media" \
  -d "image_url=https://www.example.com/images/kobe.jpg" \
  -d "caption=APIからのテスト投稿 #instagramapi" \
  -d "access_token={access-token}"

成功レスポンス:

{
  "id": "1788945556..." // コンテナID
}

Step 2: コンテナの公開 (Publish Container)

作成したコンテナIDを指定して、実際にフィードに公開します。

  • Endpoint: POST /{ig-user-id}/media_publish
  • Parameters:
    • creation_id: Step 1で取得したコンテナID

cURL例:

curl -X POST "https://graph.facebook.com/v21.0/{ig-user-id}/media_publish" \
  -d "creation_id={container-id}" \
  -d "access_token={access-token}"

成功レスポンス:

{
  "id": "17918..." // 投稿のメディアID
}

4. 制限事項と注意点

  • 画像フォーマット: JPEGのみサポート(PNG不可)。アスペクト比は 4:5 ~ 1.91:1 の範囲内である必要があります。
  • API制限 (Rate Limit):
    • 1日あたり約25投稿(Basic)〜 100投稿まで(以前の制限。現在は変動あり)。
    • 短時間に大量のリクエストを送るとAPI制限がかかります。
  • カルーセル投稿: media_type=CAROUSEL を指定し、各画像を children として紐付ける複雑なステップが必要です。
  • ローカル画像の扱い: ローカルPCにある画像を投稿したい場合、一度imgurやS3などのクラウドストレージにアップロードしてURL化するか、ngrokなどでローカルホストを公開URLにする必要があります。

5. Antigravityで実行する場合の準備

私がこのAPIを実行するように依頼する場合、以下の情報を提供してください。

  1. IG Business ID
  2. 有効な Access Token
  3. 投稿したい画像の Web公開URL

※ アクセストークンなどの機密情報は、チャット欄に直接貼らず、環境変数や別ファイルで渡すことを推奨します。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?