เมื่อผู้ใช้เลือกไฟล์และคลิกรายการเมนู "เปิดด้วย" ของ UI ของไดรฟ์ ไดรฟ์จะเปลี่ยนเส้นทาง ผู้ใช้ไปยัง URL เปิดของแอปนั้นที่กำหนดไว้ในกำหนดค่าการผสานรวม UI ของไดรฟ์
หากเลือกช่อง "นำเข้า" เมื่อกำหนดค่าการผสานรวม UI ของไดรฟ์ ผู้ใช้จะเลือกชุดค่าผสมของไฟล์เฉพาะแอปและไฟล์ Google Workspace เพื่อเปิดได้ เมื่อกำหนดค่าการผสานรวม UI ของไดรฟ์ ระบบจะกำหนดไฟล์เฉพาะแอปในช่อง "ประเภท MIME เริ่มต้น" และ "นามสกุลไฟล์เริ่มต้น" ในขณะที่ไฟล์ Google Workspace จะกำหนดในช่อง "ประเภท MIME รอง" และ "นามสกุลไฟล์รอง"
สำหรับไฟล์แต่ละไฟล์ที่ผู้ใช้ต้องการเปิด ไดรฟ์จะตรวจสอบประเภท MIME เทียบกับประเภท MIME เริ่มต้นและรองที่คุณกำหนดไว้ ดังนี้
สำหรับประเภท MIME ที่กำหนดไว้ในช่อง "ประเภท MIME เริ่มต้น" ระบบจะส่งรหัสไฟล์ไปยังแอปของคุณ ดูข้อมูลเกี่ยวกับวิธีจัดการไฟล์เฉพาะแอปได้ที่จัดการ URL ที่เปิดสำหรับเอกสารเฉพาะแอป
สำหรับประเภท MIME ที่กำหนดไว้ในช่อง "ประเภท MIME รอง" UI ของไดรฟ์จะแสดงกล่องโต้ตอบที่ถามผู้ใช้ว่าต้องการแปลงไฟล์ Google Workspace เป็นไฟล์ประเภทใด เช่น หากคุณเลือกไฟล์ Google เอกสารใน UI ของไดรฟ์และช่อง "MIME ประเภทรอง" แนะนำว่าแอปของคุณรองรับ text/plain หรือ application/pdf UI ของไดรฟ์จะถามผู้ใช้ว่าต้องการแปลงเป็นข้อความธรรมดาหรือ 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
เมื่อใช้ 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
เมื่อใช้ 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
ผู้ใช้และเหตุการณ์ใหม่
แอปไดรฟ์ควรถือว่าเหตุการณ์ "เปิดด้วย" ทั้งหมดเป็นการลงชื่อเข้าใช้ที่อาจเกิดขึ้น
ผู้ใช้บางรายอาจมีหลายบัญชี ดังนั้นรหัสผู้ใช้ในstate
พารามิเตอร์อาจไม่ตรงกับเซสชันปัจจุบัน หากรหัสผู้ใช้ในพารามิเตอร์ state
ไม่ตรงกับเซสชันปัจจุบัน ให้สิ้นสุดเซสชันปัจจุบันสำหรับแอป
ของคุณ แล้วลงชื่อเข้าใช้ในฐานะผู้ใช้ที่ขอ
หัวข้อที่เกี่ยวข้อง
นอกเหนือจากการเปิดแอปพลิเคชันจาก UI ของ Google ไดรฟ์แล้ว แอปพลิเคชันยังสามารถ แสดงเครื่องมือเลือกไฟล์เพื่อเลือกเนื้อหาจากภายในแอปได้ด้วย ดูข้อมูลเพิ่มเติมได้ใน Google Picker