Skip to content

Widgets Embutíveis

Cria e gere widgets embutíveis para o teu site. Os widgets fornecem componentes de UI prontos a usar para funcionalidades de astrologia que podem ser integrados em qualquer página web com uma única tag de script.

Módulo Necessário

Todos os endpoints de widgets requerem que o módulo module:embeddable-widgets esteja activado para a tua organização.


Tipos de Widget

Os seguintes tipos de widget estão disponíveis com base nos teus módulos activos:

TipoDescriçãoMódulo Necessário
natalMapa natal interactivonatal:calc
synastryMapa de comparação de sinastriasynastry:calc
transitSobreposição de mapa de trânsitotransit:calc
compositeMapa de relacionamento compostocomposite:calc
moonphaseVisualização da fase lunarmoonphase:calc
daily-horoscopeHoróscopo diário para todos os signosmodule:daily-report
numerologyFormulário de perfil de numerologiamodule:numerology
compatibilityCompatibilidade pelo signo solarcompatibility:calc
moon-calendarCalendário lunar mensalmoon-calendar:calc

Gestão de Widgets

Listar Widgets

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

Obter Widget

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

Criar Widget

Os widgets são criados usando o formato 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"
          }
        }
      }
    }
  }'

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

Eliminar Widget

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

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

Regenerar Chave de API

Regenera a chave de API embutida do widget. Usa isto se a chave tiver sido comprometida:

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

Rotação de Chaves

Após regenerar a chave, os embeds existentes que usam a chave antiga deixarão de funcionar imediatamente. Não precisas de actualizar o código de embed — o ID do widget permanece o mesmo.


Opções de Widget Disponíveis

Obtém os tipos de widget disponíveis para a tua organização com base nos teus módulos activos:

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

Resposta

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

Funcionalidades do Plano

FuncionalidadeDescrição
canRemoveBrandingSe a marca AstroAPI pode ser ocultada
canUseCustomLogoSe um logótipo personalizado pode ser mostrado em vez do padrão
canUseCustomCssSe CSS personalizado pode ser injectado no widget
maxDomainsNúmero máximo de domínios permitidos por widget

Objecto de Personalização

O objecto customization controla a aparência e o comportamento do 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"
    }
}

Campos de Personalização

CampoTipoDescrição
colors.primarystringCor de destaque principal (hex)
colors.secondarystringCor de destaque secundária (hex)
colors.backgroundstringCor de fundo do widget (hex)
colors.textstringCor do texto principal (hex)
colors.borderstringCor da borda (hex)
fonts.familystringValor CSS de font-family
fonts.sizestringTamanho de letra base (valor CSS)
borders.radiusstringRaio de borda para cartões e entradas (valor CSS)
borders.widthstringLargura da borda (valor CSS)
spacing.paddingstringPreenchimento interno (valor CSS)
spacing.gapstringEspaço entre elementos (valor CSS)
shadows.cardstringCSS box-shadow para elementos de cartão
layoutstringEstilo de layout do widget (ver abaixo)
interaction.allowUserInputbooleanSe os utilizadores podem inserir os próprios dados de nascimento
interaction.showTooltipsbooleanMostrar dicas ao passar o cursor
branding.showPoweredBybooleanMostrar o emblema "Powered by AstroAPI"
branding.logoUrlstring | nullURL do logótipo personalizado (requer canUseCustomLogo)
languagestringCódigo de idioma de exibição
customCssstring | nullInjecção de CSS personalizado (requer canUseCustomCss)
widgetOptions.showAspectsbooleanMostrar linhas de aspectos nos mapas
widgetOptions.showPointsbooleanMostrar símbolos de planetas nos mapas
widgetOptions.showHousesbooleanMostrar divisões de casas nos mapas
widgetOptions.chartSizenumberTamanho do mapa em píxeis
widgetOptions.themestringTema de cores ("light" ou "dark")

Opções de Layout

ValorDescrição
compactEspaço mínimo, adequado para barras laterais
cardCartão arredondado com sombra (padrão)
fullLargura total, sem bordas
minimalSem fundo, sem bordas

Incorporar um Widget

Após criar um widget, copia o embedCode da resposta e cola-o no HTML do teu site:

html
<!-- Coloca isto onde queres que o widget apareça -->
<div id="astroapi-widget-container"></div>

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

Lista de Domínios Permitidos

Os widgets só carregam em domínios listados em allowedDomains. Certifica-te de que adicionas todos os domínios (incluindo variantes com www) onde planeias incorporar o widget.

AstroAPI Documentation