Logo Site EngageLab Full Black
ติดต่อฝ่ายขาย

API เพิ่มโดเมนเว็บไซต์

เพิ่มโดเมนหนึ่งรายการไปยังแอป WebPush VIP โดยต้องติดตั้ง SDK, Service Worker และขออนุญาตผู้ใช้แยกต่างหาก

ใช้ Basic Auth ด้วย AppKey และ MasterSecret ในศูนย์ข้อมูลที่ถูกต้อง domain เป็นฟิลด์บังคับ ใช้การตรวจสอบของ portalweb เป็นพื้นฐาน ต้องขึ้นต้นด้วย https:// และเป็นตัวพิมพ์เล็กเท่านั้น รองรับโดเมนและ IPv4 ทั้งแบบมีและไม่มีพอร์ตตัวเลข ไม่รองรับ IPv6 กฎที่ยืนยันแล้วอนุญาตพอร์ต 65536 จึงไม่ใช้ 65535 เป็นเพดานการรับข้อมูล แต่ยังปฏิเสธ 0 และศูนย์นำหน้า อนุญาต / เดี่ยวท้ายสุด โดยถือว่าเทียบเท่ารูปแบบไม่มีเครื่องหมายทับในการตรวจคำขอซ้ำ ปฏิเสธส่วนพาธ เช่น /page คิวรี แฟรกเมนต์ ช่องว่าง localhost รวมโดเมนย่อยและรูปแบบที่มีจุดท้าย HTTP และไวลด์การ์ด ตรวจเฉพาะรูปแบบ IPv4 โดยไม่จำกัดวัตถุประสงค์หรือทดสอบ DNS การเข้าถึงและใบรับรอง อินพุตที่ถูกต้องบันทึกตามเดิม request_id ไม่บังคับและยาวสูงสุด 128 ไบต์ เงื่อนไขการส่งกลับอยู่ด้านล่าง

Basic Auth

POST /v4/web/domains

DC Base URL
Singapore https://webpushapi-sgp.engagelab.com
Hong Kong https://webpushapi-hk.engagelab.com
Frankfurt https://webpushapi-defra.engagelab.com
Virginia https://webpushapi-usva.engagelab.com
curl -X POST https://webpushapi-sgp.engagelab.com/v4/web/domains \ -u APP_KEY:MASTER_SECRET \ -H "Content-Type: application/json" \ -d '{ "domain": "https://shop-001.example.com", "request_id": "req-001" }'
              
              curl -X POST https://webpushapi-sgp.engagelab.com/v4/web/domains \
  -u APP_KEY:MASTER_SECRET \
  -H "Content-Type: application/json" \
  -d '{
    "domain": "https://shop-001.example.com",
    "request_id": "req-001"
  }'

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

HTTP 200:

{ "request_id": "req-001", "domain_id": "wd_<sha256>", "domain": "https://shop-001.example.com", "integration_status": "pending", "config_status": "ready" }
              
              {
  "request_id": "req-001",
  "domain_id": "wd_<sha256>",
  "domain": "https://shop-001.example.com",
  "integration_status": "pending",
  "config_status": "ready"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

integration_status: pending / integrated. config_status: ready (pending: reserved).

HTTP Code Message
400 21003 Invalid request
400 23010 Rate limit exceeded for the API
400 27600 INVALID_DOMAIN
400 27601 DOMAIN_ALREADY_EXISTS
403 27602 DOMAIN_ADD_FORBIDDEN
403 27603 DOMAIN_QUOTA_EXCEEDED
401 21004 Authentication failed
503 21030 Retry the same domain
{ "error": { "code": 27601, "message": "DOMAIN_ALREADY_EXISTS" }, "request_id": "req-001", "domain_id": "wd_<sha256>", "domain": "https://shop-001.example.com", "integration_status": "pending", "config_status": "ready" }
              
              {
  "error": {
    "code": 27601,
    "message": "DOMAIN_ALREADY_EXISTS"
  },
  "request_id": "req-001",
  "domain_id": "wd_<sha256>",
  "domain": "https://shop-001.example.com",
  "integration_status": "pending",
  "config_status": "ready"
}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย

คำขอซ้ำที่ส่งตามลำดับไม่ใช้โควตาเพิ่ม การเปรียบเทียบไม่แยกตัวพิมพ์ใหญ่เล็ก เครื่องหมายทับท้าย และพอร์ตเริ่มต้น 443 โดเมนใหม่จะคงโฮสต์ตัวพิมพ์เล็กที่ผ่านการตรวจสอบและพอร์ตที่ส่งมา ส่วนโดเมนเดิมจะคงรูปแบบที่บันทึกและสถานะการเชื่อมต่อ คำขอซ้ำจะส่ง HTTP 400 พร้อมข้อมูลเดิม API ใช้โควตาร่วมกับคอนโซล โปรดส่งคำขอเพิ่มตามลำดับและหลีกเลี่ยงการแก้ไขในคอนโซลพร้อมกัน การเขียนพร้อมกันอาจเขียนทับกัน การมีผลของการตั้งค่าเป็นไปตามการทำงานเดิมของคอนโซลและอาจมีความล่าช้า การทำงานของ API จะบันทึกในบันทึกบริการโดยไม่แสดงในประวัติการทำงานของคอนโซล หลังหมดเวลาหรือ 5xx ให้ลองใหม่ด้วยโดเมนเดิม ไม่รองรับการลบ แก้ไข เพิ่มเป็นชุด หรือซื้อโควตา API นี้ใช้โควตา QPS ของแอปพลิเคชันที่มีอยู่ใน deviceapi หากไม่ได้กำหนด จะใช้ค่าเริ่มต้นของระบบ นับแยกตาม AppKey และ API โดยคำขอซ้ำใช้ QPS ด้วย เมื่อเกินขีดจำกัด จะส่ง HTTP 400 พร้อมรหัส 23010 (Rate limit exceeded for the API) โปรดลองใหม่ภายหลังโดยเพิ่มระยะเวลารอ

การตรวจสอบคำขอ รหัสข้อผิดพลาด และ request_id

เนื้อหาคำขอจำกัดที่ 4 KiB โดย domain ต้องเป็นสตริงที่ไม่ว่าง หากไม่มีค่า เป็น null สตริงว่าง ตัวเลข บูลีน อาร์เรย์ หรือออบเจ็กต์ รวมถึง JSON ไม่ถูกต้องหรือมีหลายค่า เนื้อหาใหญ่เกินกำหนด หรือ request_id เกิน 128 ไบต์ จะส่ง HTTP 400 / 21003 Invalid request โดยไม่มี request_id ส่วนสตริงที่ไม่ว่างแต่รูปแบบโดเมนไม่ถูกต้องจะส่ง HTTP 400 / 27600 INVALID_DOMAIN

หลังผ่านการตรวจสอบโครงสร้าง request_id ที่ถูกต้องและไม่ว่างจะถูกส่งกลับตามเดิมในผลลัพธ์ทางธุรกิจ รวมถึง 27600, 27601 และข้อผิดพลาดจำกัด QPS 23010 หากไม่ระบุหรือเป็นค่าว่างจะละฟิลด์นี้ และหากส่วนหัว Basic ไม่ถูกต้องจนถูกปฏิเสธก่อนอ่านเนื้อหา จะไม่ส่ง request_id กลับเช่นกัน

ขีดจำกัดใช้ app_qps ของแอป หากไม่กำหนดหรือเป็น 0 จะใช้ค่าเริ่มต้นของธุรกิจ ไม่ใช่ค่าคงที่สำหรับทุกแอป นับแยกตาม AppKey + /v4/web/domains คำขอซ้ำใช้ QPS และตรวจสอบขีดจำกัดก่อนตรวจโดเมนซ้ำ เมื่อเกินกำหนดจะส่ง HTTP 400 / 23010 Rate limit exceeded for the API ไม่ใช่ HTTP 429 โปรดลองใหม่โดยเพิ่มเวลารอ

{"error":{"code":21003,"message":"Invalid request"}}
              
              {"error":{"code":21003,"message":"Invalid request"}}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
{"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}
              
              {"request_id":"invalid-domain","error":{"code":27600,"message":"INVALID_DOMAIN"}}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
{"request_id":"qps-example","error":{"code":23010,"message":"Rate limit exceeded for the API"}}
              
              {"request_id":"qps-example","error":{"code":23010,"message":"Rate limit exceeded for the API"}}

            
โค้ดนี้โชว์เป็นหน้าต่างลอย
Icon Solid Transparent White Qiyu
ติดต่อฝ่ายขาย