Skip to content
زبان: اردو

ڈیولپرز کے لیے API

مرحلہ وار: API کے ذریعے صفحہ اپ ڈیٹ کریں

اپ ڈیٹ: 1 نومبر، 2026 پڑھنے کا وقت: 3 منٹ

API کلید سے شائع شدہ ورژن تک: لنک شامل کریں، اسے سب سے اوپر لے جائیں، ڈیزائن بدلیں، ڈرافٹ جانچیں اور شائع کریں – curl اور jq کے ساتھ۔

اس مثال میں آپ ایک موجودہ صفحے کو مکمل طور پر API کے ذریعے اپ ڈیٹ کرتے ہیں: آپ ایک لنک شامل کرتے ہیں، اسے سب سے اوپر لے جاتے ہیں، بٹن کا انداز بدلتے ہیں، ڈرافٹ جانچتے ہیں اور اسے شائع کرتے ہیں۔ کمانڈز curl اور jq والے کسی بھی شیل میں چلتی ہیں۔

1. API کلید بنائیں

  1. ڈیش بورڈ میں “کال بیک اور API” کھولیں
  2. “+ نئی کلید بنائیں” پر کلک کریں
  3. “صفحات” اور “لنکس” دونوں کے لیے “لکھنا” چنیں (اس میں پڑھنے کی رسائی شامل ہے)
  4. “کلید بنائیں” پر کلک کریں اور کلید کا سیکرٹ کاپی کریں
  5. فہرست سے کلید ID کاپی کریں

دونوں قدریں انوائرنمنٹ ویری ایبلز کے طور پر محفوظ کریں، اسکرپٹ میں نہیں:

لاگ اِن کی معلومات سیٹ کریں
export LH_KEY_ID="6F668EA6598B0692"
export LH_KEY_SECRET="lt_…"
export API="https://dock.at-harbor.com"

2. ایکسیس ٹوکن حاصل کریں

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)

ٹوکن 15 منٹ کے لیے درست ہے۔ اگر آپ کا اسکرپٹ اس سے زیادہ دیر چلے تو درمیان میں نیا ٹوکن لیں۔

3. صفحہ تلاش کریں

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

صفحے کی id نوٹ کریں۔ اس مثال میں یہ 42 ہے:

bash
PAGE_ID=42

4. لنک شامل کریں

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، HTTP 201 اور نئی ID کے ساتھ جواب دیتا ہے۔ نئے لنکس فہرست کے آخر میں جاتے ہیں۔ اگر آپ کے پلان کی لنکس کی حد پوری ہو چکی ہو تو آپ کو 409 link_limit_reached ملتا ہے۔

5. لنک کو سب سے اوپر لے جائیں

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

صرف وہ IDs بھیجنا کافی ہے جنہیں آگے آنا ہے۔ باقی تمام لنکس ان کے پیچھے اپنی ترتیب برقرار رکھتے ہیں۔

6. ڈرافٹ میں ڈیزائن بدلیں

PATCH پر theme_config مکمل طور پر بدل دیا جاتا ہے۔ اس لیے پہلے ڈرافٹ پڑھیں، صرف مطلوبہ قدر بدلیں اور پورا آبجیکٹ واپس بھیجیں:

GET اور 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 اور square۔ theme_config کی دیگر فیلڈز میں bg_color، text_color، button_color، button_text_color اور background شامل ہیں۔

7. ڈرافٹ جانچیں

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 ہو تو issues میں مسائل کی فہرست ہوتی ہے۔ شائع کرنے سے پہلے انہیں ٹھیک کریں۔ ڈرافٹ لائیو ورژن سے مختلف ہے بھی یا نہیں، یہ GET /v1/pages/$PAGE_ID کی has_unpublished_changes فیلڈ بتاتی ہے – اگر یہ false ہو تو آپ شائع کرنا چھوڑ سکتے ہیں۔

8. شائع کریں

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

اب وزیٹرز نیا ورژن دیکھتے ہیں – نئے لنک، ترتیب اور ڈیزائن سمیت۔ اگر آپ کے پاس page.published کے لیے ویب ہُک ہے تو اب اسے ایک ڈیلیوری ملتی ہے۔ اگر ڈرافٹ شائع نہ ہو سکے تو API، 409 draft_not_publishable اور details.issues میں فہرست کے ساتھ جواب دیتا ہے۔

9. واپس کریں

اگر آپ کو نتیجہ پسند نہ آئے تو پچھلا ورژن ڈرافٹ میں واپس لائیں اور دوبارہ شائع کریں:

ورژن 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"

ورژن نمبر کے بجائے آپ current بھیج سکتے ہیں: یہ آخری بار شائع کرنے کے بعد سے ڈرافٹ کی تمام تبدیلیاں رد کر دیتا ہے۔ بحالی ڈیزائن، ٹیمپلیٹ، کسٹم CSS، SEO، بلاکس اور لنکس واپس لاتی ہے؛ عنوان، ہینڈل اور نمائش کے ورژن نہیں بنتے۔

عام خرابیاں

400 bad_request
Content-Type: application/json ہیڈر موجود نہیں۔ اس کے بغیر curl -d کوئی اور قسم بھیجتا ہے۔
401 invalid_token
ٹوکن کی مدت 15 منٹ بعد ختم ہو گئی۔ نیا ٹوکن لیں۔
403 insufficient_scope
کلید میں کوئی اسکوپ نہیں ہے، مثلاً لنکس کے لیے “لکھنا”۔
ڈیزائن اچانک ری سیٹ ہو گیا
theme_config صرف ایک فیلڈ کے ساتھ بھیجا گیا اور اس نے پوری تھیم بدل دی۔ مکمل تھیم دوبارہ بھیجیں، یا آخری اشاعت کے بعد سے ڈرافٹ کی تمام تبدیلیاں رد کرنے کے لیے restore current استعمال کریں۔

تمام کوڈز کی وضاحت خرابی کا فارمیٹ اور خرابی کوڈز میں ہے، اور تمام اینڈپوائنٹس حصوں کے لحاظ سے اینڈپوائنٹس میں درج ہیں۔

کچھ نہیں ملا؟

ہمیں بتائیں کہ آپ کو کیا چاہیے، ہماری سپورٹ ٹیم ذاتی طور پر آپ کی مدد کرے گی۔

سپورٹ سے رابطہ کریں