Skip to content

Widget Có thể Nhúng

Tạo và quản lý các widget có thể nhúng cho website của bạn. Widget cung cấp các thành phần UI sẵn sàng sử dụng cho các tính năng chiêm tinh học có thể được tích hợp vào bất kỳ trang web nào chỉ với một thẻ script.

Module Bắt buộc

Tất cả các endpoint widget yêu cầu module module:embeddable-widgets được kích hoạt cho tổ chức của bạn.


Các Loại Widget

Các loại widget sau có sẵn dựa trên các module đang hoạt động của bạn:

LoạiMô tảModule Bắt buộc
natalLá số tử vi tương tácnatal:calc
synastryLá số so sánh hợp tinhsynastry:calc
transitLớp phủ lá số quá độtransit:calc
compositeLá số kết hợp quan hệcomposite:calc
moonphaseHiển thị pha trăngmoonphase:calc
daily-horoscopeTử vi hàng ngày cho tất cả các cungmodule:daily-report
numerologyBiểu mẫu hồ sơ số họcmodule:numerology
compatibilityTương hợp cung mặt trờicompatibility:calc
moon-calendarLịch mặt trăng hàng thángmoon-calendar:calc

Quản lý Widget

Liệt kê Widget

bash
curl "https://api.astroapi.cloud/api/widgets" \
  -H "X-Api-Key: your-api-key"

Lấy Widget

bash
curl "https://api.astroapi.cloud/api/widgets/wgt_abc123" \
  -H "X-Api-Key: your-api-key"

Tạo Widget

Widget được tạo bằng định dạng JSON:API:

bash
curl -X POST "https://api.astroapi.cloud/api/widgets" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "widgets",
      "attributes": {
        "name": "My Natal Chart Widget",
        "widgetType": "natal",
        "allowedDomains": ["example.com", "www.example.com"],
        "customization": {
          "language": "en",
          "layout": "card",
          "colors": {
            "primary": "#5b2d8e",
            "background": "#ffffff",
            "text": "#1a1a1a"
          },
          "widgetOptions": {
            "showAspects": true,
            "showPoints": true,
            "showHouses": true,
            "chartSize": 500,
            "theme": "light"
          }
        }
      }
    }
  }'

Cập nhật Widget

bash
curl -X PATCH "https://api.astroapi.cloud/api/widgets/wgt_abc123" \
  -H "X-Api-Key: your-api-key" \
  -H "Content-Type: application/vnd.api+json" \
  -d '{
    "data": {
      "type": "widgets",
      "id": "wgt_abc123",
      "attributes": {
        "name": "Updated Widget Name",
        "customization": {
          "language": "nl"
        }
      }
    }
  }'

Xóa Widget

bash
curl -X DELETE "https://api.astroapi.cloud/api/widgets/wgt_abc123" \
  -H "X-Api-Key: your-api-key"

Phản hồi Widget

json
{
    "data": {
        "type": "widgets",
        "id": "wgt_abc123",
        "attributes": {
            "name": "My Natal Chart Widget",
            "widgetType": "natal",
            "allowedDomains": ["example.com", "www.example.com"],
            "embedCode": "<script src=\"https://cdn.astroapi.cloud/widget.js\" data-widget-id=\"wgt_abc123\"></script>",
            "customization": {
                "language": "en",
                "layout": "card",
                "colors": {
                    "primary": "#5b2d8e",
                    "background": "#ffffff",
                    "text": "#1a1a1a"
                },
                "widgetOptions": {
                    "showAspects": true,
                    "showPoints": true,
                    "showHouses": true,
                    "chartSize": 500,
                    "theme": "light"
                }
            },
            "createdAt": "2024-06-15T12:00:00Z",
            "updatedAt": "2024-06-15T12:00:00Z"
        }
    }
}

Tái tạo API Key

Tái tạo API key nhúng của widget. Sử dụng nếu key đã bị xâm phạm:

bash
curl -X POST "https://api.astroapi.cloud/api/widgets/wgt_abc123/regenerate-key" \
  -H "X-Api-Key: your-api-key"

Xoay vòng Key

Sau khi tái tạo key, các nhúng hiện có sử dụng key cũ sẽ ngừng hoạt động ngay lập tức. Bạn không cần cập nhật mã nhúng — ID widget vẫn giữ nguyên.


Các Tùy chọn Widget Có sẵn

Lấy các loại widget có sẵn cho tổ chức của bạn dựa trên các module đang hoạt động:

bash
curl "https://api.astroapi.cloud/api/widgets/options" \
  -H "X-Api-Key: your-api-key"

Phản hồi

json
{
    "data": {
        "availableTypes": ["natal", "moonphase", "daily-horoscope"],
        "planFeatures": {
            "canRemoveBranding": false,
            "canUseCustomLogo": false,
            "canUseCustomCss": true,
            "maxDomains": 5
        }
    }
}

Tính năng Gói

Tính năngMô tả
canRemoveBrandingLiệu thương hiệu AstroAPI có thể được ẩn
canUseCustomLogoLiệu logo tùy chỉnh có thể hiển thị thay cho mặc định
canUseCustomCssLiệu CSS tùy chỉnh có thể được inject vào widget
maxDomainsSố lượng tối đa tên miền được phép mỗi widget

Đối tượng Tùy chỉnh

Đối tượng customization kiểm soát giao diện và hành vi của widget:

json
{
    "colors": {
        "primary": "#5b2d8e",
        "secondary": "#a07cc5",
        "background": "#ffffff",
        "text": "#1a1a1a",
        "border": "#e0e0e0"
    },
    "fonts": {
        "family": "Inter, sans-serif",
        "size": "14px"
    },
    "borders": {
        "radius": "8px",
        "width": "1px"
    },
    "spacing": {
        "padding": "16px",
        "gap": "12px"
    },
    "shadows": {
        "card": "0 2px 8px rgba(0,0,0,0.1)"
    },
    "layout": "card",
    "interaction": {
        "allowUserInput": true,
        "showTooltips": true
    },
    "branding": {
        "showPoweredBy": true,
        "logoUrl": null
    },
    "language": "en",
    "customCss": ".astroapi-widget { font-weight: 500; }",
    "widgetOptions": {
        "showAspects": true,
        "showPoints": true,
        "showHouses": true,
        "chartSize": 500,
        "theme": "light"
    }
}

Các Trường Tùy chỉnh

TrườngKiểuMô tả
colors.primarystringMàu nhấn chính (hex)
colors.secondarystringMàu nhấn phụ (hex)
colors.backgroundstringMàu nền widget (hex)
colors.textstringMàu văn bản chính (hex)
colors.borderstringMàu viền (hex)
fonts.familystringGiá trị CSS font-family
fonts.sizestringKích thước phông chữ cơ sở (giá trị CSS)
borders.radiusstringBán kính viền cho thẻ và đầu vào (giá trị CSS)
borders.widthstringĐộ rộng viền (giá trị CSS)
spacing.paddingstringKhoảng đệm nội bộ (giá trị CSS)
spacing.gapstringKhoảng cách giữa các phần tử (giá trị CSS)
shadows.cardstringCSS box-shadow cho các phần tử thẻ
layoutstringKiểu bố cục widget (xem bên dưới)
interaction.allowUserInputbooleanLiệu người dùng có thể nhập dữ liệu sinh của họ
interaction.showTooltipsbooleanHiển thị tooltip khi di chuột
branding.showPoweredBybooleanHiển thị huy hiệu "Powered by AstroAPI"
branding.logoUrlstring | nullURL logo tùy chỉnh (yêu cầu canUseCustomLogo)
languagestringMã ngôn ngữ hiển thị
customCssstring | nullInjection CSS tùy chỉnh (yêu cầu canUseCustomCss)
widgetOptions.showAspectsbooleanHiển thị đường góc chiếu trên lá số
widgetOptions.showPointsbooleanHiển thị ký hiệu hành tinh trên lá số
widgetOptions.showHousesbooleanHiển thị phân chia cung nhà trên lá số
widgetOptions.chartSizenumberKích thước lá số tính bằng pixel
widgetOptions.themestringGiao diện màu sắc ("light" hoặc "dark")

Các Tùy chọn Bố cục

Giá trịMô tả
compactKhông gian tối thiểu, phù hợp cho sidebar
cardThẻ tròn có bóng (mặc định)
fullToàn chiều rộng, không viền
minimalKhông nền, không viền

Nhúng Widget

Sau khi tạo widget, sao chép embedCode từ phản hồi và dán vào HTML của website của bạn:

html
<!-- Đặt ở nơi bạn muốn widget xuất hiện -->
<div id="astroapi-widget-container"></div>

<!-- Tải script widget -->
<script
    src="https://cdn.astroapi.cloud/widget.js"
    data-widget-id="wgt_abc123">
</script>

Danh sách Tên miền Cho phép

Widget chỉ tải trên các tên miền được liệt kê trong allowedDomains. Hãy chắc chắn thêm tất cả các tên miền (bao gồm cả biến thể www) nơi bạn định nhúng widget.

AstroAPI Documentation