> ## 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.

# Webhook 概要

> イベントの更新を受信するために Webhook を登録する Webhook 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} />

## Webhook とは?

Webhook を使用すると、特定のシステム *アクション* が発生したときに、提供された URL への呼び出しを通じて通知を受け取ることができます。Webhook は「URL コールバック」または「HTTP プッシュコール」とも呼ばれます。URL は SSL を使用し、HTTPS で始まる必要があります。

<Card title="Webhook アクション" icon="link" href="/apis/webhooks/actions" horizontal>
  Webhook で利用可能なアクションを確認します。
</Card>

### Ayrshare Webhook を理解する

Webhook は特定のアクションによって分類され、*Primary Profile または User Profile レベルで登録* されます。Primary または User Profile への更新は、まず User Profile 用に登録された Webhook に送信されます。User Profile に登録された Webhook がない場合、更新は Primary Profile に登録された Webhook に送信されます。

たとえば:

<ul class="custom-bullets">
  <li>
    User Profile に登録された Social Action Webhook があり、TikTok のリンクを解除した場合、User Profile 用に登録された Social Action Webhook URL が呼び出されます。Primary Profile の Webhook は呼び出されません。
  </li>

  <li>
    User Profile が TikTok のリンクを解除し、登録された Social Action Webhook がないが、Primary Profile に登録された Webhook がある場合、Primary Profile 用に登録された Social Action Webhook URL が呼び出されます。
  </li>
</ul>

### Webhook を登録する

エンドポイント URL とアクションタイプを POST [`/hook/webhook`](/apis/webhooks/register) エンドポイントに提供して Webhook を登録します。アクションが発生すると、提供された URL に `HTTP POST` メッセージが送信されます。
たとえば、スケジュール投稿のステータス通知を受け取るために URL を登録します。

Webhook エンドポイント URL はリダイレクトを使用してはならず、最終的な宛先 URL である必要があります。

Primary Profile の Webhook のみを登録した場合、User Profile は自動的に Primary Profile の Webhook を継承します。
各 User Profile に一意の Webhook を持たせるには、User Profile ごとに Webhook を登録する必要があります。

<Note>
  Webhook が `HTTP POST` を受信した後、サーバーは呼び出しを成功としてマークするために、HTTP ステータス `200` で応答する **必要があります**。サーバーが 10 秒以内に応答しない場合、`503` レスポンスが記録されます。
</Note>

Developer Dashboard で Webhook を登録することもできます。

### Webhook の再試行

サーバーからの HTTP レスポンスが `200-299` の成功範囲にない場合、システムは Webhook 呼び出しを自動的にさらに 2 回再試行します。最初の再試行は 5 秒後、2 番目の再試行はその 30 秒後に行われます。再試行は同じ `hookId` を持ち、再試行の試みとしてマークされます。

## Webhook セキュリティ

HMAC 認証を HTTP リクエストとして設定することで、追加のセキュリティを追加することを選択できます。これはしばしばリプレイ攻撃を防ぐために行われます。Ayrshare は [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) を使用してメッセージのボディをハッシュ化し、それと UNIX タイムスタンプを POST のヘッダーに含めます。

```bash theme={"system"}
X-Authorization-Timestamp : <Unix Timestamp In Seconds>
X-Authorization-Content-SHA256 : <HashedContent>
```

[webhook 登録時](/apis/webhooks/register) に設定した秘密鍵に基づいて、ヘッダーの X-Authorization-Content-SHA256 と POST ボディの SHA256 ハッシュを比較することで、POST を検証できます。秘密鍵はすべての webhook アクションで使用されるため、1 つのアクションに設定するとすべてのアクションの秘密が変更されます。

## Webhook ログ

Ayrshare ダッシュボードで、[アクティブな webhook](https://app.ayrshare.com/webhooks) を確認し、送信された Webhook の詳細、サーバーの応答ステータスを確認し、登録された URL に Webhook を再送信できます。
特定の User Profile に切り替えて、そのプロファイルの Webhook ログを表示します。

### HTTP レスポンスコード

最初の列は Webhook からの成功した HTTP レスポンス ✔️ (200, 300) または失敗したレスポンス ✖️ (400, 500) を示します。

特定のユーザープロファイルに切り替えて、そのプロファイルの Webhook ログを表示します。

### エラー率

最新の 1,000 件の投稿の「エラー率」は、ダッシュボード内の Actions ページと Webhook Logs ページの両方で確認できます。サーバーからの 400-500 の webhook レスポンスはエラーとみなされます。
