Skip to content

埋め込みウィジェット

ウェブサイト用の埋め込みウィジェットを作成・管理します。ウィジェットは、単一のスクリプトタグで任意のウェブページに統合できる、すぐに使える占星術機能のUIコンポーネントを提供します。

必要なモジュール

すべてのウィジェットエンドポイントには、組織で module:embeddable-widgets モジュールが有効になっている必要があります。


ウィジェットタイプ

アクティブなモジュールに基づいて、以下のウィジェットタイプが利用可能です:

タイプ説明必要なモジュール
natalインタラクティブなネイタルチャートnatal:calc
synastryシナストリー比較チャートsynastry:calc
transitトランジットチャートオーバーレイtransit:calc
compositeコンポジット関係チャートcomposite:calc
moonphase月の満ち欠け表示moonphase:calc
daily-horoscope全星座の毎日のホロスコープmodule:daily-report
numerology数秘術プロファイルフォームmodule:numerology
compatibility太陽サインの相性compatibility:calc
moon-calendar月間月カレンダーmoon-calendar:calc

ウィジェット管理

ウィジェットの一覧

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

ウィジェットの取得

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

ウィジェットの作成

ウィジェットは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"
          }
        }
      }
    }
  }'

ウィジェットの更新

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"
        }
      }
    }
  }'

ウィジェットの削除

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

ウィジェットレスポンス

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"
        }
    }
}

APIキーの再生成

ウィジェットの埋め込みAPIキーを再生成する。キーが漏洩した場合に使用してください:

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

キーのローテーション

キーを再生成した後、古いキーを使用した既存の埋め込みは直ちに機能しなくなります。埋め込みコードを更新する必要はありません — ウィジェットIDは同じままです。


利用可能なウィジェットオプション

アクティブなモジュールに基づいて、組織で利用可能なウィジェットタイプを取得する:

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

レスポンス

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

プラン機能

機能説明
canRemoveBrandingAstroAPIのブランディングを非表示にできるかどうか
canUseCustomLogoデフォルトの代わりにカスタムロゴを表示できるかどうか
canUseCustomCssウィジェットにカスタムCSSを注入できるかどうか
maxDomainsウィジェットあたりの許可ドメインの最大数

カスタマイズオブジェクト

customization オブジェクトはウィジェットの外観と動作を制御します:

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"
    }
}

カスタマイズフィールド

フィールド説明
colors.primarystringプライマリアクセントカラー(16進数)
colors.secondarystringセカンダリアクセントカラー(16進数)
colors.backgroundstringウィジェット背景色(16進数)
colors.textstringメインテキスト色(16進数)
colors.borderstringボーダー色(16進数)
fonts.familystringCSSのfont-family値
fonts.sizestringベースフォントサイズ(CSS値)
borders.radiusstringカードと入力フィールドのボーダー半径(CSS値)
borders.widthstringボーダー幅(CSS値)
spacing.paddingstring内部パディング(CSS値)
spacing.gapstring要素間のギャップ(CSS値)
shadows.cardstringカード要素のCSS box-shadow
layoutstringウィジェットのレイアウトスタイル(以下を参照)
interaction.allowUserInputbooleanユーザーが独自の出生データを入力できるかどうか
interaction.showTooltipsbooleanホバー時にツールチップを表示する
branding.showPoweredByboolean「Powered by AstroAPI」バッジを表示する
branding.logoUrlstring | nullカスタムロゴURL(canUseCustomLogo が必要)
languagestring表示言語コード
customCssstring | nullカスタムCSSの注入(canUseCustomCss が必要)
widgetOptions.showAspectsbooleanチャートにアスペクトラインを表示する
widgetOptions.showPointsbooleanチャートに惑星シンボルを表示する
widgetOptions.showHousesbooleanチャートにハウス区分を表示する
widgetOptions.chartSizenumberチャートサイズ(ピクセル)
widgetOptions.themestringカラーテーマ("light" または "dark"

レイアウトオプション

説明
compact最小スペース、サイドバーに適している
card影付きの角丸カード(デフォルト)
full全幅、ボーダーなし
minimal背景なし、ボーダーレス

ウィジェットの埋め込み

ウィジェットを作成した後、レスポンスから embedCode をコピーして、ウェブサイトのHTMLに貼り付けてください:

html
<!-- ウィジェットを表示したい場所に配置する -->
<div id="astroapi-widget-container"></div>

<!-- ウィジェットスクリプトを読み込む -->
<script
    src="https://cdn.astroapi.cloud/widget.js"
    data-widget-id="wgt_abc123">
</script>

ドメインの許可リスト

ウィジェットは allowedDomains にリストされているドメインでのみ読み込まれます。ウィジェットを埋め込む予定のすべてのドメイン(www バリアントを含む)を追加してください。

AstroAPI Documentation