w

Referensi API

Dokumen ini menyediakan detail teknis tentang alat Open Graph Meta Generator dan fungsi dasarnya.

Ikhtisar Alat

Open Graph Meta Generator adalah alat sisi klien yang menghasilkan meta tag HTML untuk protokol Open Graph dan Twitter Card. Alat ini memproses input pengguna dan menghasilkan meta tag HTML dengan format yang tepat.

Parameter Input

Informasi Umum

ParameterTipeWajibDeskripsiContoh
pageTypestringYaTipe konten"website", "article", "book"
titlestringTidakJudul halaman"My Awesome Website"
descriptionstringTidakDeskripsi halaman"A great website for developers"
urlstringTidakURL halaman"https://example.com/page"
siteNamestringTidakNama situs"My Company"

Pengaturan Gambar

ParameterTipeWajibDeskripsiContoh
imageUrlstringTidakURL gambar"https://example.com/image.jpg"
imageAltstringTidakAlt text gambar"Company logo"
imageWidthstringTidakLebar gambar dalam piksel"1200"
imageHeightstringTidakTinggi gambar dalam piksel"630"

Pengaturan Twitter

ParameterTipeWajibDeskripsiContoh
twitterCardTypestringYaTipe Twitter Card"summary_large_image"
twitterSitestringTidakHandle Twitter situs"@example"
twitterCreatorstringTidakHandle Twitter kreator"@author"

Format Output

Alat ini menghasilkan meta tag HTML dalam format berikut:

Tag 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" />

Tag 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" />

Tipe Konten

Tipe Halaman yang Didukung

TipeDeskripsiKasus penggunaan
websiteHalaman website umumBeranda, halaman tentang kami, halaman kontak
articlePost blog dan artikel beritaPost blog, artikel berita, tutorial
bookHalaman buku dan e-bookListing buku, halaman e-book
profileProfil pribadi atau bisnisProfil pengguna, halaman perusahaan
musicTrack dan album musikStreaming musik, halaman album
videoKonten videoHalaman video, listing film

Tipe Twitter Card

TipeDeskripsiPaling cocok untuk
summaryCard dasar dengan thumbnailPost blog, artikel berita
summary_large_imageCard dengan gambar besarKonten visual, produk
appPromosi aplikasi mobileHalaman app store
playerKonten video/audioHalaman video, podcast

Pemrosesan Data

HTML Escaping

Semua input pengguna secara otomatis di-escape untuk mencegah serangan XSS:

function escapeHtml(text) {
  const div = document.createElement("div");
  div.textContent = text;
  return div.innerHTML;
}

Validasi URL

URL divalidasi untuk memastikan formatnya benar:

function isValidUrl(string) {
  try {
    new URL(string);
    return true;
  } catch (_) {
    return false;
  }
}

Batas Panjang Konten

Alat ini menerapkan batas panjang yang direkomendasikan:

  • Judul: maksimum 60 karakter
  • Deskripsi: maksimum 160 karakter
  • URL: harus menggunakan format URL yang valid

Kompatibilitas Browser

Browser yang Didukung

BrowserVersiDukungan penuh
Chrome60+Dukungan penuh
Firefox55+Dukungan penuh
Safari12+Dukungan penuh
Edge79+Dukungan penuh

Fitur yang Dibutuhkan

  • Dukungan ES6+
  • Dukungan Clipboard API
  • Dukungan Local Storage
  • Dukungan CSS Grid

Pertimbangan Performa

Pemrosesan Sisi Klien

  • Semua pemrosesan terjadi di browser
  • Tidak memerlukan request server
  • Pembuatan dan pratinjau instan
  • Jejak memori minimal

Caching

  • Meta tag yang dihasilkan disimpan di browser storage
  • Riwayat disimpan secara lokal
  • Tidak ada dependensi eksternal

Penanganan Error

Error Validasi Input

// Example error handling
if (!title.trim()) {
  showError("Title is required");
  return;
}

if (url && !isValidUrl(url)) {
  showError("Please enter a valid URL");
  return;
}

Error Saat Memuat Gambar

// Handle image loading errors
function handleImageError(event) {
  const img = event.target;
  img.style.display = "none";
  showWarning("Image failed to load");
}

Contoh Integrasi

Integrasi 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');

Integrasi 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} />
    </>
  );
}

Integrasi 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>
  );
}

Pengujian dan Validasi

Debugger Media Sosial

Pengujian Otomatis

// 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" />');
  });
});

Troubleshooting

Masalah Umum

  1. Gambar tidak tampil: periksa format URL dan aksesibilitasnya
  2. Tag tidak berfungsi: validasi dengan debugger media sosial
  3. Konten terpotong: periksa batas karakter
  4. Masalah cache: gunakan alat debugger untuk me-refresh cache

Mode Debug

Aktifkan mode debug untuk melihat informasi terperinci:

// Enable debug logging
localStorage.setItem("debug", "true");

Peningkatan di Masa Depan

Fitur yang Direncanakan

  • Dukungan data terstruktur Schema.org
  • Dukungan multi-bahasa
  • Kemampuan pembuatan massal
  • API endpoint untuk pembuatan server-side
  • Optimasi gambar tingkat lanjut
  • Integrasi analitik

Berkontribusi

Untuk berkontribusi ke Open Graph Meta Generator:

  1. Fork repositorinya
  2. Buat feature branch
  3. Lakukan perubahan Anda
  4. Tambahkan pengujian
  5. Kirim pull request

Dukungan

Untuk dukungan teknis atau pertanyaan:

  • Lihat FAQ
  • Tinjau Examples
  • Hubungi dukungan melalui website utama
Apakah halaman ini membantu?