ข้อมูลอ้างอิง payload ของ Webhook
เนื้อหา JSON ที่ Timemark ส่งด้วย POST สำหรับอีเวนต์ภาพถ่ายใหม่ อธิบายทีละฟิลด์
ทำสิ่งนี้เมื่อไหร่
หัวข้อที่มีชื่อว่า “ทำสิ่งนี้เมื่อไหร่”คุณกำลังเขียน endpoint ที่รับ webhook จาก Timemark และต้องการทราบโครงสร้างที่แน่นอนของเนื้อหาคำขอเพื่อนำไปแยกวิเคราะห์
วิธีส่งข้อมูล
หัวข้อที่มีชื่อว่า “วิธีส่งข้อมูล”การส่งข้อมูลแต่ละครั้งคือคำขอ HTTP POST ที่มีเนื้อหาเป็น JSON เนื้อหานี้บรรจุอีเวนต์และภาพถ่ายที่เกี่ยวข้อง endpoint ของคุณต้องตอบกลับด้วยสถานะ 2xx ภายในเวลาที่กำหนด มิฉะนั้นจะถือว่าเป็นการส่งข้อมูลที่ล้มเหลวและจะถูกส่งซ้ำ
ตัวอย่าง payload
หัวข้อที่มีชื่อว่า “ตัวอย่าง payload”นี่คือเนื้อหาที่ส่งสำหรับอีเวนต์ ภาพถ่ายใหม่ (event_type: "photo.uploaded"):
{ "event_type": "photo.uploaded", "event_id": "3f4566da-938d-4e11-834b-ba9e3faec98c", "group_name": "Group Scenery", "project_name": "Project Sunrise", "photo_code": "A1BCDEFGHIJ23K", "photo_name": "2025-12-11 13.45.00_1388 Central Park, New York, example.jpg", "photo_url": "https://example.com/uploads/photos/123456.jpg", "thumbnail_url": "https://example.com/uploads/photos/123456.jpg", "photo_timestamp": "2025-12-11T13:45:00Z", "photo_location": { "location_name": "Central Park, New York, USA", "location_latitude": "40.785091", "location_longitude": "-73.968285" }, "member": { "member_name": "Alice Chen", "member_short_name": "Alice", "member_profile_picture_url": "https://example.com/user/profile_photo/123456.jpg", "member_contact": "alice.chen@example.com" }, "device_model": "Apple iPhone 14 Pro Max", "custom_notes": [ { "title": "custom_note_title_1", "content": "custom_note_content_1" }, { "title": "custom_note_title_2", "content": "custom_note_content_2" } ]}ข้อมูลอ้างอิงฟิลด์
หัวข้อที่มีชื่อว่า “ข้อมูลอ้างอิงฟิลด์”| ฟิลด์ | ประเภท | คำอธิบาย |
|---|---|---|
event_type | string | อีเวนต์ที่ทำงาน คือ photo.uploaded สำหรับอีเวนต์ภาพถ่ายใหม่ |
event_id | string | รหัสเฉพาะของการส่งข้อมูลครั้งนี้ ใช้เพื่อกำจัดข้อมูลซ้ำเมื่อมีการส่งซ้ำ |
group_name | string | ทีมที่ภาพถ่ายนี้เป็นของ |
project_name | string | โปรเจกต์ที่ภาพถ่ายนี้เป็นของ |
photo_code | string | รหัสยืนยันของภาพถ่าย ใช้ใน Photo Verification Center ด้วย |
photo_name | string | ชื่อไฟล์ของภาพถ่าย รวมเวลาและสถานที่ที่ถ่าย |
photo_url | string | URL ของภาพขนาดเต็ม |
thumbnail_url | string | URL ของภาพขนาดย่อ |
photo_timestamp | string | เวลาที่ถ่ายในรูปแบบ ISO 8601 (UTC) |
photo_location | object | ตำแหน่งที่ถ่าย ดูรายละเอียดด้านล่าง |
photo_location.location_name | string | ชื่อสถานที่หรือที่อยู่ที่อ่านเข้าใจง่าย |
photo_location.location_latitude | string | ละติจูด ในรูปแบบสตริง |
photo_location.location_longitude | string | ลองจิจูด ในรูปแบบสตริง |
member | object | สมาชิกที่ถ่ายภาพนี้ ดูรายละเอียดด้านล่าง |
member.member_name | string | ชื่อที่แสดงแบบเต็ม |
member.member_short_name | string | ชื่อแบบย่อ |
member.member_profile_picture_url | string | URL ของรูปโปรไฟล์สมาชิก |
member.member_contact | string | ช่องทางติดต่อของสมาชิก เช่น อีเมล |
device_model | string | อุปกรณ์ที่ใช้ถ่ายภาพนี้ |
custom_notes | array | บันทึกย่อกำหนดเองบนภาพถ่าย แต่ละรายการมี title และ content |
ข้อควรระวัง
หัวข้อที่มีชื่อว่า “ข้อควรระวัง”- ละติจูดและลองจิจูดเป็นสตริง ไม่ใช่ตัวเลข ต้องแปลงประเภทข้อมูลก่อนนำไปคำนวณ
- กำจัดข้อมูลซ้ำโดยอิง
event_idการส่งข้อมูลที่ถูกส่งซ้ำจะมีevent_idเดิม จึงควรเก็บค่านี้ไว้แล้วข้ามรายการที่ซ้ำ - ตอบกลับให้เร็ว แล้วค่อยประมวลผลทีหลัง ให้ตอบกลับด้วย
2xxก่อน แล้วจึงทำงานหนักในภายหลัง มิฉะนั้นการส่งข้อมูลจะถูกถือว่าล้มเหลวและถูกส่งซ้ำ
ดูเพิ่มเติม
หัวข้อที่มีชื่อว่า “ดูเพิ่มเติม”อัปเดตล่าสุด: