lowpoly จะยุติการให้บริการในวันที่ 30 ต.ค. 2569 โปรดเปลี่ยนโมเดลก่อนวันที่เหล่านี้เพื่อหลีกเลี่ยงข้อผิดพลาดของคำขอ ดูการเลิกใช้งานทั้งหมด

Webhooks

ให้ Meshy ส่งคำขอ POST ไปยังเซิร์ฟเวอร์ของคุณเมื่องาน API มีความคืบหน้าหรือเสร็จสิ้น เพื่อที่คุณจะไม่ต้องคอยสำรวจสถานะ (polling)


เหตุผลที่ควรใช้ webhooks

webhooks ใช้แรงงานน้อยกว่าและมีค่าใช้จ่ายต่ำกว่าการ polling API เพื่อตรวจสอบสถานะของแต่ละงาน Meshy จะส่งการอัปเดตแต่ละครั้งทันทีที่เกิดขึ้น ทำให้คุณได้รับข้อมูลเร็วขึ้น และ webhooks ยังรองรับการขยายตัวได้ดีกว่าการ polling นอกจากนี้คุณยังส่งคำขอน้อยลง ซึ่งช่วยให้ห่างจาก ขีดจำกัดอัตรา มากขึ้น


ตั้งค่า webhook

หากต้องการเพิ่ม webhook ให้ทำตามขั้นตอนต่อไปนี้:

  1. เปิด หน้า Webhooks ใน Developer Platform แล้วคลิก Create Webhook
  2. ในช่อง Payload URL ให้ป้อน URL ที่จะรับการส่งข้อมูล Meshy จะส่งข้อมูลผ่าน https:// เท่านั้น
  3. เก็บสำเนาของ Webhook Secret ที่ไดอะล็อกกรอกให้โดยอัตโนมัติไว้ ทุกการส่งข้อมูลจะมีค่านี้แนบมาด้วย เพื่อให้เซิร์ฟเวอร์ของคุณตรวจสอบได้ว่าคำขอนั้นมาจาก Meshy จริง สำหรับ webhook ที่คุณมีอยู่แล้ว ให้คลิกไอคอนรูปดวงตาในคอลัมน์ Secret เพื่อดูค่านี้
  4. เลือก Active แล้วคลิก Confirm

แต่ละบัญชีสามารถมี webhook ที่ใช้งานอยู่ได้ 5 รายการ และมีได้ทั้งหมดสูงสุด 10 รายการ webhook ที่ใช้งานอยู่ทุกรายการจะได้รับการอัปเดตสถานะของงาน API ทั้งหมดของคุณ

หากต้องการทดสอบ webhook กับเซิร์ฟเวอร์บนคอมพิวเตอร์ของคุณ โปรดดู ทดสอบบนคอมพิวเตอร์ของคุณ


จัดการการส่งข้อมูล

หากต้องการยอมรับการส่งข้อมูล ให้ตอบกลับด้วยสถานะที่ต่ำกว่า 400 เช่น 200 หรือ 202 Meshy จะรอการตอบกลับประมาณ 25 วินาที ดังนั้นให้จัดเก็บข้อมูลที่ส่งมาและตอบกลับก่อนเป็นอันดับแรก จากนั้นจึงค่อยทำงานที่ใช้เวลานาน เช่น การดาวน์โหลดโมเดล

สถานะที่ 400 ขึ้นไป หรือการไม่ตอบกลับเลย ถือว่าเป็นการส่งข้อมูลที่ล้มเหลว Meshy จะลองส่งซ้ำโดยเว้นระยะเวลารอนานขึ้นในแต่ละครั้ง สูงสุด 4 ครั้งสำหรับการอัปเดต IN_PROGRESS และสูงสุด 9 ครั้งสำหรับสถานะสุดท้าย หากการอัปเดต 20 ครั้งติดต่อกันล้มเหลวในทุกความพยายาม Meshy อาจปิดใช้งาน webhook นั้น หากต้องการเปิดใช้งานอีกครั้ง ให้แก้ไขที่หน้า Webhooks และเลือก Active

เขียนโค้ดของคุณให้รองรับกรณีต่อไปนี้:

  • การส่งข้อมูลอาจมาถึงไม่เรียงลำดับ การส่งข้อมูล IN_PROGRESS อาจมาถึงหลังจากการส่งข้อมูลสุดท้าย ดังนั้นอย่าให้มันไปแทนที่สถานะสุดท้าย
  • การอัปเดตเดียวกันอาจมาถึงมากกว่าหนึ่งครั้ง ให้จัดการแต่ละคู่ของ id และ status เพียงครั้งเดียว
  • ใครก็ตามที่รู้ URL ของคุณสามารถส่งคำขอมาได้ ให้เปรียบเทียบ X-MESHY-API-WEBHOOK-SECRET-KEY กับสำเนา secret ของคุณ และปฏิเสธคำขอที่ไม่ตรงกัน

หากการส่งข้อมูลสุดท้ายของงานยังไม่มาถึงหลังจากเวลาประมาณสองเท่าของเวลาปกติของงานนั้น ให้ดึงข้อมูลงานจากเอนด์พอยต์ GET ของงานนั้น สำหรับเวลาที่ใช้โดยทั่วไปและควรรอนานเท่าใด โปรดดู วงจรชีวิตของงาน


ทดสอบบนคอมพิวเตอร์ของคุณ

Meshy จะส่งข้อมูลไปยัง URL https:// สาธารณะเท่านั้น ดังนั้นจึงไม่สามารถเข้าถึงเซิร์ฟเวอร์บนคอมพิวเตอร์ของคุณได้โดยตรง หากต้องการทดสอบโค้ดบนคอมพิวเตอร์ของคุณ ให้ส่งต่อ URL สาธารณะไปยังเครื่องของคุณด้วย webhook proxy ขั้นตอนต่อไปนี้ใช้ smee.io และบริการ webhook proxy อื่น ๆ ก็ทำงานในลักษณะเดียวกัน

  1. เปิด smee.io แล้วคลิก Start a new channel คัดลอก URL ที่อยู่ใต้ Webhook Proxy URL

  2. หากคุณยังไม่มี smee client ให้ติดตั้งก่อน:

    npm install --global smee-client
    
  3. ส่งต่อช่องสัญญาณไปยังเซิร์ฟเวอร์ของคุณ แทนที่ WEBHOOK_PROXY_URL ด้วย webhook proxy URL ของคุณ:

    smee --url WEBHOOK_PROXY_URL --path /webhook --port 3000
    

    ผลลัพธ์จะมีลักษณะดังนี้ โดยที่ WEBHOOK_PROXY_URL คือ webhook proxy URL ของคุณ:

    Forwarding WEBHOOK_PROXY_URL to http://127.0.0.1:3000/webhook
    Connected WEBHOOK_PROXY_URL
    

    เปิดให้ทำงานต่อไปในระหว่างที่คุณทดสอบ หากต้องการหยุดการส่งต่อ ให้กด Ctrl+C เซิร์ฟเวอร์ของคุณจะรับการส่งข้อมูลที่พอร์ต 3000 ที่พาธ /webhook ดังนั้นให้ตั้งค่าโค้ดของคุณให้คอยรับฟังที่จุดนั้น

  4. ที่ หน้า Webhooks ให้สร้าง webhook โดยใช้ webhook proxy URL เป็น Payload URL


เพย์โหลดการส่งข้อมูล

Meshy จะส่งข้อมูลครั้งหนึ่งขณะที่งานอยู่ในสถานะ IN_PROGRESS และส่งอีกครั้งเมื่องานถึงสถานะสุดท้าย งานอาจถึงสถานะสุดท้ายได้โดยไม่มีการส่งข้อมูล IN_PROGRESS ก็ได้

การส่งข้อมูลแต่ละครั้งเป็นคำขอ POST ไปยังเพย์โหลด URL ของคุณ พร้อมส่วนหัวต่อไปนี้:

ส่วนหัวค่า
X-MESHY-API-WEBHOOK-SECRET-KEYsecret ของ webhook
X-MESHY-API-WEBHOOK-USER-IDไอดีของผู้ใช้ Meshy ที่เป็นเจ้าของ webhook
Meshy-Webhook-Versionv1 รูปแบบของเนื้อหา
Content-Typeapplication/json
User-AgentMeshyAPIWebhook/1.0.0

เนื้อหา JSON คือออบเจกต์ของงาน ซึ่งเป็นออบเจกต์เดียวกับที่เอนด์พอยต์ GET ของงานนั้นส่งคืน ยกเว้น progress การส่งข้อมูลแต่ละครั้งจะส่ง progress เป็นค่าใดค่าหนึ่งต่อไปนี้:

  • 50 ขณะที่งานอยู่ในสถานะ IN_PROGRESS
  • 100 เมื่องานสำเร็จ
  • 0 เมื่องานล้มเหลวหรือถูกยกเลิก

สำหรับฟิลด์ของแต่ละออบเจกต์งาน พร้อมตัวอย่าง โปรดดูหัวข้อต่อไปนี้: