Referência da API
Este documento fornece detalhes técnicos sobre a ferramenta Open Graph Meta Generator e sua funcionalidade subjacente.
Visão geral da ferramenta
O Open Graph Meta Generator é uma ferramenta do lado do cliente que gera meta tags HTML para os protocolos Open Graph e Twitter Card. Ela processa a entrada do usuário e produz meta tags HTML formatadas corretamente.
Parâmetros de entrada
Informações gerais
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
pageType | string | Yes | Tipo de conteúdo | "website", "article", "book" |
title | string | No | Título da página | "My Awesome Website" |
description | string | No | Descrição da página | "A great website for developers" |
url | string | No | URL da página | "https://example.com/page" |
siteName | string | No | Nome do site | "My Company" |
Configurações de imagem
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
imageUrl | string | No | URL da imagem | "https://example.com/image.jpg" |
imageAlt | string | No | Texto alternativo da imagem | "Company logo" |
imageWidth | string | No | Largura da imagem em pixels | "1200" |
imageHeight | string | No | Altura da imagem em pixels | "630" |
Configurações do Twitter
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
twitterCardType | string | Yes | Tipo de card do Twitter | "summary_large_image" |
twitterSite | string | No | Handle do site no Twitter | "@example" |
twitterCreator | string | No | Handle do criador no Twitter | "@author" |
Formato de saída
A ferramenta gera meta tags HTML no seguinte formato:
Tags Open Graph
<!-- Open Graph Meta Tags -->
<meta property="og:type" content="website" />
<meta property="og:title" content="Page Title" />
<meta property="og:description" content="Page description" />
<meta property="og:url" content="https://example.com/page" />
<meta property="og:site_name" content="Site Name" />
<meta property="og:image" content="https://example.com/image.jpg" />
<meta property="og:image:alt" content="Image description" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
Tags do Twitter
<!-- Twitter Meta Tags -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@example" />
<meta name="twitter:creator" content="@author" />
<meta name="twitter:title" content="Page Title" />
<meta name="twitter:description" content="Page description" />
<meta name="twitter:image" content="https://example.com/image.jpg" />
Tipos de conteúdo
Tipos de página compatíveis
| Type | Description | Use Case |
|---|---|---|
website | Páginas gerais de site | Homepage, about page, contact page |
article | Posts de blog e notícias | Blog posts, news articles, tutorials |
book | Páginas de livros e e-books | Book listings, e-book pages |
profile | Perfis pessoais ou empresariais | User profiles, company pages |
music | Faixas e álbuns musicais | Music streaming, album pages |
video | Conteúdo em vídeo | Video pages, movie listings |
Tipos de Twitter Card
| Type | Description | Best For |
|---|---|---|
summary | Card básico com miniatura | Blog posts, news articles |
summary_large_image | Card com imagem grande | Visual content, products |
app | Promoção de aplicativo móvel | App store pages |
player | Conteúdo de vídeo ou áudio | Video pages, podcasts |
Processamento de dados
Escape de HTML
Toda a entrada do usuário é automaticamente escapada para evitar ataques XSS:
function escapeHtml(text) {
const div = document.createElement("div");
div.textContent = text;
return div.innerHTML;
}
Validação de URL
As URLs são validadas para garantir que estejam formatadas corretamente:
function isValidUrl(string) {
try {
new URL(string);
return true;
} catch (_) {
return false;
}
}
Limites de tamanho do conteúdo
A ferramenta aplica os limites de tamanho recomendados:
- Título: no máximo 60 caracteres
- Descrição: no máximo 160 caracteres
- URL: deve estar em um formato de URL válido
Compatibilidade com navegadores
Navegadores compatíveis
| Browser | Version | Support |
|---|---|---|
| Chrome | 60+ | Suporte completo |
| Firefox | 55+ | Suporte completo |
| Safari | 12+ | Suporte completo |
| Edge | 79+ | Suporte completo |
Recursos necessários
- Suporte a ES6+
- Suporte à Clipboard API
- Suporte a Local Storage
- Suporte a CSS Grid
Considerações de desempenho
Processamento no lado do cliente
- Todo o processamento acontece no navegador
- Nenhuma requisição ao servidor é necessária
- Geração e visualização instantâneas
- Uso mínimo de memória
Cache
- As meta tags geradas são armazenadas no navegador
- Os registros do histórico são salvos localmente
- Não há dependências externas
Tratamento de erros
Erros de validação de entrada
// Example error handling
if (!title.trim()) {
showError("Title is required");
return;
}
if (url && !isValidUrl(url)) {
showError("Please enter a valid URL");
return;
}
Erros de carregamento de imagem
// Handle image loading errors
function handleImageError(event) {
const img = event.target;
img.style.display = "none";
showWarning("Image failed to load");
}
Exemplos de integração
Integração com WordPress
// Add to functions.php
function add_open_graph_tags() {
if (is_single()) {
$title = get_the_title();
$description = get_the_excerpt();
$image = get_the_post_thumbnail_url();
echo '<meta property="og:title" content="' . esc_attr($title) . '" />';
echo '<meta property="og:description" content="' . esc_attr($description) . '" />';
echo '<meta property="og:image" content="' . esc_url($image) . '" />';
}
}
add_action('wp_head', 'add_open_graph_tags');
Integração com React
// React component example
function OpenGraphMeta({ title, description, image, url }) {
return (
<>
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />
<meta property="og:image" content={image} />
<meta property="og:url" content={url} />
</>
);
}
Integração com Next.js
// Next.js Head component
import Head from "next/head";
function MyPage() {
return (
<Head>
<meta property="og:title" content="My Page Title" />
<meta property="og:description" content="My page description" />
<meta property="og:image" content="https://example.com/image.jpg" />
</Head>
);
}
Testes e validação
Depuradores de redes sociais
- Facebook: developers.facebook.com/tools/debug
- Twitter: cards-dev.twitter.com/validator
- LinkedIn: linkedin.com/post-inspector
Testes automatizados
// Example test for meta tag generation
describe("Open Graph Meta Generator", () => {
test("generates correct meta tags", () => {
const input = {
pageType: "website",
title: "Test Page",
description: "Test description",
};
const output = generateMetaTags(input);
expect(output).toContain('<meta property="og:type" content="website" />');
expect(output).toContain('<meta property="og:title" content="Test Page" />');
});
});
Solução de problemas
Problemas comuns
- Images not displaying: Verifique o formato da URL e a acessibilidade
- Tags not working: Valide com depuradores de redes sociais
- Truncated content: Verifique os limites de caracteres
- Cache issues: Use ferramentas de depuração para atualizar o cache
Modo de depuração
Ative o modo de depuração para ver informações detalhadas:
// Enable debug logging
localStorage.setItem("debug", "true");
Melhorias futuras
Recursos planejados
- Suporte a dados estruturados do Schema.org
- Suporte a múltiplos idiomas
- Recursos de geração em lote
- Endpoint de API para geração no lado do servidor
- Otimização avançada de imagens
- Integração com analytics
Contribuindo
Para contribuir com o Open Graph Meta Generator:
- Faça um fork do repositório
- Crie uma branch de recurso
- Faça suas alterações
- Adicione testes
- Envie um pull request
Suporte
Para suporte técnico ou dúvidas: