# Zapier

トリガーから日付、時間、ゾーン、出生座標を受け取り、APIにチャートをリクエストし、アセンダントをサイン名に変換するZap。以下のリクエストは、ステップで作成されたとおりに本番環境に送信されています；Zapierのステップは、2026-09-17時点のZapierドキュメントに基づいて記述されています。

<Aside type="caution" title="Zapierの有料プランが必要です">
API by Zapier、Webhooks by Zapier、Formatterはプレミアムアプリです。Zapierのドキュメントはすべて3つをFreeプランでは利用不可としてマークしており、Lookup TableステップはProfessionalプラン以上を必要とします。Freeプランでは[Make](/integrations/make/)または[n8n](/integrations/n8n/)を使用してください。
</Aside>

まず、[自動化用キー](/integrations/#ключ-для-автоматизації)のセクションで説明されているように、`chart`スコープでキーを作成します。

## 1. 接続にキーを配置する

Webhooks by Zapierステップに入力されたヘッダーはステップ自体に保存され、Zapにアクセスできるすべての人が見ることができます。API by Zapierはヘッダーを接続に保持します。

1. **Apps**ページで**+ Add connection**をクリックし、**API by Zapier**を選択します。
2. **Authentication type**: Static Headers (API key)。
3. **Headers**: `X-Api-Key: `とその後にあなたのキーを、1行で入力します。
4. **Domain filter**: `api.astroway.info`、これにより接続を他の場所に向けることができなくなります。

## 2. カートを呼び出す

アクションを追加し、**API by Zapier**を選択し、イベントとして**API Request**と接続を選択します。

- **Method**: `POST`。
- **URL**:

  ```
  https://api.astroway.info/v1/chart
  ```

- **Body**: 以下のJSONで、値の代わりにトリガーフィールドを使用します。

```json
{
  "date": "1990-05-15",
  "time": "14:30:00",
  "timezone": "Europe/Kyiv",
  "latitude": "50.45",
  "longitude": "30.52"
}
```

各値を対応するトリガーフィールドに置き換え、各値の周りに引用符を保持します（数字も同様）。Zapierは一致するフィールドをプレーンテキストとして挿入し、引用符自体は追加しませんが、APIは`"50.45"`を数値として受け取ります。Headersステップにキーを追加しないでください：接続がそれを提供します。

ステップをテストします。正しい応答は`"ok": true`で始まり、例えば`data.input.timezoneOffset`は`4`になります：その日キーウが持っていたオフセットです。

## 3. アセンダントをサインに変換する

2つのFormatterステップ。

**Formatter、イベントNumbers、Spreadsheet-Style Formula変換。** フォーミュラ：

```
FLOOR(ASCENDANT / 30)
```

ここで、`ASCENDANT`の代わりにステップ2の`data.houses.ascendant`を代入します。例えば、結果は`5`になります。

**Formatter、イベントUtilities、Lookup Table変換。** Lookup Keyはフォーミュラの結果です。テーブル：

| Key | Value |
|---|---|
| 0 | Aries |
| 1 | Taurus |
| 2 | Gemini |
| 3 | Cancer |
| 4 | Leo |
| 5 | Virgo |
| 6 | Libra |
| 7 | Scorpio |
| 8 | Sagittarius |
| 9 | Capricorn |
| 10 | Aquarius |
| 11 | Pisces |

例えば、結果は`Virgo`です。ウクライナ語の名前を取得するには、Value列にそれらを書き込みます。

太陽と月も同じようにカウントされます。これらは`data.planets`の最初と2番目のエントリで、それぞれ独自の`longitude`を持っています：例えば54.34（牡牛座）と296.39（山羊座）です。

## Webhooks by Zapierを使用している場合

動作しますが、キーは接続ではなくステップにあります。チャートの場合、Custom Requestイベントを選択します：これはDataフィールドを入力されたまま送信するため、上記のJSONは変更なしで使用できます。MethodをPOSTに設定し、HeadersにX-Api-Key（あなたのキー）とContent-Type（値はapplication/json）の両方を追加します。

## ステップが失敗した場合

- **`400 INVALID_FIELD`で`details`に`timezone`がある**: マップされたゾーンが空、またはESTのような略称、またはゾーン名ではありません。
- **`details`に`date`または`time`がある`400`**: トリガーの形式がYYYY-MM-DD / HH:MM:SSではありません；日付の呼び出し前にFormatterステップを追加してください。
- **`403 ENDPOINT_NOT_IN_SCOPE`**: キーのスコープに`chart`がありません。
- **`429 KEY_BUDGET_EXHAUSTED`**: キーが自身の予算を使い切りました；ダッシュボードで予算を引き上げてください。

APIはジオコーディングを行いません。トリガーが場所名しか持っていない場合、座標はトリガー自体またはジオコーディングサービスから取得する必要があります（そのサービスのキーをお持ちの場合）。
