Skip to content
Bahasa: Bahasa Indonesia

API untuk developer

Langkah demi langkah: memperbarui halaman lewat API

Diperbarui 1 November 2026 2 menit baca

Dari kunci API hingga versi yang dipublikasikan: tambah tautan, pindahkan ke atas, ubah desain, validasi draf, dan publikasikan – dengan curl dan jq.

Dalam contoh ini Anda memperbarui halaman yang sudah ada sepenuhnya lewat API: Anda menambahkan tautan, memindahkannya ke atas, mengubah gaya tombol, memvalidasi draf, lalu memublikasikannya. Perintah-perintahnya berjalan di shell mana pun dengan curl dan jq.

1. Membuat kunci API

  1. Buka “Callback & API” di dasbor
  2. Klik “+ Buat kunci baru”
  3. Pilih “Tulis” untuk “Halaman” dan “Tautan” (ini mencakup akses baca)
  4. Klik “Buat kunci” lalu salin rahasia kuncinya
  5. Salin ID kunci dari daftar

Simpan kedua nilai sebagai variabel lingkungan, bukan di skrip:

Menyetel data akses
export LH_KEY_ID="6F668EA6598B0692"
export LH_KEY_SECRET="lt_…"
export API="https://dock.at-harbor.com"

2. Mengambil access token

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 berlaku selama 15 menit. Jika skrip Anda berjalan lebih lama, ambil token baru di tengah jalan.

3. Menemukan halaman

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

Catat id halamannya. Dalam contoh ini nilainya 42:

bash
PAGE_ID=42

4. Menambahkan tautan

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":"Autumn sale","target_url_template":"https://shop.example.com/autumn","enabled":true}' \
  | jq -r .id)
echo "New link: $LINK_ID"

API merespons dengan HTTP 201 dan ID baru. Tautan baru masuk ke akhir daftar. Jika batas tautan paket Anda tercapai, Anda mendapat 409 link_limit_reached.

5. Memindahkan tautan ke atas

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]}"

Cukup kirim ID yang harus pindah ke depan. Semua tautan lain tetap dalam urutannya di belakangnya.

6. Mengubah desain di draf

theme_config diganti sepenuhnya pada PATCH. Jadi baca dulu drafnya, ubah hanya nilai yang Anda inginkan, lalu kirim kembali seluruh objeknya:

GET dan 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 menerima rounded, pill, dan square. Kolom theme_config lainnya antara lain bg_color, text_color, button_color, button_text_color, dan background.

7. Memvalidasi draf

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":[]}

Jika valid bernilai false, issues mencantumkan masalahnya. Perbaiki sebelum Anda memublikasikan. Apakah draf berbeda dari versi yang tayang ditunjukkan oleh GET /v1/pages/$PAGE_ID di kolom has_unpublished_changes – jika bernilai false, Anda bisa melewati publikasi.

8. Memublikasikan

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":"…"}

Pengunjung sekarang melihat versi baru – termasuk tautan baru, urutannya, dan desainnya. Jika Anda punya webhook untuk page.published, webhook itu sekarang menerima pengiriman. Jika draf tidak bisa dipublikasikan, API merespons dengan 409 draft_not_publishable dan daftarnya di details.issues.

9. Membatalkan

Jika Anda tidak menyukai hasilnya, kembalikan versi sebelumnya ke draf lalu publikasikan lagi:

Memulihkan versi 7
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"

Alih-alih nomor versi, Anda bisa mengirim current: ini membuang semua perubahan draf sejak publikasi terakhir. Pemulihan mengembalikan desain, templat, CSS kustom, SEO, blok, dan tautan; judul, handle, dan visibilitas tidak diversikan.

Kesalahan umum

400 bad_request
Header Content-Type: application/json tidak ada. Tanpa header itu, curl -d mengirim jenis yang lain.
401 invalid_token
Token kedaluwarsa setelah 15 menit. Ambil yang baru.
403 insufficient_scope
Kunci tidak memiliki sebuah scope, misalnya “Tulis” untuk tautan.
Desain tiba-tiba direset
theme_config dikirim dengan hanya satu kolom dan menggantikan seluruh tema. Kirim lagi tema yang lengkap, atau gunakan restore current untuk membuang semua perubahan draf sejak publikasi terakhir.

Semua kode dijelaskan di Format kesalahan dan kode kesalahan, dan semua endpoint tercantum di Endpoint per area.

Tidak menemukan jawabannya?

Beri tahu kami apa yang Anda perlukan, dan tim dukungan kami akan membantu Anda secara langsung.

Hubungi dukungan