Publishable Keys
การเรียก API ที่ปลอดภัยสำหรับเบราว์เซอร์ ไม่ต้องมีแบ็กเอนด์ของตัวเอง
Publishable Key (po_pk_) สามารถปรากฏในส่วนหน้าเว็บได้: จำกัดขอบเขต, ผูกกับต้นทาง และจำกัดงบประมาณ
สำหรับอาร์ติแฟกต์ Claude, Canvas ChatGPT, Grok และเว็บแอปพลิเคชันของคุณเอง
- โครงสร้างพื้นฐาน EU ของตนเอง ข้อมูลของคุณยังคงอยู่ในยุโรป
- ISO 27001 เปิดใช้งาน ความปลอดภัยได้รับการรับรอง
- SOC 2 Type II เปิดใช้งาน มาตรฐานการตรวจสอบระดับสากล
- ประสบการณ์กว่า 24 ปี พิสูจน์แล้ว มั่นคง พร้อมสำหรับอนาคต
โดยตรงจากเบราว์เซอร์
จาก AI Canvas ไปยังการเรียกใช้ API โดยตรง
คุณกำลังสร้างแอปแปลง PDF เป็นข้อความใน Claude Artifacts, ChatGPT Canvas หรือ Grok หากไม่มีแบ็กเอนด์ การเรียกใช้ API จะไม่เกิดขึ้น: CORS บล็อก, คีย์ลับจะปรากฏชัดเจนในโค้ดต้นทาง และคีย์ที่เปิดกว้างจะทำให้บัญชีของคุณเสี่ยงต่อการใช้งานที่ผิดวัตถุประสงค์ ช่องว่างนี้คือสิ่งที่ Publishable Keys ช่วยเติมเต็ม
วางใน Claude, ChatGPT หรือ Grok
พรอมต์ที่เปลี่ยน AI Canvas ใดๆ ให้เป็นตัวอย่างจริงที่ขับเคลื่อนด้วย API — โดยไม่ต้องมีแบ็กเอนด์
อ่านเอกสาร API นี้:
https://api.paperoffice.ai/latest/docs/llms-full.txt สร้างแอป React ไฟล์เดียว (Claude Artifact / ChatGPT Canvas / Grok):
ผู้ใช้อัปโหลด PDF แอปจะเรียก
/job/add/paperoffice_aiocr___generate โดยตรงจากเบราว์เซอร์
และแสดงข้อความที่ดึงออกมา การตรวจสอบสิทธิ์: Bearer po_pk_MY_PUBLISHABLE_KEY (ขอให้ผู้ใช้ป้อนคีย์)
ใช้ processing_lane=instant สำหรับผลลัพธ์แบบซิงค์ ส่วนหัว Origin ถูกตั้งค่าโดยเบราว์เซอร์ เลือกพรีเซ็ต สร้างคีย์ วางคีย์
แดชบอร์ดให้ค่ากำหนดล่วงหน้าสำหรับขอบเขตและงบประมาณ ต้นทางจะเว้นว่างไว้ — ให้ป้อน Header ของต้นทางจากเครื่องมือผู้พัฒนาเบราว์เซอร์ แล้วคัดลอกคีย์ไปใส่ในคำสั่งของคุณ
const form = new FormData();form.append("file_1", fileInput.files[0]);form.append("processing_lane", "instant");form.append("client_wait", "true");const response = await fetch("https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate", { method: "POST", headers: { Authorization: "Bearer po_pk_YOUR_PUBLISHABLE_KEY" }, body: form,});console.log(await response.json()); curl -X POST "https://api.paperoffice.ai/latest/job/add/paperoffice_aiocr___generate" \ -H "Authorization: Bearer po_pk_YOUR_PUBLISHABLE_KEY" \ -H "Origin: https://app.example.com" \ -F "[email protected]" \ -F "processing_lane=instant" \ -F "client_wait=true" การเรียกครั้งแรก
fetch จากเบราว์เซอร์, Origin ถูกตั้งค่าโดยเบราว์เซอร์
การเรียกใช้ไปยัง POST /latest/job/add/{pipeline} — เป็น endpoint เดียวกันกับการใช้ Secret Key สิ่งใหม่ที่เพิ่มเข้ามาคือประเภทของคีย์และ Header Origin ซึ่งเบราว์เซอร์จะส่งมาโดยอัตโนมัติ
- Origin มาจากเบราว์เซอร์
fetch จะตั้งค่า Header Origin ให้เอง สคริปต์ภายนอกเบราว์เซอร์ (เช่น cURL, Node) ต้องส่งมันอย่างชัดเจน — หากไม่ทำเช่นนั้น API จะตอบกลับด้วยสถานะ 403 ORIGIN_HEADER_REQUIRED
- ผลลัพธ์แบบอินไลน์
เมื่อใช้ processing_lane=instant และ client_wait=true API จะคงการเชื่อมต่อไว้และส่งผลลัพธ์โดยตรงในการตอบกลับ
- รหัสข้อผิดพลาดที่ชัดเจน
402 BUDGET_EXHAUSTED, 403 DOMAIN_NOT_ALLOWED, 403 SCOPE_NOT_GRANTED, 429 RATE_LIMIT_EXCEEDED — แต่ละขีดจำกัดจะแจ้งด้วยรหัสของตัวเอง
เมทริกซ์ความปลอดภัย
หกการควบคุม บังคับใช้ทั้งหมดที่ฝั่งเซิร์ฟเวอร์
จำกัดขอบเขต, ผูกกับต้นทาง, จำกัดงบประมาณ, ยกเลิกได้ทุกเมื่อ การควบคุมทั้งหมดถูกบังคับใช้ฝั่งเซิร์ฟเวอร์ — จึงทำให้คีย์สามารถวางอยู่ในโค้ดส่วนหน้าเว็บได้
-
จำกัดขอบเขต
คีย์จะเข้าถึงเฉพาะกลุ่มเอนด์พอยต์ที่คุณอนุญาตอย่างชัดเจน:
ocr:read,llm:generate,translate:textและอื่นๆ การเรียกใช้งานนอกเหนือจากขอบเขตนี้จะส่ง HTTP 403 -
ผูกกับต้นทาง
ทุกคำขอต้องมีหัวเรื่อง Origin ที่ตรงกับรายการอนุญาตของคีย์ (โฮสต์ที่ตรงกันพอดีหรือ wildcard ของซับโดเมน) หากไม่ตรงกัน จะส่ง HTTP 403 พร้อมรหัส API
-
ไม่มีขีดจำกัดนาทีเพิ่มเติม
ไม่มีขีดจำกัดนาทีเฉพาะสำหรับ po_pk_ โดยตรง ใช้ขีดจำกัดอัตราโทเค็นปกติของบัญชีเป็นหลัก ส่วนการใช้จ่ายจะถูกจำกัดด้วยงบประมาณตลอดอายุการใช้งาน
-
งบประมาณจำกัด
คีย์แต่ละตัวมีงบประมาณตลอดอายุการใช้งาน เมื่อใช้งบประมาณหมดแล้ว API จะส่ง HTTP 402 BUDGET_EXHAUSED — การบริโภคจะหยุดทันที ไม่ใช่รอจนถึงการเรียกเก็บเงิน
-
เพิกถอนได้ทุกเมื่อ
สามารถเพิกถอนคีย์ได้ตลอดเวลาผ่านบัญชี คีย์ที่ถูกเพิกถอนจะไม่ได้รับการยอมรับจาก API อีกต่อไป
-
ถูกล็อกถาวร
HTTP DELETE รวมถึงการเข้าสู่ระบบบัญชี, การจัดการคีย์, OAuth, ผู้ดูแลพาร์ทเนอร์, การเปลี่ยนแปลงการชำระเงิน และการแฮชรหัสผ่าน จะถูกปิดกั้นถาวรสำหรับ po_pk_ ทุกกรณี เอกสาร API ของผลิตภัณฑ์ที่ระบุไว้ — รวมถึงการลบด้วย POST, Webhooks, การอ่านข้อมูลบิลลิ่ง และ CRM — อนุญาตให้ใช้งานได้
ลำดับชั้นของคีย์
ประเภทคีย์ 3 แบบ ความรับผิดชอบชัดเจน
Secret Key สำหรับเซิร์ฟเวอร์, Publishable Key สำหรับเบราว์เซอร์ — พร้อม User Token สำหรับการเข้าถึงที่จำกัดอัตราโดยอ้างอิงผู้ใช้
| คำนำหน้า | ประเภท | กรณีการใช้งาน | ปลอดภัยสำหรับเบราว์เซอร์ | Scope เริ่มต้น |
|---|---|---|---|---|
po_sk_ | คีย์ลับ (Secret Key) | เซิร์ฟเวอร์ถึงเซิร์ฟเวอร์, การเข้าถึง API เต็มรูปแบบ | ไม่ | ทุกเอนด์พอยต์ |
po_ut_ | User Token | ใช้ในระดับผู้ใช้ จำกัดตามระดับ | ไม่ | ตามระดับ |
po_pk_ | Publishable Key | เบราว์เซอร์ / AI-Canvas (Claude, ChatGPT, Grok) | ใช่ | รายการ Scope |
สามชุดค่าเริ่มต้น
คลิกหนึ่งครั้ง คีย์หนึ่งตัว วัตถุประสงค์หนึ่งเดียว
แต่ละพรีเซ็ตถูกตั้งค่าไว้สำหรับ Use-Case ที่เฉพาะเจาะจง — ค่าเริ่มต้นที่ปลอดภัย ขอบเขตที่คัดสรรแล้ว งบประมาณที่เป็นจริง ปรับเปลี่ยนได้ทุกเมื่อผ่านแดชบอร์ด
-
DEFAULTการอ่านอย่างปลอดภัยสิทธิ์เริ่มต้นที่ปลอดภัยสำหรับการสาธิตง่ายๆ และเครื่องมือภายใน: OCR, LLM, Translate, Documents, Search.
ขอบเขตการอนุญาต (Scopes)
เริ่มต้นด้วยพรีเซ็ตนี้ -
AIDEMOสนามเด็กเล่น AI แนะนำสำหรับ Claude Artifacts, ChatGPT Canvas และ Grok demos ทุกสิ่งที่คุณต้องการเพื่อเปิดใช้งาน AI demos แบบสด
ขอบเขตการอนุญาต (Scopes)
เริ่มต้นด้วยพรีเซ็ตนี้ -
WIDGETเว็บไซต์สาธารณะสำหรับแบบฟอร์มติดต่อ, วิดเจ็ตแชท และปุ่มจองบนเว็บไซต์ของบริษัทของคุณ
ขอบเขตการอนุญาต (Scopes)
เริ่มต้นด้วยพรีเซ็ตนี้
การเรียก API ครั้งแรก
พร้อมสำหรับการเรียกครั้งแรกจากเบราว์เซอร์หรือยัง?
สร้าง Key, เปิด llms-full.txt, วาง Prompt — แอปของคุณเรียก API โดยตรงจาก Claude, ChatGPT หรือ Grok
Publishable Keys ในการทำงานจริง
ดูว่า PaperOffice Publishable Keys ทำงานอย่างไรในทางปฏิบัติ — ในวิดีโอ
คำถามที่พบบ่อย
ภาพรวมของข้อมูลสำคัญทั้งหมด
po_pk_ แตกต่างจาก po_sk_ อย่างไร?
po_sk_ (Secret Key) ออกแบบมาสำหรับการผสานรวมแบบ Server-to-Server — มีสิทธิ์เข้าถึงเต็มรูปแบบบน API ห้ามฝังไว้ในเบราว์เซอร์โดยเด็ดขาด po_pk_ (Publishable Key) สร้างขึ้นสำหรับโค้ดฝั่งเบราว์เซอร์: จำกัดขอบเขต (scope) ผูกกับต้นทาง (origin) และจำกัดงบประมาณ ใช้ API เดียวกัน แต่มีโปรไฟล์ความปลอดภัยที่แตกต่างกัน
ทำไมไม่ใช้ Reverse Proxy จากแบ็กเอนด์ของตัวเองล่ะ?
นี่เป็นแนวทางคลาสสิก — แต่ยังคงต้องการแบ็กเอนด์ AI Artifacts (Claude, ChatGPT, Grok) ออกแบบมาเพื่อทำงานโดยไม่ต้องมีแบ็กเอนด์ของคุณ Publishable Keys ทำให้สิ่งนี้เป็นไปได้โดยไม่เปิดเผย Secret Key ของคุณ: ขอบเขตต่างๆ ถูกบังคับใช้ฝั่งเซิร์ฟเวอร์
มันทำงานใน Claude Artifacts ได้หรือไม่ แม้จะมี CORS Sandbox?
ใช่ การเรียกใช้เกิดขึ้นโดยตรงจากเบราว์เซอร์ โดยเบราว์เซอร์จะเป็นผู้ตั้งค่า Header ของต้นทางเอง PaperOffice ไม่ได้นำเสนอรายการอนุญาตของผู้ขาย (Vendor-Allow-List) ให้คุณต้องป้อนค่าต้นทางจากเครื่องมือผู้พัฒนาเบราว์เซอร์ขณะสร้างคีย์
เกิดอะไรขึ้นหาก po_pk_ ของฉันถูกเปิดเผยต่อสาธารณะ?
ความเสียหายจะถูกจำกัด: การล็อก Origin จะบล็อกการใช้งานบนโดเมนอื่น ขอบเขตงบประมาณจะหยุดการบริโภค และขีดจำกัดอัตรา (Rate Limit) จะชะลอการเข้าถึงแบบอัตโนมัติ Revoked Key ผ่านบัญชี — หลังจากนั้น API จะไม่ยอมรับคีย์นั้นอีก
ฉันสามารถเพิ่มโดเมนของตัวเองเป็น Origin ที่อนุญาตได้หรือไม่?
ได้ ขณะสร้างคีย์ คุณสามารถเพิ่ม Origins แต่ละรายการลงใน Allow List ได้ — เป็นโฮสต์ที่ตรงกันพอดี หรือเป็น Wildcard ของซับโดเมน WIDGET-Preset ถูกออกแบบมาเพื่อจุดประสงค์นี้โดยเฉพาะ: ลงทะเบียนโดเมนของคุณเอง และฝังวิดเจ็ตแชท การจอง หรือติดต่อ โดยไม่ต้องมีแบ็กเอนด์
ฉันจะตั้งค่างบประมาณต่อคีย์อย่างไร
ในการสร้าง ให้คุณเลือกขีดจำกัดตลอดชีพ (Lifetime Limit); ค่ากำหนดล่วงหน้า (Presets) จะมาพร้อมกับการตั้งค่าเริ่มต้น เมื่อถึงขีดจำกัดแล้ว API จะส่ง HTTP 402 BUDGET_EXHAUSTED คุณสามารถปรับค่านี้ได้ตลอดเวลาในบัญชี
po_pk_ จำเป็นต้องมีแผนบริการของตัวเองหรือไม่?
ไม่ Publishable Key เป็นชั้นการป้องกันเพิ่มเติมสำหรับบัญชีที่มีอยู่ของคุณ โดยจำกัดขอบเขต ต้นทาง และงบประมาณ แผนใดที่เหมาะกับโครงสร้างของคุณ ดูได้จากตารางราคา
Endpoints ใดบ้างที่ถูกบล็อกสำหรับ po_pk_?
HTTP DELETE รวมถึงการเข้าสู่ระบบบัญชี, ผู้ดูแลผู้ใช้, การจัดการคีย์, OAuth, ผู้ดูแลพาร์ทเนอร์, Stripe Checkout และการแฮชรหัสผ่าน ถูกปิดกั้นถาวร เอกสาร API ของผลิตภัณฑ์ที่ระบุไว้ อนุญาตให้ใช้งานได้ รวมถึงการลบด้วย POST, Webhooks, การอ่านข้อมูลบิลลิ่ง, การนำเข้า และ CRM การลบ Workspace ล้างถังขยะ และปลดปล่อย Legal-Hold ยังคงเป็นเฉพาะส่วนอินเทอร์เฟซผู้ใช้เท่านั้น (403 UI_ONLY_ENDPOINT)
การดำเนินงานและความน่าเชื่อถือ
สิ่งที่ทีมองค์กรตรวจสอบก่อนการโทรครั้งแรก
สัญญา ความปลอดภัย การสนับสนุน และขีดจำกัด ทั้งหมดเชื่อมโยงในที่เดียว
- ความปลอดภัยและการปฏิบัติตามกฎระเบียบ ISO 27001, SOC 2 Type II, โครงสร้างพื้นฐานในสหภาพยุโรปของตนเอง
- SLA 99.9% ข้อตกลงระดับบริการ ความพร้อมใช้งานต่อเดือนปฏิทิน รับประกันตามสัญญา
- การประมวลผลข้อมูลแทนผู้ควบคุม (DPA) สัญญาการประมวลผลข้อมูลแทนผู้ควบคุมที่สอดคล้องกับ GDPR
- รายชื่อผู้ประมวลผลข้อมูลแทน รายชื่อผู้ประมวลผลข้อมูลแทนทั้งหมด แสดงอย่างโปร่งใส
- ฝ่ายสนับสนุนทางเทคนิค ช่องทางตรงสู่ทีมสนับสนุน พร้อมระบบสร้างตั๋ว
- อัตราจำกัดและส่วนหัว ค่าขั้นต่ำที่เอกสารระบุต่อโทเค็น ส่วนหัว RateLimit ในทุกการตอบกลับ
- ราคาและ Credits ราคา Credit แบบโปร่งใสต่อการเรียกใช้
สถานีถัดไป
ขั้นตอนต่อไป
ขั้นตอนถัดไปแนะนำในฟันเนลนักพัฒนา และสองเส้นทางแยกที่สอดคล้องกัน