Skip to content
Dil: Türkçe

Geliştiriciler için API

Adım adım: bir sayfayı API ile güncelle

Güncellendi: 1 Kasım 2026 2 dk okuma

API anahtarından yayınlanmış sürüme: bir bağlantı ekle, en üste taşı, tasarımı değiştir, taslağı doğrula ve yayınla – curl ve jq ile.

Bu örnekte mevcut bir sayfayı tamamen API üzerinden güncellersin: bir bağlantı ekler, en üste taşır, düğme stilini değiştirir, taslağı doğrular ve yayınlarsın. Komutlar curl ve jq bulunan her kabukta çalışır.

1. Bir API anahtarı oluştur

  1. Panelde “Callback ve API”yi aç
  2. “+ Yeni anahtar oluştur”a tıkla
  3. Hem “Sayfalar” hem de “Bağlantılar” için “Yazma”yı seç (bu, okuma erişimini içerir)
  4. “Anahtar oluştur”a tıkla ve anahtar gizli değerini kopyala
  5. Anahtar kimliğini listeden kopyala

İki değeri de betikte değil, ortam değişkenleri olarak sakla:

Kimlik bilgilerini ayarla
export LH_KEY_ID="6F668EA6598B0692"
export LH_KEY_SECRET="lt_…"
export API="https://dock.at-harbor.com"

2. Bir erişim token’ı al

POST /v1/token
LH_TOKEN=$(curl -sS -X POST "$API/v1/token" \
  -H "Content-Type: application/json" \
  -d "{\"key_id\":\"$LH_KEY_ID\",\"key_secret\":\"$LH_KEY_SECRET\"}" \
  | jq -r .token)

Token 15 dakika geçerlidir. Betiğin daha uzun sürüyorsa arada yenisini al.

3. Sayfayı bul

GET /v1/pages
curl -sS "$API/v1/pages" -H "Authorization: Bearer $LH_TOKEN" \
  | jq '.items[] | {id, handle, title, status, current_version}'

Sayfanın id’sini not al. Bu örnekte 42’dir:

bash
PAGE_ID=42

4. Bir bağlantı ekle

POST /v1/pages/{id}/links
LINK_ID=$(curl -sS -X POST "$API/v1/pages/$PAGE_ID/links" \
  -H "Authorization: Bearer $LH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Sonbahar indirimi","target_url_template":"https://shop.example.com/autumn","enabled":true}' \
  | jq -r .id)
echo "Yeni bağlantı: $LINK_ID"

API HTTP 201 ve yeni kimlikle yanıt verir. Yeni bağlantılar listenin sonuna gider. Planının bağlantı limitine ulaşıldıysa 409 link_limit_reached alırsın.

5. Bağlantıyı en üste taşı

POST /v1/pages/{id}/links/reorder
curl -sS -X POST "$API/v1/pages/$PAGE_ID/links/reorder" \
  -H "Authorization: Bearer $LH_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"order\":[$LINK_ID]}"

Yalnızca öne gelmesi gereken kimlikleri göndermek yeterlidir. Diğer tüm bağlantılar arkalarında sıralarını korur.

6. Taslakta tasarımı değiştir

theme_config PATCH’te tamamen değiştirilir. Bu yüzden önce taslağı okur, yalnızca istediğin değeri değiştirir ve tüm nesneyi geri gönderirsin:

GET ve PATCH /v1/pages/{id}/draft
THEME=$(curl -sS "$API/v1/pages/$PAGE_ID/draft" -H "Authorization: Bearer $LH_TOKEN" \
  | jq -c '(.theme_config // {}) | .button_style = "pill"')

curl -sS -X PATCH "$API/v1/pages/$PAGE_ID/draft" \
  -H "Authorization: Bearer $LH_TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"theme_config\":$THEME}"

button_style rounded, pill ve square değerlerini kabul eder. Diğer theme_config alanları arasında bg_color, text_color, button_color, button_text_color ve background bulunur.

7. Taslağı doğrula

GET /v1/pages/{id}/draft/validate
curl -sS "$API/v1/pages/$PAGE_ID/draft/validate" -H "Authorization: Bearer $LH_TOKEN"
# → {"ok":true,"valid":true,"issues":[]}

valid false ise issues sorunları listeler. Yayınlamadan önce bunları düzelt. Taslağın yayındaki sürümden farklı olup olmadığını GET /v1/pages/$PAGE_ID has_unpublished_changes alanında gösterir – false ise yayınlamayı atlayabilirsin.

8. Yayınla

POST /v1/pages/{id}/publish
curl -sS -X POST "$API/v1/pages/$PAGE_ID/publish" -H "Authorization: Bearer $LH_TOKEN"
# → {"ok":true,"version":8,"checksum":"…"}

Ziyaretçiler artık yeni sürümü görür – yeni bağlantı, sıra ve tasarım dahil. page.published için bir webhook’un varsa artık bir teslimat alır. Taslak yayınlanamıyorsa API 409 draft_not_publishable ve details.issues içindeki listeyle yanıt verir.

9. Geri al

Sonucu beğenmezsen önceki sürümü taslağa geri getir ve yeniden yayınla:

7. sürümü geri yükle
curl -sS -X POST "$API/v1/pages/$PAGE_ID/versions/7/restore" -H "Authorization: Bearer $LH_TOKEN"
curl -sS -X POST "$API/v1/pages/$PAGE_ID/publish" -H "Authorization: Bearer $LH_TOKEN"

Bir sürüm numarası yerine current gönderebilirsin: bu, son yayınlamadan bu yana tüm taslak değişikliklerini atar. Geri yükleme tasarımı, şablonu, özel CSS’i, SEO’yu, blokları ve bağlantıları geri getirir; başlık, kullanıcı adı ve görünürlük sürümlenmez.

Sık görülen hatalar

400 bad_request
Content-Type: application/json başlığı eksik. Bu başlık olmadan curl -d farklı bir tür gönderir.
401 invalid_token
Token’ın süresi 15 dakika sonra doldu. Yenisini al.
403 insufficient_scope
Anahtarda bir kapsam eksik, örneğin bağlantılar için “Yazma”.
Tasarım aniden sıfırlandı
theme_config yalnızca bir alanla gönderildi ve tüm temanın yerini aldı. Temanın tamamını yeniden gönder ya da son yayınlamadan bu yana tüm taslak değişikliklerini atmak için restore current kullan.

Tüm kodlar Hata biçimi ve hata kodları bölümünde açıklanıyor, tüm uç noktalar Alanlara göre uç noktalar bölümünde listeleniyor.

Bir şey bulamadın mı?

Neye ihtiyacın olduğunu bize anlat, destek ekibimiz sana kişisel olarak yardımcı olsun.

Destekle iletişime geç