เมื่อผู้ใช้เลือกไฟล์และคลิกรายการเมนู "เปิดด้วย" ของ 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 Workspace เท่านั้น
- 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