Skip to content

Insluitbare widgets

Maak en beheer insluitbare widgets voor uw website. Widgets bieden kant-en-klare UI-componenten voor astrologiefuncties die in elke webpagina kunnen worden geintegreerd met een enkel script-tag.

Vereiste module

Alle widget-endpoints vereisen dat de module:embeddable-widgets module is ingeschakeld voor uw organisatie.


Widgettypes

De volgende widgettypes zijn beschikbaar op basis van uw actieve modules:

TypeBeschrijvingVereiste module
natalInteractieve geboortehoroscoopnatal:calc
synastrySynastrie-vergelijkingshoroscoopsynastry:calc
transitTransit-horoscoopoverlaytransit:calc
compositeComposiet-relatiehoroscoopcomposite:calc
moonphaseMaanfaseweergavemoonphase:calc
daily-horoscopeDagelijkse horoscoop voor alle tekensmodule:daily-report
numerologyNumerologieprofielformuliermodule:numerology
compatibilityZonneteken-compatibiliteitcompatibility:calc
moon-calendarMaandelijkse maankalendermoon-calendar:calc

Widgetbeheer

Widgets opvragen

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

Widget ophalen

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

Widget aanmaken

Widgets worden aangemaakt met JSON:API-formaat:

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 bijwerken

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 verwijderen

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

Widget-response

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 key opnieuw genereren

Genereer de ingebedde API key van de widget opnieuw. Gebruik dit als de key is gecompromitteerd:

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

Key-rotatie

Na het opnieuw genereren van de key stoppen bestaande embeds met de oude key onmiddellijk met werken. U hoeft de embedcode niet bij te werken - het widget-ID blijft hetzelfde.


Beschikbare widgetopties

Haal de widgettypes op die beschikbaar zijn voor uw organisatie op basis van uw actieve modules:

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

Response

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

Abonnementsfuncties

FunctieBeschrijving
canRemoveBrandingOf de AstroAPI-branding kan worden verborgen
canUseCustomLogoOf een aangepast logo kan worden getoond in plaats van het standaardlogo
canUseCustomCssOf aangepaste CSS kan worden geinjecteerd in de widget
maxDomainsMaximaal aantal toegestane domeinen per widget

Aanpassingsobject

Het customization-object regelt het uiterlijk en gedrag van de 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"
    }
}

Aanpassingsvelden

VeldTypeBeschrijving
colors.primarystringPrimaire accentkleur (hex)
colors.secondarystringSecundaire accentkleur (hex)
colors.backgroundstringWidget-achtergrondkleur (hex)
colors.textstringHoofdtekstkleur (hex)
colors.borderstringRandkleur (hex)
fonts.familystringCSS font-family waarde
fonts.sizestringBasis lettergrootte (CSS-waarde)
borders.radiusstringRandradius voor kaarten en invoervelden (CSS-waarde)
borders.widthstringRandbreedte (CSS-waarde)
spacing.paddingstringInterne padding (CSS-waarde)
spacing.gapstringRuimte tussen elementen (CSS-waarde)
shadows.cardstringCSS box-shadow voor kaartelementen
layoutstringWidget-layoutstijl (zie hieronder)
interaction.allowUserInputbooleanOf gebruikers hun eigen geboortegegevens kunnen invoeren
interaction.showTooltipsbooleanTooltips tonen bij hover
branding.showPoweredByboolean"Powered by AstroAPI"-badge tonen
branding.logoUrlstring | nullAangepaste logo-URL (vereist canUseCustomLogo)
languagestringWeergavetaalcode
customCssstring | nullAangepaste CSS-injectie (vereist canUseCustomCss)
widgetOptions.showAspectsbooleanAspectlijnen tonen op horoscopen
widgetOptions.showPointsbooleanPlaneetsymbolen tonen op horoscopen
widgetOptions.showHousesbooleanHuisverdelingen tonen op horoscopen
widgetOptions.chartSizenumberHoroscoopgrootte in pixels
widgetOptions.themestringKleurthema ("light" of "dark")

Layoutopties

WaardeBeschrijving
compactMinimale ruimte, geschikt voor zijbalken
cardAfgeronde kaart met schaduw (standaard)
fullVolledige breedte, geen randen
minimalGeen achtergrond, zonder rand

Een widget insluiten

Na het aanmaken van een widget kopieert u de embedCode uit de response en plakt u deze in de HTML van uw website:

html
<!-- Plaats dit waar u de widget wilt tonen -->
<div id="astroapi-widget-container"></div>

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

Domein-allowlist

Widgets worden alleen geladen op domeinen die in allowedDomains staan vermeld. Zorg ervoor dat u alle domeinen (inclusief www-varianten) toevoegt waar u de widget wilt insluiten.

AstroAPI Documentation