HTTP API
ยืนยันตัวตน ค้นหาเครื่องมือ และยืนยันการเปลี่ยนแปลงผ่าน HTTP API ที่มีอยู่
ส่งคำขอ API ของผลิตภัณฑ์ไปยัง origin ของ Influence ที่เชื่อถือได้ เช่น https://influence.so โดเมนเอกสารไม่รับคำขอ API ของผลิตภัณฑ์ ใช้เส้นทางด้านล่างตรงตามที่ระบุโดยไม่มีพารามิเตอร์คิวรี
สร้างคีย์ API พร้อมสิทธิ์ที่จำเป็น
ในการตั้งค่า Influence เปิด แอปและระบบอัตโนมัติ → คีย์ API เลือกสิทธิ์ที่จำเป็นและวันหมดอายุ คีย์จะแสดงเพียงครั้งเดียว ให้เก็บในที่เก็บข้อมูลลับเป็น PUBLISH_API_TOKEN ส่งผ่าน Authorization: Bearer … เท่านั้น อย่าใส่ใน URL เนื้อหาคำขอ หรือแชต เพิกถอนเมื่อไม่ใช้งานแล้ว
ค้นหาเครื่องมือและอ่านข้อมูล
ตั้งค่า PUBLISH_API_URL เป็น origin ที่เชื่อถือได้ ตัวอย่างนี้สมมติว่าโปรเซสมี PUBLISH_API_TOKEN แล้ว accountList ต้องมีสิทธิ์ integrations:read ให้ใช้ฟิลด์แบ่งหน้าเพื่ออ่านหน้าถัดไป
export PUBLISH_API_URL="https://influence.so"
curl "$PUBLISH_API_URL/api/v1/tools" \
-H "Authorization: Bearer $PUBLISH_API_TOKEN"
curl "$PUBLISH_API_URL/api/v1/tools/accountList/call" \
-H "Authorization: Bearer $PUBLISH_API_TOKEN" \
-H 'Content-Type: application/json' \
--data '{"input":{}}'
เส้นทางคำขอ
| เมธอด | เส้นทาง | หน้าที่ |
|---|---|---|
GET |
/api/v1/tools |
แสดงเครื่องมือที่ข้อมูลรับรองนี้ใช้ได้ |
POST |
/api/v1/tools/{tool}/call |
เรียกเครื่องมือแบบอ่านอย่างเดียว |
POST |
/api/v1/tools/{tool}/prepare |
เตรียมการเปลี่ยนแปลงตามข้อมูลที่ระบุโดยยังไม่ดำเนินการ |
POST |
/api/v1/tools/{tool}/confirm |
ยืนยันการเปลี่ยนแปลงที่เตรียมไว้ |
POST |
/api/v1/media/import |
ยืนยันการอัปโหลดรูปภาพไบนารีขนาดเล็กที่เตรียมไว้ |
คำขอ JSON ของเครื่องมือใช้ Content-Type: application/json และเนื้อหาที่มีเพียง input: {"input":{…}} ดูสคีมาอินพุตของแต่ละเครื่องมือจากรายการเครื่องมือปัจจุบัน
เตรียมและยืนยันการเปลี่ยนแปลง
- ส่งอินพุตของการดำเนินการที่ตรงตามต้องการไปยัง
/prepareคำตอบที่สำเร็จมีstatus: "confirmation_required",confirmationCapability,expiresAt,inputDigestและอาจมีsummary - ก่อนหมดอายุ ส่งอินพุตเดิมไปยัง
/confirmใส่ค่าการยืนยันที่ได้รับในX-Publish-Confirmationและคีย์ใหม่ที่ไคลเอนต์สร้างในIdempotency-Key - เก็บอินพุต ค่าการยืนยัน และคีย์ไว้ด้วยกัน หากการยืนยันขาดช่วงหรือผลยังไม่แน่นอน ให้ใช้ทั้งสามค่าเดิมสำหรับคำขอเดิม อย่าเตรียมการดำเนินการใหม่แทนเพื่อกู้คืนผลที่ยังไม่แน่นอน
คีย์ idempotency มี 16–200 ตัวอักษรจาก A–Z, a–z, 0–9, ., _, : และ - ค่าการยืนยันเป็นข้อมูลลับที่ไม่ต้องตีความ การส่งคีย์ไปยัง /call หรือ /prepare ไม่ได้จองการเปลี่ยนแปลงที่ยืนยันแล้ว
การยืนยันคำขอแยกจากการอนุมัติให้เผยแพร่ เมื่อต้องการเผยแพร่หรือเปลี่ยนเวลา ให้สร้างและแสดงข้อมูลตรวจทานล่าสุดอย่างครบถ้วน ข้อความต้องได้รับการอนุมัติใหม่หลังแสดงข้อมูลนั้น รูปภาพและวิดีโอต้องให้บุคคลตรวจดูและอนุมัติผ่านหน้าตรวจทานที่รองรับหรือหลังลงชื่อเข้าใช้ Influence การเตรียมข้อมูลตรวจทานยังไม่เผยแพร่สิ่งใด อ่านผลที่บันทึกไว้ก่อนดำเนินการต่อ สถานะ needs_review ต้องตรวจสอบว่าเกิดอะไรขึ้น ไม่ใช่ส่งซ้ำ
จัดการข้อผิดพลาดและผลที่ยังไม่แน่นอน
ตรวจสอบทั้งสถานะ HTTP และเนื้อหาคำตอบ เมื่อสำเร็จจะได้ {"ok":true,"toolName":"…","output":{…}} เมื่อเครื่องมือล้มเหลวจะได้ {"ok":false,"toolName":"…","error":{"code":"…","message":"…","retryable":false}} ซึ่งอาจมากับ HTTP 200 ข้อผิดพลาดระดับการรับส่งใช้ {"error":{"code":"…","message":"…","retryable":false}} โดยไม่มี ok หรือ toolName
401 หมายถึงต้องยืนยันตัวตน ให้ตรวจสอบการหมดอายุหรือการเพิกถอน หากขาดสิทธิ์ต้องได้รับสิทธิ์ที่เหมาะสม ไม่ใช่ส่งคำขอซ้ำ 503 หมายถึง API ไม่พร้อมใช้ในสภาพแวดล้อมนั้น ปฏิบัติตามข้อผิดพลาดและคำแนะนำการลองใหม่ การหมดเวลารอไม่ได้พิสูจน์ว่าการเปลี่ยนแปลงล้มเหลว ให้เก็บข้อมูลยืนยันและอ่านสถานะก่อนส่งซ้ำ การรับคำขอ การตั้งเวลา และการเผยแพร่เป็นคนละผลลัพธ์
อัปโหลดสื่อ
สำหรับไฟล์ในเครื่อง ควรใช้ uploadMedia ของ SDK หรือ media:upload ของ CLI ทั้งสองใช้เครื่องมืออัปโหลดแบบแบ่งส่วนเดียวกันและคง clientKey เดิมสำหรับการลองใหม่ แนบได้เฉพาะผลลัพธ์ที่พร้อมใช้และมี assetId สำหรับการอ้างอิงไฟล์ HTTPS ที่ได้รับอนุญาตให้ใช้ mediaImport เส้นทางไฟล์ในเครื่องไม่ใช่ URL ดาวน์โหลด
POST /api/v1/media/import รองรับการรับส่งรูปภาพขนาดเล็กแบบเดิม ให้เตรียม mediaImport ด้วยตัวอธิบายการอัปโหลดที่ตรงกัน แล้วส่งไบต์เดิมเป็น application/octet-stream แนบ X-Publish-Confirmation, Idempotency-Key และ X-Publish-Upload ที่มีตัวอธิบาย JSON เข้ารหัสสำหรับ URI ไบต์ต้องตรงกับขนาดและ SHA-256 จำกัดไว้ที่ 3 MiB สำหรับไฟล์ที่ใหญ่กว่าและรองรับให้ใช้ฟังก์ชันช่วยอัปโหลด การอัปโหลดไม่เคยเป็นการอนุมัติให้เผยแพร่