เมื่อผู้ใช้เลือกไฟล์และคลิกรายการในเมนู "เปิดด้วย" ของ UI ของไดรฟ์ ไดรฟ์จะเปลี่ยนเส้นทางผู้ใช้ไปยัง URL แบบเปิดของแอปนั้น ที่กำหนดไว้ในหัวข้อกำหนดค่าการผสานรวม UI ของไดรฟ์
หากเลือกช่อง "การนำเข้า" เมื่อกำหนดค่าการผสานรวม UI ของไดรฟ์ ผู้ใช้จะเลือกชุดค่าผสมของแอปและไฟล์ Google Workspace เพื่อเปิดได้ เมื่อกำหนดค่าการผสานรวม UI ของไดรฟ์ ระบบจะกำหนดไฟล์เฉพาะแอปไว้ในช่อง "ประเภท MIME เริ่มต้น" และ "นามสกุลไฟล์เริ่มต้น" ในขณะที่ไฟล์ Google Workspace จะกำหนดไว้ในช่อง "ประเภท MIME รอง" และ "นามสกุลไฟล์รอง"
สำหรับไฟล์แต่ละไฟล์ที่ผู้ใช้ต้องการเปิด ไดรฟ์จะตรวจสอบประเภท MIME กับประเภท MIME เริ่มต้นและรองที่คุณกำหนดไว้
สำหรับประเภท MIME ที่กำหนดในช่อง "ประเภท MIME เริ่มต้น" ระบบจะส่งรหัสไฟล์ไปยังแอปของคุณ ดูข้อมูลเกี่ยวกับวิธีจัดการไฟล์เฉพาะแอปได้ที่จัดการ URL แบบเปิดสำหรับเอกสารเฉพาะแอป
สำหรับประเภท MIME ที่กำหนดในช่อง "ประเภท MIME รอง" UI ของไดรฟ์จะแสดงกล่องโต้ตอบที่ถามผู้ใช้ว่าจะแปลงไฟล์ Google Workspace เป็นประเภทใด ตัวอย่างเช่น หากคุณเลือกไฟล์ Google เอกสารใน UI ของไดรฟ์ และช่อง "ประเภท MIME รอง" จะแนะนำว่าแอปรองรับข้อความ/ข้อความธรรมดา หรือแอปพลิเคชัน/PDF อินเทอร์เฟซผู้ใช้ของไดรฟ์จะถามผู้ใช้ว่าต้องการแปลงเป็นข้อความธรรมดา หรือ PDF
ดูข้อมูลเกี่ยวกับวิธีจัดการไฟล์ Google Workspace ได้ที่หัวข้อจัดการ URL ที่เปิดอยู่สำหรับเอกสาร Google Workspace ดูรายการเอกสารของ Google Workspace และรูปแบบการแปลงประเภท MIME ได้ที่หัวข้อส่งออกประเภท MIME สำหรับเอกสาร Google Workspace
จัดการ URL แบบเปิดสำหรับเอกสารเฉพาะแอป
ดังที่กล่าวไว้ในกำหนดค่าการผสานรวม UI ของไดรฟ์ แอปจะได้รับตัวแปรเทมเพลตพร้อมข้อมูลเพื่อให้แอปเปิดไฟล์ แอปได้รับชุดตัวแปรเทมเพลตเริ่มต้นภายในพารามิเตอร์ state
ข้อมูล state
ตามค่าเริ่มต้นสำหรับ URL แบบเปิดที่เจาะจงแอปคือ
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
เอาต์พุตนี้จะมีค่าต่อไปนี้
- ID: รหัสของโฟลเดอร์หลัก
- RESOURCE_KEYS: พจนานุกรม JSON ของรหัสไฟล์ที่แมปกับคีย์ทรัพยากรที่เกี่ยวข้อง
open
: สิ่งที่กำลังดำเนินการ ค่าจะเป็นopen
เมื่อใช้ URL แบบเปิด- USER_ID: รหัสโปรไฟล์ที่ระบุผู้ใช้ได้อย่างไม่ซ้ำกัน
แอปของคุณต้องดำเนินการตามคําขอนี้โดยทําตามขั้นตอนต่อไปนี้
- ยืนยันว่าช่อง
action
มีค่าเป็นopen
และปรากฏช่องids
- ใช้ค่า
userId
เพื่อสร้างเซสชันใหม่สำหรับผู้ใช้ ดูข้อมูลเพิ่มเติมเกี่ยวกับผู้ใช้ที่ลงชื่อเข้าใช้ได้ที่ผู้ใช้และเหตุการณ์ใหม่ - ใช้เมธอด
files.get
เพื่อตรวจสอบสิทธิ์ ดึงข้อมูลเมตาของไฟล์ และดาวน์โหลดเนื้อหาไฟล์โดยใช้ค่าID
- หากมีการตั้งค่า
resourceKeys
ในคำขอ ให้ตั้งค่าส่วนหัวของคำขอX-Goog-Drive-Resource-Keys
ดูข้อมูลเพิ่มเติมเกี่ยวกับคีย์ทรัพยากรได้ที่เข้าถึงไฟล์ที่แชร์ลิงก์โดยใช้คีย์ทรัพยากร
พารามิเตอร์ state
มีการเข้ารหัส URL แอปจึงต้องจัดการอักขระหลีกและแยกวิเคราะห์เป็น JSON
จัดการ URL แบบเปิดสำหรับเอกสาร Google Workspace
ตามที่ได้กล่าวไว้ในกำหนดค่าการผสานรวม UI ของไดรฟ์ แอปจะได้รับชุดตัวแปรเทมเพลตเริ่มต้นภายในพารามิเตอร์ state
ข้อมูล state
เริ่มต้นสำหรับ URL แบบเปิดของ Google Workspace คือ
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
เอาต์พุตนี้จะมีค่าต่อไปนี้
- EXPORT_ID: รายการรหัสไฟล์ที่ส่งออกซึ่งคั่นด้วยคอมมา (ใช้เมื่อเปิดเอกสาร Google ในตัวเท่านั้น)
- RESOURCE_KEYS: พจนานุกรม JSON ของรหัสไฟล์ที่แมปกับคีย์ทรัพยากรที่เกี่ยวข้อง
open
: สิ่งที่กำลังดำเนินการ ค่าจะเป็นopen
เมื่อใช้ URL แบบเปิด- USER_ID: รหัสโปรไฟล์ที่ระบุผู้ใช้
แอปของคุณต้องดำเนินการตามคําขอนี้โดยทําตามขั้นตอนต่อไปนี้
ยืนยันว่านี่เป็นคำขอเปิดไฟล์โดยตรวจหาทั้งค่า
open
ในช่องstate
และการมีช่องexportIds
ใช้เมธอด
files.get
เพื่อตรวจสอบสิทธิ์ ดึงข้อมูลเมตาของไฟล์ และระบุประเภท MIME โดยใช้ค่าEXPORT_ID
แปลงเนื้อหาไฟล์โดยใช้เมธอด
files.export
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีส่งออกเอกสารใน Google Workspace ไปยังประเภท MIME ที่ขอหากมีการตั้งค่า
resourceKey
ในคำขอ ให้ตั้งค่าส่วนหัวของคำขอX-Goog-Drive-Resource-Keys
ดูข้อมูลเพิ่มเติมเกี่ยวกับคีย์ทรัพยากรได้ที่เข้าถึงไฟล์ที่แชร์ลิงก์โดยใช้คีย์ทรัพยากรJava
Python
Node.js
PHP
แสดงไฟล์ที่แปลงแล้วเป็นแบบอ่านอย่างเดียว หรือแสดงกล่องโต้ตอบที่ให้ผู้ใช้บันทึกไฟล์เป็นไฟล์ประเภทใหม่
พารามิเตอร์ state
มีการเข้ารหัส URL แอปจึงต้องจัดการอักขระหลีกและแยกวิเคราะห์เป็น JSON
ผู้ใช้และกิจกรรมใหม่
แอปไดรฟ์ควรถือว่าเหตุการณ์ที่ "เปิดด้วย" ทั้งหมดเป็นการลงชื่อเข้าใช้ที่อาจเกิดขึ้น ผู้ใช้บางรายอาจมีหลายบัญชี ดังนั้น User-ID ในพารามิเตอร์ state
อาจไม่ตรงกับเซสชันปัจจุบัน หาก User-ID ในพารามิเตอร์ state
ไม่ตรงกับเซสชันปัจจุบัน ให้สิ้นสุดเซสชันปัจจุบันของแอปแล้วลงชื่อเข้าใช้เป็นผู้ใช้ที่ขอ
หัวข้อที่เกี่ยวข้อง
นอกจากการเปิดแอปพลิเคชันจาก UI ของ Google ไดรฟ์แล้ว แอปพลิเคชันยังแสดงเครื่องมือเลือกไฟล์เพื่อเลือกเนื้อหาจากภายในแอปสำหรับข้อมูลเพิ่มเติม โปรดดู Google Picker