當使用者選取檔案並按一下 雲端硬碟 UI 的「Open with」選單項目時,雲端硬碟會將使用者重新導向至 設定雲端硬碟 UI 整合 中定義的應用程式「Open」網址。
如果您在設定雲端硬碟 UI 整合作業時勾選「匯入」方塊,使用者就可以選取要開啟的應用程式專屬檔案和 Google Workspace 檔案的組合。設定雲端硬碟 UI 整合時,應用程式專屬檔案會在「預設 MIME 類型」和「預設檔案副檔名」欄位中定義,而 Google Workspace 檔案則會在「次要 MIME 類型」和「次要檔案副檔名」欄位中定義。
針對使用者要開啟的每個檔案,雲端硬碟會根據您定義的預設和次要 MIME 類型,檢查 MIME 類型:
如果是「Default MIME types」欄位中定義的 MIME 類型,檔案 ID 會傳遞至您的應用程式。如要瞭解如何處理應用程式專屬檔案,請參閱「處理應用程式專屬文件的 Open URL」。
如果是「次要 MIME 類型」欄位中定義的 MIME 類型,Google 雲端硬碟 UI 會顯示對話方塊,詢問使用者要將 Google Workspace 檔案轉換為哪種檔案類型。舉例來說,如果您在雲端硬碟 UI 中選取 Google 文件檔案,且「Secondary MIME types」欄位顯示應用程式支援 text/plain 或 application/pdf,雲端硬碟 UI 就會詢問使用者是否要將檔案轉換為純文字或 PDF。
如要進一步瞭解如何處理 Google Workspace 檔案,請參閱「處理 Google Workspace 文件的開啟網址」。如需 Google Workspace 文件和 MIME 類型轉換格式的清單,請參閱「匯出 Google Workspace 文件的 MIME 類型」。
處理應用程式特定文件的開啟網址
如設定 Drive UI 整合一文所述,應用程式會接收含有應用程式用來開啟檔案資訊的範本變數。應用程式會在 state
參數內收到一組預設的範本變數。應用程式特定開啟網址的預設 state
資訊如下:
{
"ids": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
輸出內容包含下列值:
- ID:父項資料夾的 ID。
- RESOURCE_KEYS:檔案 ID 的 JSON 字典,已對應至各自的資源鍵。
open
:執行的動作。使用 Open URL 時,值為open
。- USER_ID:用來識別使用者的個人資料 ID。
應用程式必須按照下列步驟處理這項要求:
- 確認
action
欄位的值為open
,且ids
欄位存在。 - 使用
userId
值為使用者建立新工作階段。如要進一步瞭解已登入的使用者,請參閱「使用者和新事件」。 - 使用
files.get
方法檢查權限、擷取檔案中繼資料,並使用ID
值下載檔案內容。 - 如果已在要求上設定
resourceKeys
,請設定X-Goog-Drive-Resource-Keys
要求標頭。如要進一步瞭解資源鍵,請參閱「使用資源鍵存取連結共用檔案」。
state
參數採用網址編碼,因此應用程式必須處理逸出字元,並將其剖析為 JSON。
處理 Google Workspace 文件的開啟網址
如設定 Drive UI 整合一文所述,應用程式會在 state
參數中接收預設的模板變數組合。Google Workspace 開放式網址的預設 state
資訊如下:
{
"exportIds": ["ID"],
"resourceKeys":{"RESOURCE_KEYS":"RESOURCE_KEYS"},
"action":"open",
"userId":"USER_ID"
}
輸出內容包含下列值:
- EXPORT_ID:以逗號分隔的匯出檔案 ID 清單 (僅在開啟內建 Google 文件時使用)。
- RESOURCE_KEYS:檔案 ID 的 JSON 字典,已對應至各自的資源鍵。
open
:正在執行的動作。使用開啟網址時,值為open
。- USER_ID:用於識別使用者的設定檔 ID。
應用程式必須按照下列步驟處理這項要求:
檢測
state
欄位中的open
值,以及exportIds
欄位的存在情形,確認這是開啟檔案的要求。使用
files.get
方法檢查權限、擷取檔案中繼資料,並使用EXPORT_ID
值判斷 MIME 類型。使用
files.export
方法轉換檔案內容。以下程式碼範例說明如何將 Google Workspace 文件匯出至所要求的 MIME 類型。如果要求中已設定
resourceKey
,請設定X-Goog-Drive-Resource-Keys
要求標頭。如要進一步瞭解資源鍵,請參閱「使用資源鍵存取連結共用檔案」。Java
Python
Node.js
PHP
將轉換後的檔案顯示為唯讀檔案,或顯示對話方塊,讓使用者將檔案儲存為新檔案類型。
state
參數採用網址編碼,因此應用程式必須處理轉義字元,並將其解析為 JSON。
使用者和新事件
雲端硬碟應用程式應將所有「開啟」事件視為潛在的登入事件。部分使用者可能擁有多個帳戶,因此 state
參數中的使用者 ID 可能與目前的工作階段不符。如果 state
參數中的使用者 ID 與目前的工作階段不符,請結束應用程式的目前工作階段,並以要求的使用者身分登入。
相關主題
除了從 Google 雲端硬碟 UI 開啟應用程式之外,應用程式也可以顯示檔案選擇器,以便在應用程式中選取內容。詳情請參閱 Google Picker。