# Make

Kịch bản gửi ngày, giờ, múi giờ và tọa độ sinh đến API và nhận lại các dấu hiệu Mặt Trời, Mặt Trăng và Ascendant từ phản hồi. Yêu cầu dưới đây đã được gửi đến production chính xác như nó được tạo bởi module; các bước trong Make được viết theo tài liệu Make cho ứng dụng HTTP phiên bản 4 tại thời điểm 2026-09-17. Ứng dụng HTTP có sẵn trên gói miễn phí của Make.

Đầu tiên, hãy tạo khóa như được mô tả trong phần [Khóa tự động hóa](/integrations/#khóa-để-tự-động-hóa), với phạm vi `chart`.

## 1. Thêm module HTTP với keychain

Thêm ứng dụng **HTTP**, module **Make a request**. Make khuyên nên truyền thông tin xác thực qua trường riêng biệt thay vì qua headers, và keychain giữ khóa bên ngoài kịch bản.

1. **Authentication type**: API key.
2. **Credentials**: tạo keychain. Đặt tên cho nó, chèn khóa vào **Key**, vị trí **In the header**, tên tham số `X-Api-Key`.

## 2. Soạn thảo yêu cầu

- **URL**:

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

- **Method**: `POST`.
- **Body content type**: `application/json`.
- **Body input method**: JSON string.
- **Body content**: JSON dưới đây với giá trị từ trigger của bạn.
- **Parse response**: Yes.

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

Giữ dấu ngoặc kép quanh mỗi giá trị được ánh xạ, cả số cũng vậy: giá trị được đưa vào chuỗi JSON như văn bản thuần túy, và API chấp nhận `"50.45"` như một số. Chính **Parse response** với giá trị Yes làm cho `data` có thể được ánh xạ trong module tiếp theo.

Chạy module một lần. Trong gói đầu ra, `data.input.timezoneOffset` ví dụ bằng `4`: độ lệch mà Kiev có vào ngày đó.

## 3. Ánh xạ các dấu hiệu

Trong bất kỳ module tiếp theo nào, trường với công thức sau cho dấu hiệu Ascendant:

```
get(split("Овен,Телець,Близнюки,Рак,Лев,Діва,Терези,Скорпіон,Стрілець,Козеріг,Водолій,Риби"; ","); floor(ASCENDANT / 30) + 1)
```

trong đó thay `ASCENDANT` bằng `data.houses.ascendant`. `+ 1` là cần thiết vì `get()` đếm từ 1, trong khi số thứ tự dấu hiệu bắt đầu từ 0. Ví dụ `floor(159.26 / 30) + 1` bằng `6`, và tên thứ sáu là `Xử Nữ`.

Đối với Mặt Trời và Mặt Trăng, lấy `longitude` của phần tử đầu tiên và thứ hai trong `data.planets`, mà Make ánh xạ như `data.planets[1].longitude` và `data.planets[2].longitude`. Ví dụ đây là Kim Ngưu và Ma Kết.

## Khi module gặp lỗi

- **`400 INVALID_FIELD` với `timezone` trong `details`**: múi giờ được ánh xạ trống, đây là viết tắt như `EST` hoặc không phải tên múi giờ.
- **`400` với `date` hoặc `time` trong `details`**: định dạng trigger không phải `YYYY-MM-DD` / `HH:MM:SS`; định dạng nó trước khi gọi thông qua `formatDate()`.
- **`403 ENDPOINT_NOT_IN_SCOPE`**: phạm vi của khóa không có `chart`.
- **`429 KEY_BUDGET_EXHAUSTED`**: khóa đã hết ngân sách; nâng cấp nó trong dashboard.

<Aside type="note">
API không thực hiện địa lý hóa. Ứng dụng Google Maps trong Make có thể chuyển đổi tên địa điểm thành tọa độ, nhưng cần khóa Google Cloud API với thanh toán được bật.
</Aside>
