> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Instagram API

> Instagram API を使用した投稿のオプション

<Info>
  Instagram の接続に問題がある場合は、[トラブルシューティングガイド](/help-center/technical-support/facebook_or_instagram_linking_issues) を参照してください。
</Info>

<Info>
  メディアがご自身で管理するサーバーや CDN でホストされている場合は、Meta の公開クローラーがそれを取得できるようにしてください。Ayrshare エラーコード 440（「social network could not download media from this URL」）または詳細に「Restricted by robots.txt」が含まれるエラーコード 138 が表示された場合は、[Meta Media Crawler Blocked](/help-center/technical-support/meta_media_crawler_blocked) を参照してください。
</Info>

<div class="video-container">
  <iframe width="380" height="200" src="https://www.youtube.com/embed/3F7mbVN0qrw" title="Posting to Instagram API" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" />
</div>

Instagram API には以下の要件と制限があります。

<ul class="custom-bullets">
  <li>
    Facebook Page に接続されたビジネスまたはクリエイターの Instagram アカウント（[こちら](/dashboard/connect-social-accounts/instagram) を参照）。
  </li>

  <li>24 時間で許可される Instagram 投稿は 50 件のみです。`usedQuota` については後述します。</li>

  <li>
    `post` テキストには最大 *5 個のハッシュタグ*（例: #wildtimes）と *3 個のユーザー名メンション*
    （例: @natgeo）を含めることができます。
  </li>

  <li>@mention された Instagram ユーザーには通知が送られます。</li>
  <li>投稿の最大文字数は 2,200 文字です。</li>

  <li>
    複数画像・動画の投稿がサポートされ、カルーセルとして送信されます。最大 10 本の動画と画像を送信できます。
  </li>

  <li>
    Instagram は API 経由での削除をサポートしていません。削除は Instagram アプリを使用して手動で行う必要があります。
  </li>

  <li>
    Reel の動画が mp4 のような既知の動画拡張子で終わらない場合は、`isVideo` パラメータを使用してください。詳細は [/post エンドポイント](/apis/post/post) を参照してください。
  </li>

  <li>
    Instagram は投稿テキストなしでのメディア送信もサポートします。投稿テキストを含めたくない場合は、空の文字列 `post: ""` を送信してください。
  </li>

  <li>詳細は [Instagram メディアガイドライン](/media-guidelines/instagram) および [Instagram 認証](/dashboard/connect-social-accounts/instagram) を参照してください。</li>
</ul>

## Instagram への投稿

Instagram に画像とハッシュタグを含む基本的な投稿の JSON:

```json Instagram Post theme={"system"}
{
  "post": "The best IG ever #best #awesome https://www.instagram.com",
  "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"],
  "platforms": ["instagram"]
}
```

Instagram 投稿ではハッシュタグはクリック可能ですが、リンクはクリックできません。

<Note>
  画像と動画のアスペクト比、および動画の長さは Instagram に正常に投稿するために非常に重要です。要件を満たしていない場合、投稿は拒否されます。

  [画像および動画ガイドラインの Instagram セクションを参照してください](/media-guidelines/instagram)。
</Note>

## Instagram ビジネスまたはクリエイターアカウント

Instagram アカウントはビジネスまたはクリエイターアカウントであり、Facebook Page に接続されている必要があります。セットアップは無料で簡単です。

詳細な手順はこちらを参照してください:

<Card title="Instagram Linking" icon="link" href="/dashboard/connect-social-accounts/instagram" horizontal />

## 画像と動画のカルーセル

複数の画像や Reel 動画をカルーセルとして Instagram に投稿できます。カルーセルには合計最大 10 枚の画像または動画を含めることができます。
`mediaUrls` 配列に追加の画像や動画を追加するだけで、カルーセルが自動的に作成されます。

```json Instagram Carousel Post theme={"system"}
{
  // Max 10 images or videos
  "mediaUrls": ["https://url.com/image.jpg", "https://url.com/video.mp4"]
}
```

<Note>
  動画 URL は `mp4` のような既知の拡張子で終わる必要があります。`isVideo` パラメータは Instagram カルーセルではサポートされていません。
</Note>

## Instagram Reels

Instagram では動画投稿を Reel と呼びます。
以下のオプションの `instagramOptions` を使用して、Instagram Reels API に動画を投稿できます。

```json Instagram Reels Options theme={"system"}
{
  "instagramOptions": {
    "shareReelsFeed": true,
    "audioName": "The Weeknd - Blinding Lights",
    "thumbNail": "https://img.ayrshare.com/012/gb.jpg", // if used, thumbNailOffset will be ignored.
    "thumbNailOffset": 30000
  }
}
```

<ul class="custom-bullets">
  <li>
    動画要件の詳細については、[Reels API 動画要件](/media-guidelines/instagram#reels) を参照してください。
  </li>

  <li>
    `shareReelsFeed`: Reel が **Feed** タブと **Reels** タブの両方に表示 *可能* であることを示すには
    `true`、**Reels** タブのみに表示 *可能* であることを示すには `false` を設定するブール値です。この値は Reel を表示したい場所についての Instagram へのヒントですが、どちらの値も Reel が **Reels** または **Feed** タブに *実際に* 表示されるかどうかを決定するものではありません。Reel が資格要件を満たしていない、または Instagram のアルゴリズムによって選択されない可能性があるためです。
  </li>

  <li>
    `audioName`: Reels メディアのオーディオ音楽の名前を表す文字列。名前を変更できるのは 1 回のみで、Reel の作成中またはオーディオページから後で変更できます。例: `"The Weeknd - Blinding Lights"`。
  </li>

  <li>
    `thumbNail`: Reel のカバー画像（サムネイル）の URL 文字列。詳細については [thumbNail の詳細](/apis/post/social-networks/instagram#reels-thumbnails) を参照してください。
  </li>

  <li>
    `thumbNailOffset`: サムネイルフレームのミリ秒単位の整数オフセット。詳細については [thumbNailOffset の詳細](/apis/post/social-networks/instagram#reels-thumbnails) を参照してください。
  </li>
</ul>

[Reels API の動画要件](/media-guidelines/instagram#reels) または [Instagram Reels API の使用例](https://www.ayrshare.com/blog/instagram-reels-api-how-to-post-videos-to-reels-using-a-social-media-api/) を参照してください。

[Reels カバー URL](/apis/post/social-networks/instagram#reels-thumbnails) や [位置情報とユーザータグ](/apis/post/social-networks/instagram#user-tags-and-locations) を設定することもできます。

## トライアル Reels

トライアル Reel は、最初に投稿されたときにフォロワー以外のユーザーにのみ公開される Reel で、既存のフォロワーに届く前に、新鮮なオーディエンスに対してどのように機能するかをテストできます。トライアルとして Reel を公開するには、`instagramOptions` の `trialParams.graduationStrategy` を設定します。

```json Instagram Trial Reel theme={"system"}
{
  "post": "Testing this with a fresh audience first",
  "mediaUrls": ["https://img.ayrshare.com/random/portrait1.mp4"],
  "platforms": ["instagram"],
  "instagramOptions": {
    "trialParams": {
      "graduationStrategy": "MANUAL"
    }
  }
}
```

`graduationStrategy` は、トライアル Reel が後で「卒業」する（つまり、フォロワーにも見えるようになる）方法を制御します。`trialParams` が指定されている場合は必須で、次のいずれかである必要があります。

<ul class="custom-bullets">
  <li>
    <code>"MANUAL"</code> — Instagram アプリ内から手動で卒業させるまで、投稿はトライアル Reel のままです。
  </li>

  <li>
    <code>"SS\_PERFORMANCE"</code> — Meta は、フォロワー以外に対する初期パフォーマンスに基づいて Reel を自動的に卒業させます。
  </li>
</ul>

<Note>
  卒業自体（公開済みトライアル Reel をフォロワーに公開すること）は現在 Meta の API で公開されておらず、Instagram アプリ内で手動で実行する必要があります。Meta が公開したときに、Ayrshare は卒業エンドポイントを追加します。
</Note>

### トライアル Reel の制限

トライアル Reel リクエストは、以下の条件のいずれかが満たされない場合、Meta を呼び出す前に Ayrshare のエッジで拒否されます。

<ul class="custom-bullets">
  <li><code>.mp4</code> または <code>.mov</code>（大文字と小文字を区別しない）で終わるメディア URL がちょうど 1 つ。カルーセルはサポートされていません。</li>
  <li><code>instagramOptions.stories</code> が <code>true</code> であってはなりません。Stories はトライアル Reel にできません。</li>
  <li><code>graduationStrategy</code> が存在し、正確に <code>"MANUAL"</code> または <code>"SS\_PERFORMANCE"</code>（大文字と小文字を区別）である必要があります。</li>
</ul>

失敗した場合、3 つの Ayrshare エラーコードのいずれかが返されます。完全なペイロードについては、[Instagram トライアル Reel エラー](/errors/errors-ayrshare#instagram-specific-error-codes)（<code>447</code>、<code>448</code>、<code>449</code>）を参照してください。

## Instagram Stories

以下の `instagramOptions` を使用して、単一の画像または動画を Instagram Story として投稿できます。Instagram Stories は 24 時間後に消えます。

```json Stories Post theme={"system"}
{
  "post": "The description of the video",
  "mediaUrls": ["https://img.ayrshare.com/random/portrait1.mp4"],
  "instagramOptions": {
    "stories": true
  }
}
```

[Stories API の要件](/media-guidelines/instagram#stories) を参照してください。

<ul class="custom-bullets">
  <li>
    Instagram Stories は投稿テキストをサポートしていません。`post` フィールドに提供されたテキスト（メンションを含む）はすべて無視されます。
  </li>

  <li>Stories は 24 時間後に期限切れになります。</li>

  <li>
    Instagram は現在、Instagram ビジネスアカウントでのみ Story 公開をサポートしており、クリエイターアカウントではサポートしていません。
  </li>

  <li>Instagram Stories はコラボレーターをサポートしていません。</li>
  <li>ステッカー（リンク、投票、位置情報など）の公開は Instagram でサポートされていません。</li>
</ul>

## Reels のサムネイル

Reel のフレームをサムネイル画像として選択するか、外部 URL から独自のカバー画像（サムネイル）を選択できます。

```json Instagram Thumbnail theme={"system"}
{
  "instagramOptions": {
    // milliseconds
    "thumbNailOffset": 30000,
    // If both thumbNail and thumbNailOffset includes, thumbNail will be used.
    "thumbNail": "https://img.ayrshare.com/012/gb.jpg"
  }
}
```

オフセットは、動画 Reel のサムネイルフレームのミリ秒単位の位置です。デフォルト値は `0` で、Reel の最初のフレームです。

サムネイル URL とサムネイルオフセットの両方を指定した場合、サムネイルオフセットは無視されます。

Reel のサムネイルは、[Reels サムネイル要件](/media-guidelines/instagram#reels-thumbnails) に従う必要があります。
リダイレクトを伴う署名付き URL は、カバー URL との互換性が保証されません。
署名なしの URL、または [/media エンドポイント](/apis/media/overview) の使用を推奨します。

## 代替テキスト

Instagram の代替テキスト（alt テキストとも呼ばれます）を画像に追加します。
Instagram の代替テキストは、ユーザーへの追加情報の提供とスクリーンリーダーのためのアクセシビリティ機能です。

<ul class="custom-bullets">
  <li>代替テキストは画像 1 枚あたり最大 1,000 文字までサポートされます。</li>
  <li>Instagram は Reels や Stories に対する代替テキストをサポートしていません。</li>
</ul>

`instagramOptions` オブジェクト内の `altText` を使用します。

```json Instagram Alt Text theme={"system"}
{
  "instagramOptions": {
    // Array of Alt Texts
    "altText": ["This is my best pic", "😃 here is the next one"]
  }
}
```

各代替テキストは、`mediaUrls` 配列内の画像または動画に対応している必要があります。
代替テキストは各画像に順番に適用されます。

## ユーザータグと位置情報

<Info>
  投稿でユーザー名を使用すると、Instagram ユーザーに通知が送られます。ユーザーにスパムを送ったり、同じユーザー名で繰り返し投稿したりしないよう注意してください。そうすると、Instagram はアカウントを一時停止または無効化する可能性があります。
</Info>

`instagramOptions` パラメータを使用して、画像や Reel には Instagram ユーザーをタグ付けし、画像・動画・Reel には位置情報をタグ付けできます。

### 位置情報

位置情報は `locationId` で指定します。これは Facebook Page ID または Facebook Page 名です。たとえば、[Guggenheim Museum](https://www.facebook.com/guggenheimmuseum) の Facebook Page ID は `7640348500`、または Facebook Page 名は `"@guggenheimmuseum"` です。Page は物理的な位置に関連付けられている必要があります。

```json Instagram Location theme={"system"}
// Using the Facebook Page Id - must be associated with a location
{
    "instagramOptions": {
        "locationId": 7640348500 // Guggenheim Museum Page Id
    }
}

// Using the Facebook Page name - must be associated with a location
{
    "instagramOptions": {
        "locationId": "@guggenheimmuseum" // Guggenheim Museum Page name. Must begin with @
    }
}
```

[brand エンドポイント](/apis/brand/overview) を使って `locationId`（Page ID）を検索できます。Page に位置情報が登録されていない場合、locationId はエラーを返します。

<Note>カルーセル内の画像や動画ではサポートされていません。</Note>

### ユーザータグ

Instagram タグを使用すると、投稿内で他の Instagram ユーザーをタグ付けできます。
ユーザーは、Instagram ユーザー名と x/y 座標（画像のみ）を持つオブジェクトの配列を含む `userTags` で指定します。ユーザータグは単一の画像や Reels に追加できますが、通常の動画、複数の画像、Stories には追加できません。

<ul class="custom-bullets">
  <li>ユーザー名は公開の Instagram アカウントである必要があります。ユーザーハンドルの @ は含めないでください。</li>

  <li>
    `x` と `y` の値は、画像の左上を原点とする `float` の数値で、範囲は `0.0`–`1.0` です。単一の画像に対して使用します。Reels に含めるとエラーが発生します。
  </li>
</ul>

```json Instagram User Tags theme={"system"}
{
  "instagramOptions": {
    "userTags": [
      {
        "username": "ayrshare", // Required: Instagram username
        "x": 0.5, // Required for Images, cannot be used with Reels
        "y": 1.0 // Required for Images, cannot be used with Reels
      },
      {
        "username": "johnboy", // Required: Instagram username
        "x": 0.1, // Required for Images, cannot be used with Reels
        "y": 0.9 // Required for Images, cannot be used with Reels
      }
    ]
  }
}
```

## Instagram メンション

投稿テキストに @handle を追加することで、別の Instagram ハンドルにメンションできます。

たとえば、投稿テキストで @ayrshare ハンドルにメンションできます:

```json Instagram Mentions theme={"system"}
{
  "post": "The best social media API @Ayrshare ever!", // empty string is allowed
  "mediaUrls": ["https://images.com/image.jpg"],
  "platforms": ["instagram"]
}
```

<Warning>
  `@mentioned` されたユーザーはメンションについて通知を受けます。メンションに関する [重要なルール](/testing/post-verification#mentions) を確認してください。
</Warning>

## コラボレーション

Instagram のコラボレーション機能を使用すると、[他の人をコラボレーターとしてタグ付け](https://www.facebook.com/help/instagram/291200585956732) することで、他の Instagram アカウントとコンテンツを共著できます。
これにより、他の Instagram ユーザーを投稿の作成者として指定できます。
タグ付けされると、これらのユーザーはモバイルアプリでコラボレーションの招待を受け取ります。
承諾すると、投稿はそのユーザーのフィードにも表示され、フォロワーに公開されるため、投稿のリーチとエンゲージメントの可能性が拡大します。

### コラボレーター

公開アカウントの元の作成者は、別の公開アカウントを Instagram コラボレーターとしてタグ付けできます。
相手のアカウントにはメッセージが送信され、リクエストを承諾するか拒否できます。
相手のアカウントが承諾すると、投稿はそのプロフィールにも表示され、Instagram フィードでフォロワーに配信されます。
投稿のヘッダーには両方のアカウントがコンテンツの作成者として表示されます。

Reel、画像、またはカルーセルにコラボレーターを追加できます。

Instagram API を通じてプライベートコラボレーターをタグ付けすることは許可されていません。Instagram アプリ内にはそのような機能が存在しますが、プラットフォームとその API は多くの場合、[機能パリティ](/help-center/product/are_social_networks_native_apps_and_the_apis_at_parity) が保たれていません。

<Warning>Instagram Stories はコラボレーターをサポートしていません。</Warning>

<Warning>
  <ul class="custom-bullets">
    <li>**招待を `accept` することが期待できるコラボレーターのみを招待してください**。</li>

    <li>
      [コラボレーターがコラボレーションリクエストに対して `declined` で応答した場合](/apis/post/social-networks/instagram#get-collaborator-request-status)、拒否の理由を確認するために連絡を取るまで、**再招待しないでください**。
    </li>

    <li>
      同じ、または複数のユーザーからの繰り返しの拒否は、Instagram および Ayrshare アカウントのキャンセルのリスクをもたらします。
    </li>

    <li>元の作成者は、いつでもコラボレーターを追加または削除できます。</li>
  </ul>
</Warning>

公開の Instagram ユーザー名の配列を使用して、*最大 3 人* のコラボレーターを招待します。

```json Instagram Collaborators theme={"system"}
{
  "instagramOptions": {
    "collaborators": ["ayrshare", "therock", "taylorswift"] // Up to three
  }
}
```

これら 3 人のコラボレーターは Instagram モバイルアプリでメッセージ招待を受け取り、招待を承諾または拒否できます。その後、[招待されたユーザーのリクエストステータスを確認](/apis/post/social-networks/instagram#get-collaborator-request-status) できます。
リクエストを承諾することがわかっているコラボレーターのみを招待してください。そうしないと、Instagram アカウントに悪影響を与える可能性があります。

<Warning>
  招待されたコラボレーターに関する注意点: いくつかの例外を除いて、共著メディアに関するデータは、メディアを公開したユーザーのみが API 経由でアクセスできます。コラボレーターはこのデータに API 経由でアクセスできません。
</Warning>

### コラボレーターリクエストのステータスを取得

Instagram コラボレーターを招待した後、[Get Collaborator Request Status API](/apis/utils/instagram-get-collaborator) を使用してリクエストのステータスを確認できます。

## 画像の自動リサイズ

<Note>Max Pack が必要です</Note>

`autoResize` パラメータを使用すると、画像は Instagram で使用できるように 1080 x 1080 px に自動的にリサイズされます。この機能は、含まれるすべてのプラットフォームで画像をリサイズすることに注意してください。Instagram 用に 1 回の呼び出しを行い、追加のプラットフォーム用に別の /post 呼び出しを行うことをお勧めします。

```json Instagram Auto Image Resize theme={"system"}
{
  "post": "Let it go!",
  "platforms": ["instagram"],
  "mediaUrls": ["https://images.ayrshare.com/imgs/GhostBusters.jpg"],
  "instagramOptions": {
    "autoResize": true, // Max Pack
    "locationId": 7640348500,
    "userTags": [
      {
        "username": "ayrshare",
        "x": 0.5,
        "y": 0.5
      },
      {
        "username": "ayrshare",
        "x": 0.3,
        "y": 0.2
      }
    ]
  }
}
```

## 使用済みクォータ

Instagram のレスポンスには、直近 24 時間の Instagram 投稿数の現在の `usedQuota` が含まれます。Instagram では、24 時間のローリングウィンドウで 50 件の Instagram 投稿のみが許可されます。

```json Instagram Used Quota theme={"system"}
{
    "status": "success",
    "errors": [],
    "postIds": [
        {
            "status": "success",
            "id": "17823977408036085",
            "postUrl": "https://www.instagram.com/p/CeBrkQuN1Kv/",
            "usedQuota": 15,
            "platform": "instagram"
        }
    ],
    "id": "l4FaPHSXWJNdmMfm3dIE",
    "refId": "65806e8d9efd78a58c05566a887043329dcdc76b",
    "post": "Luckily for Alice, the little magic bottle had now had its full effect."
}
```

クォータに達した場合、エラーメッセージが返されます。

## コンテンツの問題

Ayrshare には、投稿中に特定のメディア配信の問題を検出して解決できる組み込みのメディア保護機能があります。投稿が成功したが、コンテンツの問題が検出されて解決された場合、レスポンスにはオプションの `contentIssues` オブジェクトが含まれます。これにより、メディアホスティングの問題を積極的に特定して修正できます。

`contentIssues` オブジェクトは、問題が検出されて解決された場合にのみ存在します。通常の成功した投稿には含まれません。

| フィールド                   | 型       | 説明                                                                                                                                                                                                                         |
| ----------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `originMediaHostFailed` | boolean | ソーシャルネットワークが提供された URL からメディアを取得できませんでした。Ayrshare の自動メディア保護が問題を解決し、投稿を正常に完了しました。メディアホスティングの構成を見直すことを検討してください。一般的な原因については [Meta Media Crawler Blocked](/help-center/technical-support/meta_media_crawler_blocked) を参照してください。 |
| `details`               | 文字列の配列  | 検出された各問題の人間が読める説明。                                                                                                                                                                                                         |

```json Content Issues Response Example theme={"system"}
{
    "status": "success",
    "errors": [],
    "postIds": [
        {
            "status": "success",
            "id": "17878176260289172",
            "postUrl": "https://www.instagram.com/p/CP1dI9Hp_WO/",
            "usedQuota": 12,
            "platform": "instagram",
            "contentIssues": {
                "originMediaHostFailed": true,
                "details": [
                    "Media URL could not be retrieved by the social network. Successfully posted using Ayrshare automated media protection."
                ]
            }
        }
    ],
    "id": "abc123",
    "refId": "65806e8d9efd78a58c05566a887043329dcdc76b",
    "post": "Your post text here"
}
```

<Tip>
  レスポンスに `originMediaHostFailed` が表示される場合、ソーシャルネットワークがメディアにアクセスできないメディアホスティングの問題がある可能性があります。詳細なトラブルシューティング手順については、[Meta Media Crawler Blocked](/help-center/technical-support/meta_media_crawler_blocked) を参照してください。
</Tip>

## エラー詳細

<Info>
  Instagram メディア公開が失敗すると、エラーオブジェクトは Meta の根本的なエラーテキストを、Ayrshare の `code` および `message` と共に `details` フィールドで公開します。これにより、サポートに連絡することなく、さまざまな根本原因（たとえば、アスペクト比の拒否とメディアダウンロードの失敗など）を区別できます。
</Info>

```json Instagram Publish Error theme={"system"}
{
    "status": "error",
    "errors": [
        {
            "action": "post",
            "status": "error",
            "platform": "instagram",
            "code": 156,
            "message": "An error occurred while posting to Instagram.",
            "details": "The submitted image was not found. The aspect ratio is not supported. Please see https://developers.facebook.com/docs/instagram-api for more information."
        }
    ]
}
```

`message` は Ayrshare の安定した、人間が読めるサマリーであり、`details` は公開失敗時に Meta が返した生のテキストをそのまま反映します。

## Instagram 投稿に改行やリッチテキストを追加する

Instagram の改行は、特別な [改行文字](/apis/post/post#line-breaks) を使用して投稿に追加できます。

太字や斜体などのリッチテキストは、いくつかの [HTML 要素](/apis/post/overview#rich-text-posts) を使用して Instagram 投稿に追加できます。

## 文字数制限

詳細は [Instagram 文字数制限](/help-center/technical-support/character_limits#instagram-character-limits) を参照してください。

## 追加のエンドポイント

<Card title="Get Collaborator Request Status" icon="code" href="/apis/utils/instagram-get-collaborator" horizontal />
