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