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

# Post API 概要

> 投稿のスケジューリング、自動ハッシュタグ、自動投稿スケジュール、その他

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

post エンドポイントを使用すると、Bluesky、Facebook、Google Business Profile、Instagram、LinkedIn、Pinterest、Reddit、Snapchat、Telegram、TikTok、X/Twitter、YouTube のソーシャルネットワークに投稿できます。
投稿のスケジューリング、自動ハッシュタグの追加、自動投稿スケジュールなど、投稿をカスタマイズするための多くのオプションがあります。
複数のステークホルダーが公開前に投稿を承認する必要がある場合、しばしばエージェンシーで利用されます。

投稿の公開は [/post POST エンドポイント](/apis/post/post) から開始します。

## 承認ワークフロー

公開ワークフローで投稿の送信前に承認が必要な場合は、`requiresApproval` フィールドを `true` に設定します。
これは `approved` パラメーターが `true` に設定されるまで投稿を一時停止することと同等です。

### 承認ワークフローの例

投稿は `approved` パラメーターが [/post PATCH エンドポイント](/apis/post/update-post) 経由で `true` に設定されるまで「awaiting approval」ステータスになります。

<Steps>
  <Step title="パラメーターを指定して公開">
    `requiresApproval` フィールドを `true` にして [/post エンドポイント](/apis/post/post) で投稿を公開します。`scheduleDate` などの標準パラメーターも含めることができます。
  </Step>

  <Step title="ステータスは承認待ち">
    投稿は「awaiting approval」ステータスになり、承認されるまで保留されます。
  </Step>

  <Step title="投稿を承認">
    [/post PATCH 操作](/apis/post/update-post) で `approved` フィールドを `true` に設定して投稿を更新します。投稿はスケジュール時刻に送信されるようになります。
  </Step>

  <Step title="ノートを使用">
    オプション: 参照用に投稿に `notes` を設定します。たとえば誰が投稿を承認する必要があるかなど。
  </Step>
</Steps>

```json Publish the Post with Approval theme={"system"}
{
  "requiresApproval": true,
  "notes": "need approval by John Smith" // optional
}
```

<Warning>
  `scheduleDate` が含まれており、その日付が過去の場合、投稿は承認と同時に即座に公開されます。
</Warning>

### 承認ワークフローの動画

承認ワークフローの例については以下の動画を参照してください。

<div class="video-container">
  <iframe width="380" height="200" src="https://www.youtube.com/embed/DtmTGgqQ-Mo" title="Social Approval Workflow API" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" />
</div>

## 自動ハッシュタグ

投稿に最も関連性の高いハッシュタグを追加します。

`autoHashtag` はオブジェクトまたは Boolean 値です。以下のパラメーターがあります:

<ul class="custom-bullets">
  <li>`max`: (オプション)追加するハッシュタグの整数、範囲 1〜10。デフォルト 2。</li>

  <li>
    `position`: (オプション)文字列 "auto" または "end"。Auto は投稿内または末尾にハッシュタグを追加します。"end" は末尾にのみハッシュタグを追加します。
  </li>
</ul>

*有料プランが必要です。*

```json theme={"system"}
{
  "hashtags": {
    "max": 3, // optional: Integer range 1-10
    "position": "auto" // optional: String "auto" or "end"
  }
}
```

上記オプションを送信しない場合は、オブジェクトの代わりに Boolean 値 `true` を渡します。

```json theme={"system"}
{
  "autoHashtag": true
}
```

## 自動リポスト

コンテンツを定期的な間隔で複数回自動的にリポストし、オーディエンスに常に新鮮で目に留まるエバーグリーンなコンテンツを作成します。
有料プランが必要です。

パラメーター:

* `repeat`: (必須)コンテンツをリポストする回数。1〜10 の間である必要があります。
* `days`: (必須)各リポスト間の日数。最低 2 日である必要があります。
* `startDate`: (オプション)リポストスケジュールを開始する日時。ISO-8601 UTC 形式。指定しない場合、最初の投稿は即座に公開されます。トップレベルの `scheduleDate` パラメーターの代わりに `startDate` パラメーターを使用してください。

```json Auto Repost theme={"system"}
{
  "repeat": 2, // min 2, max 10
  "days": 5, // min 2
  "startDate": "2021-07-08T12:30:00Z"
}
```

レスポンスには将来スケジュールされたすべてのリポストと、各リポストの `autoRepostId` が含まれます。

```json Auto Repost Response theme={"system"}
{
  "status": "scheduled",
  "scheduleDate": "2025-06-13T12:30:00.000Z",
  "id": "eIT96IYEodNuzU4oMmwG",
  "refId": "9abf1426d6ce9122ef11c72bd",
  "autoRepostId": "F5wdoaOAAGtDQVciExSxL",
  "post": "The most important things are the hardest to say - Stephen King"
}
```

自動リポストの作成時、その投稿シリーズを追跡するために ID `autoRepostId` が割り当てられます。

投稿のすべての自動リポストは、`autoRepostId` を使用して [History call](/apis/history/get-history) で取得できます。

リポストを削除する必要がある場合は、投稿 ID を指定して [DELETE call](/apis/post/delete-post) を使用できます。

<Tip>
  重要: 自動リポストを使用する場合、アカウント制限を回避するために各ソーシャルネットワークの投稿頻度ガイドラインに従ってください。

  注意: `autoRepost` 機能は `scheduleDate` と一緒に使用できません。両方のパラメーターを含めると、`scheduleDate` が優先され、`autoRepost` は無視されます。代わりに `startDate` パラメーターを使用してください。
</Tip>

## First Comment

投稿が公開された後、メディア付きで自動的に最初のコメントを追加します。TikTok の場合、コメントは動画の処理が完了するまで延期されます([First Comment 処理時間](#first-comment-processing-time) を参照)。
自分自身のソーシャルメディア投稿に最初のコメントを投稿することで、エンゲージメントを促進し、その後の議論の雰囲気を設定できます。

```json theme={"system"}
{
  "firstComment": {
    "comment": "My first comment", // required
    "mediaUrls": ["https://..."] // Facebook, LinkedIn, and X/Twitter only
  }
}
```

## First Comment 処理時間

ほとんどのソーシャルネットワークでは、当社のシステムが (1) 元の投稿が完全に公開されるのを待ち、(2) 公開された投稿にコメントを追加する必要があるため、API レスポンスが遅延します。この逐次処理により、約 20 秒の遅延が追加されます。

**TikTok は異なる方法で処理されます。** TikTok は動画を非同期で処理するため、TikTok の `post.publish.publicly_available` webhook が実際の動画 ID を解決するまで、投稿 `id` は `"pending"` です([TikTok Processing](/apis/post/social-networks/tiktok#tiktok-processing) を参照)。したがって、`/post` レスポンスは即座に `status: "pending"` の TikTok first comment を返し、TikTok の処理が完了して [`tikTokPublished` Scheduled Action webhook](/apis/webhooks/actions#scheduled-action) が発火すると、コメントは自動的に投稿されます。TikTok は処理時間を保証していないため、固定の遅延はありません。

**TikTok に関する重要な注意事項**: TikTok で first comment が正常に機能するには、投稿の `visibility` パラメーターが `public` に設定されている必要があります。非公開動画は `publicly_available` webhook を受信しないため、first comment は投稿できません。その場合、Ayrshare は保留したままにするのではなく、コメントエラーを返します。

## 冪等な投稿

[冪等性](https://en.wikipedia.org/wiki/Idempotence) は、リクエストが誤って複数回送信されても 1 回だけ実行されることを保証するオプション機能です。
API を使用してコンテンツを投稿する際、リクエストボディに `idempotencyKey` パラメーターをオプションで含めることで、操作を一意に識別できます。これにより、重複した投稿を作成するリスクなく、post リクエストを安全に再試行できます。

冪等性を使用するには、`/post` POST リクエストの JSON ボディに `idempotencyKey` パラメーターを追加します:

```json Idempotency Key theme={"system"}
{
  "idempotencyKey": "Unique Key"
}
```

`idempotencyKey` の値は User Profile ごとに一意の文字列である必要があります。指定された User Profile に対して同じ `idempotencyKey` でリクエストが行われた場合、投稿の状態(success、error、pending、または deleted)に関係なく、重複キーが見つかったことを示すエラーが返されます。

<Warning>
  重複を保存してチェックするために、API はまず POST リクエストを受け取って処理する必要があります。ただし、同じ `idempotencyKey` の複数の POST リクエストが同時に送信されるか、同じ投稿時刻にスケジュールされている場合、API は重複キーを検出できない場合があります。これは、API が任意の単一リクエストから冪等性キーを登録する前に、これらの同時または同時刻にスケジュールされたリクエストを並行して処理するためです。その結果、同時送信または同時実行のスケジュール投稿のシナリオでは、重複した冪等キーが捕捉される保証はありません。
</Warning>

冪等性を使用することは、失敗したリクエストの再試行やネットワーク問題の処理時に、意図しない重複投稿の作成を防ぐのに役立ちます。ただし、潜在的な障害を適切に処理するために、アプリケーションで適切なエラーハンドリングと再試行メカニズムを実装することを引き続きお勧めします。

## 画像と動画の要件

画像と動画の投稿には各ネットワークで異なる要件がありますが、心配は不要です。当社のシステムは送信前に投稿を検証するため、何か問題があればエラー応答が返されます。画像と動画のガイドラインの詳細については、以下のリンクを参照してください。

<Card title="画像と動画のガイドライン" icon="link" href="/media-guidelines" horizontal />

### 有効な URL

メディア URL が有効で、直接メディアにアクセスできることを確認してください。
最初のテストとして、ブラウザで URL を試してください。
ブラウザで画像がロードされない、またはダウンロードできない場合、ほぼ確実に失敗します。
たとえば、DropBox Web アプリを開く DropBox URL は動作しません。

<Tip>
  [Google Drive の共有 URL](https://www.ayrshare.com/how-to-get-direct-download-urls-from-google-drive/) や [Dropbox の共有 URL](https://www.ayrshare.com/blog/how-to-get-direct-download-urls-from-dropbox/) をお持ちの場合は、投稿またはコメントを公開する際に `mediaUrls` パラメーターにその URL をそのまま使用できます。Ayrshare が自動的に共有 URL をダウンロードリンクに変換します。
</Tip>

`HEAD` リクエストを行うことで、メディア URL を検証します。
ホスティングプロバイダーが `HEAD` リクエストをブロックしていないことを確認してください。そうでないと投稿は 403 エラーで失敗します。

たとえば、メディア URL への `HEAD` リクエストは次のとおりです:

```javascript Fetch HEAD Request theme={"system"}
const run = async () => {
  const url = "https://img.ayrshare.com/012/gb.jpg";
  return await fetch(url, {
    method: "HEAD"
  })
    .then((res) => {
      if (res.ok) {
        return console.log("Success:", res.status, res.statusText);
      } else {
        return console.error("Error:", res.status, res.statusText, res);
      }
    })
    .catch((error) => {
      return console.error("Error Catch:", error);
    });
};

run();
```

#### 自動メディア保護

Ayrshare には、投稿中に特定のメディア配信の問題を検出して解決できる組み込みのメディア保護機能があります。投稿が成功しても、コンテンツの問題が検出されて解決された場合、`postIds[]` の各対応エントリにオプションの `contentIssues` オブジェクトが含まれるため、根本的な問題を特定して修正できます:

```json theme={"system"}
{
    "postIds": [
        {
            "status": "success",
            "platform": "instagram",
            "id": "17878176260289172",
            "postUrl": "https://www.instagram.com/p/CP1dI9Hp_WO/",
            "contentIssues": {
                "originMediaHostFailed": true,
                "details": ["Media URL could not be retrieved by the social network. Successfully posted using Ayrshare automated media protection."]
            }
        }
    ]
}
```

レスポンスに `originMediaHostFailed` が表示される場合は、メディアホスティング設定を確認してください。一般的な原因と解決策については [Meta Media Crawler Blocked](/help-center/technical-support/meta_media_crawler_blocked) を参照してください。

#### スペースと特殊文字

メディア URL には以下を避けることをお勧めします:

<ul class="custom-bullets">
  <li>URL 内のスペース。</li>
  <li>URL 内の URL エンコードされたスペース。</li>
  <li>URL 内の特殊文字。URL エンコードされていても、é などのアクセント記号など。</li>
</ul>

たとえば:

```bash theme={"system"}
https://img.ayrshare.com/012/test .webp
```

この URL は `test .webp` のスペースが原因で失敗します。また、`%20` などの URL エンコードされたスペースを URL に使用することもお勧めしません。一部のソーシャルネットワークでも問題が発生する可能性があります。

そして、この Unsplash 画像:

```bash theme={"system"}
https://unsplash.com/photos/a-house-in-the-middle-of-a-field-with-trees-in-the-background-znbmh2-cIj0
```

この Unsplash 画像は、画像に直接アクセスするのではなく Web アプリを表示しているため失敗します。

#### ファイル名と URL のサニタイズ

`/[^a-z0-9\/\.]/gi` のような正規表現でファイル名をサニタイズできます。

```javascript theme={"system"}
const sanitizeFileName = (url) => url.replace(/[^a-z0-9\/\.]/gi, "_");
sanitizeFileName("tést .webp"); // t_st_.webp
```

または URL をサニタイズします

```javascript theme={"system"}
const sanitizeUrl = (url) => {
  const [protocol, rest] = url.split("://");
  const [domain, ...path] = rest.split("/");
  const sanitizedPath = path.join("/").replace(/[^a-z0-9\/\.]/gi, "_");
  return `${protocol}://${domain}/${sanitizedPath}`;
};

// Output: https://img.ayrshare.com/012/t_st_.webp
sanitizeUrl("https://img.ayrshare.com/012/tést .webp");
```

### 追加情報

<Info>
  <ul class="custom-bullets">
    <li>
      自身でホストしている場合、URL が外部からアクセス可能で、特別な権限が必要ないことを確認してください。
    </li>

    <li>
      AWS S3 などの署名付き URL のように、拡張子が不明な動画を処理する方法については以下を参照してください。
    </li>

    <li>
      S3 などの署名付き URL を使用している場合、URL の有効期限を少なくとも 7 日に設定することをお勧めします。これにより、投稿の公開に関するご質問へのサポートが可能になります。
    </li>

    <li>
      [verify media tools](/apis/media/verify-media-url) でメディア URL が存在するかテストしてください。
    </li>
  </ul>
</Info>

### ダウンロード速度

メディアホスティングが高速な接続、特にダウンロード速度が速いことを確認してください。メディアホスティングのパフォーマンスは [pingdom](https://tools.pingdom.com/) でテストできます。少なくとも *B 評価* をお勧めします。

### 動画の拡張子

URL が `mp4` などの既知の動画拡張子で終わらない場合、投稿で `isVideo: true` フィールドを使用して `mediaUrl` が動画であることを指定できます。Ayrshare は `MOV` などのファイルタイプを判断しようとします。ただし、ソーシャルネットワークでの成功率が高いため、動画ファイルは `mp4` などの既知の拡張子で明示的に終わることをお勧めします。

### 画像または動画のみ

いくつかのソーシャルネットワークは、投稿テキストなしでメディアを送信することをサポートしています。投稿テキストを含めない場合は、空の文字列 `post: ""` を送信します。

以下のソーシャルネットワークが投稿テキストなし/空白テキストをサポートします: Facebook, Instagram, LinkedIn, Threads, TikTok, X/Twitter。

### 画像と動画のテスト

テストを高速化するために [ランダムなテキストとランダムな画像または動画を生成](/quickstart#sending-test-posts-with-a-random-quote-image-or-video) することを検討してください。テスト投稿ごとに新しいアイデアを考える必要はもうありません!

## 改行

<Info>
  投稿内で改行(新しい行)を入れる場合は、非表示の改行 `\u2063\n` を使用します。たとえば、`This is a new\u2063\nline.`

  新しい改行がお好みの言語でどのように翻訳されるかを確認するために、Postman で試すこともお勧めします。たとえば、PHP はしばしば `\n` だけを使用します。

  一部のソーシャルネットワークは、現在投稿テキストでの改行をサポートしていません。
</Info>

## マルチプラットフォーム投稿とメディア

この機能により、単一の API 呼び出しで異なるソーシャルネットワークに合わせて投稿コンテンツとメディアをカスタマイズできます。`post` と `mediaUrls` フィールドにオブジェクトを使用することで、各プラットフォームに固有のテキストや画像を指定できます。

1. `post` と/または `mediaUrls` フィールドにオブジェクト構造を使用します。
2. プラットフォーム名をキーとして使用し、プラットフォーム固有のコンテンツを指定します。
3. 明示的に指定されていないプラットフォームで使用するコンテンツを `default` キーで含めます。

```json theme={"system"}
{
  "post": {
    "instagram": "Great IG pic!",
    "facebook": "Great FB pic!",
    "default": "Great default pic!"
  },
  "platforms": ["instagram", "facebook", "linkedin"],
  "mediaUrls": {
    "instagram": "https://img.ayrshare.com/012/gb.jpg",
    "linkedin": "https://img.ayrshare.com/012/gb.jpg",
    "default": "https://img.ayrshare.com/012/gb.jpg"
  }
}
```

上記の例では:

<ul class="custom-bullets">
  <li>Instagram は固有のテキストと画像 URL を使用します。</li>
  <li>Facebook は固有のテキストとデフォルトの画像 URL を使用します。</li>
  <li>LinkedIn はデフォルトのテキストと固有の画像 URL を使用します。</li>
</ul>

<Info>
  異なるプラットフォームに複数の画像を投稿する必要がある場合は、このマルチプラットフォーム構造を使用する代わりに、プラットフォームごとに別々の投稿を作成してください。
</Info>

## Profile Key

ユーザーの Profile Key をボディパラメーターとして提供し、レスポンスに追加データを含めることで、ユーザーに代わって投稿します。*Business または Enterprise プランが必要です。*

<Card title="Profiles" icon="link" href="/apis/profiles/overview" horizontal />

## リッチテキスト投稿

"𝓗𝓮𝓵𝓵𝓸, how about a little 𝗯𝗼𝗹𝗱 𝘁𝗲𝘅𝘁 and 𝘪𝘵𝘢𝘭𝘪𝘤𝘴 𝘵𝘦𝘹𝘵 and an x₂?" のようなリッチテキストを追加できます。Twitter、Facebook、LinkedIn、Telegram、Instagram などのネットワークでリッチテキストを使用できます。
Reddit に投稿する場合は、[Reddit-flavored Markdown フォーマット](https://www.reddit.com/wiki/markdown#wiki_new_reddit-flavored_markdown) を使用してください。

HTML 要素を使用してリッチテキストのタイプを指定し、Unicode に変換されます。たとえば:

```json theme={"system"}
{
    "post": "<var>Hello</var>, how about a little <b>bold text</b> and <i>italics text</i> and an x<sub>2</sub>?"
    "platforms": ["twitter"]
}
```

### HTML 要素

| HTML                                          | 例                                 |
| --------------------------------------------- | --------------------------------- |
| \<b>Nice One!\</b>                            | **Nice One!**                     |
| \<strong>Hello, world!\</strong>              | **Hello, world!**                 |
| \<em>World\</em>                              | *World*                           |
| normal \<i>italics \<b>bold italics\</b>\</i> | normal *italics **bold italics*** |
| \`\<b>Hello\</b>, world!\`                    | `Hello, world!`                   |
| \`\<b>Hello\</b>, world!\`                    | **`Hello`**`, world!`             |
| \<samp>123\</samp>                            | 𝟷𝟸𝟹                            |
| \<var>Hello\</var>                            | 𝓗𝓮𝓵𝓵𝓸                        |
| x\<sub>2\</sub>                               | x₂                                |
| x\<sup>2\</sup>                               | x²                                |

### CSS コード

| コード      | 例                          | 結果                       |
| -------- | -------------------------- | ------------------------ |
| \u00B0   | It's 25\u00B0C today!      | It's 25°C today!         |
| \u2063\n | This is a new\u2063\nline. | This is a new<br />line. |

## 投稿のスケジューリング

### スケジュール投稿の作成

`scheduleDate` パラメーターに Zulu/UTC 形式の日時を指定することで、将来の投稿をスケジュールできます。Zulu 時間(Coordinated Universal Time (UTC) とも呼ばれる)は、世界標準の時刻です。

たとえば、`YYYY-MM-DDThh:mm:ssZ` 形式で `2026-07-08T12:30:00Z` として送信します。
その他の例については [utctime](https://www.utctime.net/) を参照してください。

```json {5} theme={"system"}
{
  "post": "Hello, world!",
  "mediaUrls": ["https://img.ayrshare.com/012/gb.jpg"],
  "platforms": ["facebook", "instagram"],
  "scheduleDate": "2023-07-08T12:30:00Z"
}
```

現地時間を Zulu/UTC 時間に変換する方法については、[https://www.utctime.net/](https://www.utctime.net/) を参照してください。

スケジュール日時が過去の場合、投稿は即座に送信されます。

<Info>
  スケジュール投稿に `mediaUrl` が含まれている場合、スケジュールされた公開時刻にメディアが利用可能である必要があります。たとえば、投稿が 2026 年 3 月 5 日に公開されるようにスケジュールされている場合、メディアは 2026 年 3 月 5 日に利用可能である必要があります。
</Info>

<Tip>
  スケジュール投稿と即時投稿のエラーハンドリング

  即時投稿とスケジュール投稿では、検証エラーの処理方法に重要な違いがあります:

  * 即時投稿
    * scheduleDate なしで即座に公開する場合、1 つのプラットフォームが検証チェックに失敗しても、他のプラットフォームは処理を続行します。たとえば、投稿が Twitter の文字制限を超えていても Facebook と Instagram では有効な場合、投稿は Twitter では失敗しますが、Facebook と Instagram には公開されます。

  * スケジュール投稿
    * scheduleDate で将来の公開のために投稿をスケジュールする場合、投稿がスケジュールされる前にすべてのプラットフォームが初期検証チェックに合格する必要があります。いずれかのプラットフォームがこれらの事前検証チェックに失敗すると、スケジュール操作全体が拒否され、即座にエラーが返されます。
    * ただし、プラットフォーム固有のエラーは、実際の投稿時刻まで検出されない場合があります。この場合、スケジュールされた投稿はすべてのプラットフォームへの公開を試み、個々のプラットフォームの失敗は他のプラットフォームに影響を与えることなく最終結果に報告されます。
</Tip>

### スケジュール投稿のステータスを確認

スケジュールされた投稿のステータスを確認する方法はいくつかあります:

<ul class="custom-bullets">
  <li>
    [Webhook Scheduled Action](/apis/webhooks/actions#scheduled-action) をセットアップして、スケジュール投稿のステータスを自動的に受信します。これは Business プランで利用可能で、推奨される方法です。
  </li>

  <li>
    投稿 ID を指定して [GET call](/apis/post/get-post) でスケジュール投稿のステータスを取得します。
  </li>

  <li>
    Ayrshare ダッシュボードでステータスを確認します。まず投稿が公開された User Profile に切り替え、次に「Posts」ページに移動して Ayrshare Post ID を使用して検索します。
  </li>
</ul>

### スケジュール投稿の一時停止

まだ公開されていないスケジュール投稿を一時停止できます。
スケジュール投稿を一時停止すると、一時停止が解除されるまで投稿は公開されません。

スケジュール投稿を一時停止または解除するには、[PATCH call](/apis/post/update-post) を使用します。
投稿の一時停止が解除され、`scheduleDate` が過去である場合、投稿は即座に公開されることに注意してください。一時停止を解除する前に `scheduleDate` を更新することを検討してください。

## リンクの短縮

投稿内のリンクは Ayrshare の [リンクショートナー](/apis/links/overview) を使用して短縮できます。投稿を送信する際に `shortenLinks` パラメーターで自動リンク短縮をオンにできます。[Max Pack が必要です](/additional/maxpack)。

```json {4} theme={"system"}
{
  "post": "Hello, world with a link https://www.ayrshare.com",
  "platforms": ["linkedin"],
  "shortenLinks": true
}
```

## Unsplash 画像

`unsplash` ボディパラメーターには以下のフィールドが利用可能です:

<ul class="custom-bullets">
  <li>ランダム画像: `random` はランダムな Unsplash 画像を返します。</li>

  <li>
    検索ベース画像: 値の文字列検索語 (例: `money`) は、money に基づいてランダムな画像を選択します。
  </li>

  <li>
    画像 ID: 値の ID 配列 (例: \["HubtZZb2fCM"]) は画像 [https://unsplash.com/photos/HubtZZb2fCM](https://unsplash.com/photos/HubtZZb2fCM) に対応します
  </li>
</ul>

```json {4,5,6} theme={"system"}
{
  "post": "Hello, world!",
  "platforms": ["instagram"],
  "unsplash": "random",
  "unsplash": "search term", // unsplash: "money"
  "unsplash": ["unsplash image ID"] // unsplash: ["HubtZZb2fCM"]
}
```

<Info>
  Unsplash URL を `mediaUrls` にコピーして投稿する場合、URL だけでなく画像アドレスをコピーしてください。詳細については、この [例](/help-center/technical-support/get_an_unsplash_image_url) を参照してください。
</Info>
