API เนื้อหา
API เนื้อหามี Endpoint สำหรับสร้าง ตั้งเวลา อัปโหลดสื่อ ตรวจสอบ และยกเลิกงานเผยแพร่ไปยังโซเชียลมีเดีย
📌 Endpoint
หัวข้อที่มีชื่อว่า “📌 Endpoint”| เมธอด | พาธ | คำอธิบาย | ขอบเขตสิทธิ์ที่จำเป็น |
|---|---|---|---|
POST | /v1/brand/contents/uploads | สร้าง URL แบบลงนามล่วงหน้าสำหรับอัปโหลดรูปภาพและวิดีโอด้วย PUT | publishing:create หรือ * |
POST | /v1/brand/contents | ส่งโพสต์แบบทันทีหรือแบบตั้งเวลา (202 Accepted) | publishing:create หรือ * |
GET | /v1/brand/contents | รายการเนื้อหาของแบรนด์พร้อมการแบ่งหน้าและตัวกรองสถานะ | publishing:read หรือ * |
GET | /v1/brand/contents/{content_id} | ดึงรายละเอียดเนื้อหาและผลลัพธ์ของงานเผยแพร่ | publishing:read หรือ * |
DELETE | /v1/brand/contents/{content_id}/cancel | ยกเลิกโพสต์ที่ตั้งเวลาไว้ก่อนที่การประมวลผลจะเริ่มขึ้น | publishing:delete หรือ * |
1. URL แบบลงนามล่วงหน้าสำหรับอัปโหลดสื่อ (POST /v1/brand/contents/uploads)
หัวข้อที่มีชื่อว่า “1. URL แบบลงนามล่วงหน้าสำหรับอัปโหลดสื่อ (POST /v1/brand/contents/uploads)”หากต้องการแนบสื่อกับโพสต์ ให้ขอ URL อัปโหลดแบบลงนามล่วงหน้า แล้วอัปโหลดไฟล์ไบนารีไปยังที่เก็บข้อมูล S3/R2 โดยตรงผ่าน HTTP PUT
รูปแบบสื่อที่รองรับ
หัวข้อที่มีชื่อว่า “รูปแบบสื่อที่รองรับ”- รูปภาพ (สูงสุด 20MB, URL หมดอายุใน 300 วินาที):
image/jpeg,image/png,image/webp,image/gif - วิดีโอ (สูงสุด 500MB, URL หมดอายุใน 600 วินาที):
video/mp4,video/quicktime(.mov),video/webm
ตัวอย่างคำขอ
หัวข้อที่มีชื่อว่า “ตัวอย่างคำขอ”curl -X POST "https://api.ankk.app/v1/brand/contents/uploads" \ -H "Authorization: Bearer spk_live_xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "filename": "launch-banner.png", "content_type": "image/png", "size": 1420500 }'ตัวอย่างการตอบกลับ (200 OK)
หัวข้อที่มีชื่อว่า “ตัวอย่างการตอบกลับ (200 OK)”{ "upload_url": "https://storage.ankk.app/sns-posts/original/brand_.../launch-banner.png?X-Amz-Signature=...", "asset_ref": "https://cdn.ankk.app/sns-posts/original/brand_.../launch-banner.png", "method": "PUT", "object_key": "sns-posts/original/brand_.../launch-banner.png", "content_type": "image/png", "size": 1420500, "expires_in_seconds": 300}อัปโหลดไฟล์ไบนารีผ่าน PUT
หัวข้อที่มีชื่อว่า “อัปโหลดไฟล์ไบนารีผ่าน PUT”curl -X PUT "<upload_url>" \ -H "Content-Type: image/png" \ --data-binary "@/path/to/launch-banner.png"2. เผยแพร่เนื้อหา (POST /v1/brand/contents)
หัวข้อที่มีชื่อว่า “2. เผยแพร่เนื้อหา (POST /v1/brand/contents)”ส่งข้อความพร้อมกับ asset_ref ที่อัปโหลดไว้เพื่อสร้างงานเผยแพร่
ฟิลด์ในเนื้อหาคำขอ
หัวข้อที่มีชื่อว่า “ฟิลด์ในเนื้อหาคำขอ”| ฟิลด์ | ประเภท | ความจำเป็น | คำอธิบาย |
|---|---|---|---|
connection_id | string | จำเป็น | ID ของการเชื่อมต่อ SNS เป้าหมาย (Connections API) |
idempotency_key | string | จำเป็น | คีย์เฉพาะที่ไคลเอนต์สร้างขึ้นเพื่อป้องกันการส่งซ้ำ |
text | string | ไม่จำเป็น | ข้อความในโพสต์ |
media | array | ไม่จำเป็น | อาร์เรย์ของออบเจกต์สื่อที่มี url หรือ asset_ref |
scheduled_for | string | ไม่จำเป็น | การประทับเวลา ISO 8601 สำหรับตั้งเวลา หากไม่ระบุจะเผยแพร่ทันที |
thread_posts | array | ไม่จำเป็น | โพสต์เพิ่มเติมสำหรับสร้างเธรดในแพลตฟอร์มที่รองรับ |
provider_settings | object | ไม่จำเป็น | การตั้งค่าเฉพาะแพลตฟอร์ม เช่น หมวดหมู่ YouTube |
ตัวอย่างคำขอ (โพสต์ทันที)
หัวข้อที่มีชื่อว่า “ตัวอย่างคำขอ (โพสต์ทันที)”curl -X POST "https://api.ankk.app/v1/brand/contents" \ -H "Authorization: Bearer spk_live_xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{ "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001", "text": "Excited to launch our new product today! 🚀\nhttps://ankk.app", "media": [ { "url": "https://cdn.ankk.app/sns-posts/original/brand_.../launch-banner.png" } ] }'ตัวอย่างการตอบกลับ (202 Accepted)
หัวข้อที่มีชื่อว่า “ตัวอย่างการตอบกลับ (202 Accepted)”{ "content_id": "content_01jm8za2example", "status": "scheduled", "publish_job_id": "job_01jm8za2jobexample", "connection_id": "conn_01jm8x9k2example", "idempotency_key": "launch-2026-001"}3. รายการและตรวจสอบเนื้อหา
หัวข้อที่มีชื่อว่า “3. รายการและตรวจสอบเนื้อหา”รายการเนื้อหา (GET /v1/brand/contents)
หัวข้อที่มีชื่อว่า “รายการเนื้อหา (GET /v1/brand/contents)”curl -X GET "https://api.ankk.app/v1/brand/contents?status=published&limit=20" \ -H "Authorization: Bearer spk_live_xxxxxxxx"ดึงรายละเอียดเนื้อหา (GET /v1/brand/contents/{content_id})
หัวข้อที่มีชื่อว่า “ดึงรายละเอียดเนื้อหา (GET /v1/brand/contents/{content_id})”curl -X GET "https://api.ankk.app/v1/brand/contents/content_01jm8za2example" \ -H "Authorization: Bearer spk_live_xxxxxxxx"4. ยกเลิกโพสต์ที่ตั้งเวลาไว้ (DELETE /v1/brand/contents/{content_id}/cancel)
หัวข้อที่มีชื่อว่า “4. ยกเลิกโพสต์ที่ตั้งเวลาไว้ (DELETE /v1/brand/contents/{content_id}/cancel)”ยกเลิกโพสต์ที่มีสถานะ scheduled ก่อนที่จะเริ่มดำเนินการ
curl -X DELETE "https://api.ankk.app/v1/brand/contents/content_01jm8za2example/cancel" \ -H "Authorization: Bearer spk_live_xxxxxxxx"