Skip to content

Einbettbare Widgets ​

Erstellen und verwalten Sie einbettbare Widgets für Ihre Website. Widgets bieten gebrauchsfertige UI-Komponenten für Astrologie-Funktionen, die mit einem einzigen Script-Tag in jede Webseite integriert werden können.

Erforderliches Modul

Alle Widget-Endpunkte erfordern das aktivierte Modul module:embeddable-widgets für Ihre Organisation.


Widget-Typen ​

Die folgenden Widget-Typen sind basierend auf Ihren aktiven Modulen verfügbar:

TypBeschreibungErforderliches Modul
natalInteraktives Geburtshoroskopnatal:calc
synastrySynastrie-Vergleichshoroskopsynastry:calc
transitTransit-Horoskop-Überlagerungtransit:calc
compositeKomposit-Beziehungshoroskopcomposite:calc
moonphaseMondphasenanzeigemoonphase:calc
daily-horoscopeTageshoroskop für alle Zeichenmodule:daily-report
numerologyNumerologie-Profilformularmodule:numerology
compatibilitySonnenzei chen-Kompatibilitätcompatibility:calc
moon-calendarMonatlicher Mondkalendermoon-calendar:calc

Widget-Verwaltung ​

Widgets auflisten ​

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

Widget abrufen ​

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

Widget erstellen ​

Widgets werden im JSON:API-Format erstellt:

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

Widget aktualisieren ​

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

Widget löschen ​

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

Widget-Antwort ​

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-Schlüssel neu generieren ​

Den eingebetteten API-Schlüssel des Widgets neu generieren. Verwenden Sie dies, wenn der Schlüssel kompromittiert wurde:

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

Schlüsselrotation

Nach der Neugenerierung des Schlüssels werden bestehende Einbettungen, die den alten Schlüssel verwenden, sofort aufhören zu funktionieren. Sie müssen den Einbettungscode nicht aktualisieren – die Widget-ID bleibt dieselbe.


Verfügbare Widget-Optionen ​

Die für Ihre Organisation verfügbaren Widget-Typen basierend auf Ihren aktiven Modulen abrufen:

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

Antwort ​

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

Plan-Funktionen ​

FunktionBeschreibung
canRemoveBrandingOb das AstroAPI-Branding ausgeblendet werden kann
canUseCustomLogoOb ein benutzerdefiniertes Logo anstelle des Standard-Logos angezeigt werden kann
canUseCustomCssOb benutzerdefiniertes CSS in das Widget injiziert werden kann
maxDomainsMaximale Anzahl erlaubter Domains pro Widget

Anpassungs-Objekt ​

Das customization-Objekt steuert das Erscheinungsbild und Verhalten des Widgets:

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

Anpassungsfelder ​

FeldTypBeschreibung
colors.primarystringPrimäre Akzentfarbe (Hex)
colors.secondarystringSekundäre Akzentfarbe (Hex)
colors.backgroundstringWidget-Hintergrundfarbe (Hex)
colors.textstringHaupttextfarbe (Hex)
colors.borderstringRahmenfarbe (Hex)
fonts.familystringCSS-Schriftfamilien-Wert
fonts.sizestringBasis-Schriftgröße (CSS-Wert)
borders.radiusstringRahmenradius für Karten und Eingaben (CSS-Wert)
borders.widthstringRahmenbreite (CSS-Wert)
spacing.paddingstringInnerer Abstand (CSS-Wert)
spacing.gapstringAbstand zwischen Elementen (CSS-Wert)
shadows.cardstringCSS-Box-Shadow für Kartenelemente
layoutstringWidget-Layout-Stil (siehe unten)
interaction.allowUserInputbooleanOb Benutzer eigene Geburtsdaten eingeben können
interaction.showTooltipsbooleanTooltips beim Hovern anzeigen
branding.showPoweredByboolean„Powered by AstroAPI"-Badge anzeigen
branding.logoUrlstring | nullBenutzerdefinierte Logo-URL (erfordert canUseCustomLogo)
languagestringAnzeigesprachen-Code
customCssstring | nullBenutzerdefinierte CSS-Injektion (erfordert canUseCustomCss)
widgetOptions.showAspectsbooleanAspektlinien auf Horoskopen anzeigen
widgetOptions.showPointsbooleanPlanetensymbole auf Horoskopen anzeigen
widgetOptions.showHousesbooleanHauseinteilungen auf Horoskopen anzeigen
widgetOptions.chartSizenumberHoroskopgröße in Pixeln
widgetOptions.themestringFarbthema ("light" oder "dark")

Layout-Optionen ​

WertBeschreibung
compactMinimaler Platz, geeignet für Seitenleisten
cardGerundete Karte mit Schatten (Standard)
fullVolle Breite, keine Rahmen
minimalKein Hintergrund, rahmenlos

Ein Widget einbetten ​

Nach dem Erstellen eines Widgets kopieren Sie den embedCode aus der Antwort und fügen Sie ihn in das HTML Ihrer Website ein:

html
<!-- Platzieren Sie dies, wo das Widget erscheinen soll -->
<div id="astroapi-widget-container"></div>

<!-- Widget-Script laden -->
<script
    src="https://cdn.astroapi.cloud/widget.js"
    data-widget-id="wgt_abc123">
</script>

Domain-Zulassungsliste

Widgets werden nur auf Domains geladen, die in allowedDomains aufgeführt sind. Fügen Sie alle Domains (einschließlich www-Varianten) hinzu, auf denen Sie das Widget einbetten möchten.

AstroAPI Documentation