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