當使用者選取檔案並按一下 雲端硬碟 UI 的「Open with」選單項目時,雲端硬碟會將使用者重新導向至「Configure a Drive UI integration」中定義的應用程式 Open URL。
如果您在設定雲端硬碟 UI 整合時勾選「匯入」方塊,使用者就能選取要開啟的應用程式專屬檔案和 Google Workspace 檔案組合。設定雲端硬碟 UI 整合時,應用程式專屬檔案會在「預設 MIME 類型」和「預設檔案副檔名」欄位中定義,而 Google Workspace 檔案則會在「次要 MIME 類型」和「次要檔案副檔名」欄位中定義。
針對使用者要開啟的每個檔案,雲端硬碟會根據您定義的預設和次要 MIME 類型,檢查 MIME 類型:
如果在「預設 MIME 類型」欄位中定義的 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 類型」。
處理應用程式專屬文件的 Open URL
如設定 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 URL 時,這個值為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。
使用者和新事件
Drive 應用程式應將所有「開啟」事件視為潛在的登入事件。部分使用者可能擁有多個帳戶,因此 state
參數中的使用者 ID 可能與目前的工作階段不符。如果 state
參數中的使用者 ID 與目前的工作階段不符,請結束應用程式的目前工作階段,並以要求的使用者身分登入。
相關主題
除了從 Google 雲端硬碟 UI 開啟應用程式,應用程式也可以顯示檔案選擇器,以便在應用程式中選取內容。詳情請參閱 Google Picker。