Référence API
Ce document fournit les détails techniques sur l'outil Open Graph Meta Generator et son fonctionnement sous-jacent.
Vue d'ensemble de l'outil
L'Open Graph Meta Generator est un outil côté client qui génère des balises meta HTML pour les protocoles Open Graph et Twitter Card. Il traite les données saisies par l'utilisateur et produit des balises meta HTML correctement formatées.
Paramètres d'entrée
Informations générales
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
pageType | string | Oui | Type de contenu | "website", "article", "book" |
title | string | Non | Titre de la page | "My Awesome Website" |
description | string | Non | Description de la page | "A great website for developers" |
url | string | Non | URL de la page | "https://example.com/page" |
siteName | string | Non | Nom du site | "My Company" |
Paramètres d'image
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
imageUrl | string | Non | URL de l'image | "https://example.com/image.jpg" |
imageAlt | string | Non | Texte alternatif de l'image | "Company logo" |
imageWidth | string | Non | Largeur de l'image en pixels | "1200" |
imageHeight | string | Non | Hauteur de l'image en pixels | "630" |
Paramètres Twitter
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
twitterCardType | string | Oui | Type de Twitter Card | "summary_large_image" |
twitterSite | string | Non | Handle Twitter du site | "@example" |
twitterCreator | string | Non | Handle Twitter du créateur | "@author" |
Format de sortie
L'outil génère des balises meta HTML au format suivant :
Balises 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" />
Balises 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" />
Types de contenu
Types de pages pris en charge
| Type | Description | Cas d'usage |
|---|---|---|
website | Pages web générales | Page d'accueil, page à propos, contact |
article | Articles de blog et d'actualité | Articles, actualités, tutoriels |
book | Pages de livres et e-books | Fiches de livres, pages d'e-books |
profile | Profils personnels ou professionnels | Profils utilisateur, pages d'entreprise |
music | Morceaux et albums | Streaming musical, pages d'album |
video | Contenus vidéo | Pages vidéo, catalogues de films |
Types de Twitter Card
| Type | Description | Idéal pour |
|---|---|---|
summary | Carte basique avec vignette | Articles de blog, actualités |
summary_large_image | Carte avec grande image | Contenus visuels, produits |
app | Promotion d'application mobile | Pages d'app store |
player | Contenus vidéo/audio | Pages vidéo, podcasts |
Traitement des données
Échappement HTML
Toutes les données saisies par l'utilisateur sont automatiquement échappées pour prévenir les attaques XSS :
function escapeHtml(text) {
const div = document.createElement("div");
div.textContent = text;
return div.innerHTML;
}
Validation des URL
Les URL sont validées pour vérifier qu'elles sont correctement formatées :
function isValidUrl(string) {
try {
new URL(string);
return true;
} catch (_) {
return false;
}
}
Limites de longueur du contenu
L'outil applique les limites de longueur recommandées :
- Titre : 60 caractères maximum
- Description : 160 caractères maximum
- URL : doit respecter un format d'URL valide
Compatibilité des navigateurs
Navigateurs pris en charge
| Browser | Version | Support |
|---|---|---|
| Chrome | 60+ | Prise en charge complète |
| Firefox | 55+ | Prise en charge complète |
| Safari | 12+ | Prise en charge complète |
| Edge | 79+ | Prise en charge complète |
Fonctionnalités requises
- Prise en charge d'ES6+
- Prise en charge de l'API Clipboard
- Prise en charge du Local Storage
- Prise en charge de CSS Grid
Considérations de performance
Traitement côté client
- Tout le traitement s'effectue dans le navigateur
- Aucune requête serveur n'est nécessaire
- Génération et aperçu instantanés
- Empreinte mémoire minimale
Mise en cache
- Les balises meta générées sont mises en cache dans le stockage du navigateur
- L'historique est conservé localement
- Aucune dépendance externe
Gestion des erreurs
Erreurs de validation des entrées
// Example error handling
if (!title.trim()) {
showError("Title is required");
return;
}
if (url && !isValidUrl(url)) {
showError("Please enter a valid URL");
return;
}
Erreurs de chargement d'image
// Handle image loading errors
function handleImageError(event) {
const img = event.target;
img.style.display = "none";
showWarning("Image failed to load");
}
Exemples d'intégration
Intégration 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');
Intégration 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} />
</>
);
}
Intégration 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>
);
}
Tests et validation
Débogueurs de réseaux sociaux
- Facebook: developers.facebook.com/tools/debug
- Twitter: cards-dev.twitter.com/validator
- LinkedIn: linkedin.com/post-inspector
Tests automatisés
// 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" />');
});
});
Dépannage
Problèmes courants
- Les images ne s'affichent pas: vérifiez le format de l'URL et son accessibilité
- Les balises ne fonctionnent pas: validez-les avec des débogueurs de réseaux sociaux
- Le contenu est tronqué: vérifiez les limites de caractères
- Problèmes de cache: utilisez les outils de débogage pour rafraîchir le cache
Mode debug
Activez le mode debug pour afficher des informations détaillées :
// Enable debug logging
localStorage.setItem("debug", "true");
Améliorations futures
Fonctionnalités prévues
- Prise en charge des données structurées Schema.org
- Prise en charge multi-langues
- Capacités de génération en masse
- Endpoint API pour la génération côté serveur
- Optimisation avancée des images
- Intégration Analytics
Contribuer
Pour contribuer à l'Open Graph Meta Generator :
- Forkez le dépôt
- Créez une branche de fonctionnalité
- Apportez vos modifications
- Ajoutez des tests
- Soumettez une Pull Request
Support
Pour obtenir une assistance technique ou poser une question :