Skip to content

Widgets Intégrables

Créez et gérez des widgets intégrables pour votre site web. Les widgets fournissent des composants UI prêts à l'emploi pour les fonctionnalités astrologiques qui peuvent être intégrés dans n'importe quelle page web avec une seule balise script.

Module Requis

Tous les endpoints de widgets nécessitent que le module module:embeddable-widgets soit activé pour votre organisation.


Types de Widgets

Les types de widgets suivants sont disponibles selon vos modules actifs :

TypeDescriptionModule Requis
natalThème natal interactifnatal:calc
synastryThème de comparaison de synastriesynastry:calc
transitSuperposition de thème de transittransit:calc
compositeThème composite relationnelcomposite:calc
moonphaseAffichage de la phase lunairemoonphase:calc
daily-horoscopeHoroscope quotidien pour tous les signesmodule:daily-report
numerologyFormulaire de profil de numérologiemodule:numerology
compatibilityCompatibilité des signes solairescompatibility:calc
moon-calendarCalendrier lunaire mensuelmoon-calendar:calc

Gestion des Widgets

Lister les Widgets

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

Obtenir un Widget

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

Créer un Widget

Les widgets sont créés en utilisant le format 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"
          }
        }
      }
    }
  }'

Mettre à Jour un 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"
        }
      }
    }
  }'

Supprimer un Widget

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

Réponse du 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"
        }
    }
}

Régénérer la Clé API

Régénérez la clé API intégrée du widget. Utilisez ceci si la clé a été compromise :

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

Rotation de Clé

Après la régénération de la clé, les intégrations existantes utilisant l'ancienne clé cesseront de fonctionner immédiatement. Vous n'avez pas besoin de mettre à jour le code d'intégration — l'ID du widget reste le même.


Options de Widgets Disponibles

Récupérez les types de widgets disponibles pour votre organisation selon vos modules actifs :

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

Réponse

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

Fonctionnalités du Plan

FonctionnalitéDescription
canRemoveBrandingSi la marque AstroAPI peut être masquée
canUseCustomLogoSi un logo personnalisé peut être affiché à la place du logo par défaut
canUseCustomCssSi du CSS personnalisé peut être injecté dans le widget
maxDomainsNombre maximum de domaines autorisés par widget

Objet de Personnalisation

L'objet customization contrôle l'apparence et le comportement du 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"
    }
}

Champs de Personnalisation

ChampTypeDescription
colors.primarystringCouleur d'accent principale (hex)
colors.secondarystringCouleur d'accent secondaire (hex)
colors.backgroundstringCouleur de fond du widget (hex)
colors.textstringCouleur principale du texte (hex)
colors.borderstringCouleur de bordure (hex)
fonts.familystringValeur CSS font-family
fonts.sizestringTaille de police de base (valeur CSS)
borders.radiusstringRayon de bordure pour les cartes et les entrées (valeur CSS)
borders.widthstringLargeur de bordure (valeur CSS)
spacing.paddingstringRembourrage interne (valeur CSS)
spacing.gapstringEspace entre les éléments (valeur CSS)
shadows.cardstringCSS box-shadow pour les éléments de carte
layoutstringStyle de mise en page du widget (voir ci-dessous)
interaction.allowUserInputbooleanSi les utilisateurs peuvent saisir leurs propres données de naissance
interaction.showTooltipsbooleanAfficher des infobulles au survol
branding.showPoweredBybooleanAfficher le badge "Powered by AstroAPI"
branding.logoUrlstring | nullURL du logo personnalisé (nécessite canUseCustomLogo)
languagestringCode de langue d'affichage
customCssstring | nullInjection CSS personnalisée (nécessite canUseCustomCss)
widgetOptions.showAspectsbooleanAfficher les lignes d'aspects sur les thèmes
widgetOptions.showPointsbooleanAfficher les symboles planétaires sur les thèmes
widgetOptions.showHousesbooleanAfficher les divisions de maisons sur les thèmes
widgetOptions.chartSizenumberTaille du thème en pixels
widgetOptions.themestringThème de couleurs ("light" ou "dark")

Options de Mise en Page

ValeurDescription
compactEspace minimal, adapté aux barres latérales
cardCarte arrondie avec ombre (défaut)
fullPleine largeur, sans bordures
minimalPas de fond, sans bordures

Intégrer un Widget

Après avoir créé un widget, copiez le embedCode de la réponse et collez-le dans le HTML de votre site web :

html
<!-- Placez ceci là où vous voulez que le widget apparaisse -->
<div id="astroapi-widget-container"></div>

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

Liste Blanche de Domaines

Les widgets se chargeront uniquement sur les domaines listés dans allowedDomains. Assurez-vous d'ajouter tous les domaines (y compris les variantes www) où vous prévoyez d'intégrer le widget.

AstroAPI Documentation