整合最困難的部分Google雲端硬碟正在使用創建一個網頁應用程式谷歌控制台。

很好有記錄的。
然而,由於訪問 Google Drive 所需的範圍比所說的更敏感, JMP 的 Google 試算表集成,從 JMP 17 開始,與 Google Drive 的整合目前不是 JMP 的一部分。
話雖這麼說,我最近遇到了一位 JMP 用戶JMP發現那就是收集資料並將其儲存在 Google Drive 上。 資料格式為數據集出於多種原因,但主要是由於 Google Sheet 的限制。 他說,如果他能夠定期將 csv 資料輸入 JMP 以便進行分析,他(以及他的同事)的生活會更輕鬆。 他知道他可以下載 csv 檔案然後將其匯入 JMP,但他實際上正在尋找「簡單按鈕」。
因此,我去查看了 Google Console 上的筆記以及如何註冊網頁應用程式。你可以很容易地得到一個開發者(就像我一樣),但谷歌會限制你的流量,除非你通過他們的驗證過程。
我強烈推薦它,即使它只是一個內部應用程式。
因此,在[插入您使用 Google Console 的小時數]之後,您將擁有使用 JMP 登入 Google Drive 所需的資訊。
您選擇註冊應用程式時使用的所有內容OAuth2授權。
請記住,由於您正在使用應用程序,因此您需要確保已啟用 Google Drive API。

另一個重要的部分是範圍。 範圍控制使用者在連接到註冊的 Web 應用程式時允許的權限。 這是完全地取決於您要使用的 Google API。 例如,附加的腳本使用:
Openid 和 Profile 是「標準」的驗證和授權,而其餘範圍則需要從您的谷歌驅動器讀取和下載數據。 如果您仍在閱讀,那麼好消息是 JMP 腳本索引有一個透過 Google 進行身份驗證的範例。

它是第二例子在裡面取得授權標頭條目,這是我在編寫附加腳本時開始的。 在腳本中你可以看到一一對應的重新導向網址,客戶端_id,客戶端秘密等等,以及您在註冊的網路應用程式中擁有的屬性。
在附加的腳本中,我新增了一個額外的內務項目。 我希望使用者體驗是,授權一次,然後儲存刷新令牌本地,這樣我就不會再次提示登入 Google。 本地保存的時候是不是已加密,因此您需要將其保存在私人位置。 所附腳本使用
- $USER_APPDATA/GoogleDriveTokens.json
它的作用是從磁碟載入refresh_token(如果可用)得到一個訪問令牌來自 Google 並帶有refresh_token,然後你就可以了經過身份驗證和授權。 腳本所做的最後一件事是將其保存回磁碟。 這新的 OAuth2()如果目前的令牌每次都過期,JSL 物件將繼續取得令牌oauth2 << 取得身分驗證標頭()用來。 在這種情況下,每次向 Google Drive 發出請求時都會呼叫 Get Auth Header。
一般流程後身份驗證和授權已經發生是端點

用於枚舉 Google Drive 上找到的文件。 經過預設, 僅有的100返回,所以在腳本中我將其增加到1000 (最大值)。
值得注意的是,JMP 17 有
這將顯示長 HTTP 請求操作的進度條。
從返回休息呼叫是JSON ,它變成了關聯數組和解析JON 。 如果您在視覺化 JSON 資料結構時遇到困難(我有時會這樣做),我會將 JSON 複製/貼上到JSON 編輯器擴充對於 Chrome。
當腳本處理傳回的檔案時,它會保留元數據
元資料的重要部分是文件編號。 Google 在隨後存取 Google Drive 的檔案時使用 fileid。 在我們的範例中,我們想要下載 .csv 和 .csv.gz 檔案並在 JMP 中開啟它們。 因此,腳本循環遍歷上一步中的 file_ids 並下載資料。

取得文件內容的關鍵是:
它告訴 Google Drive 將文件內容傳回 JMP。 該腳本檢查mime類型從檔案元資料中取得檔案的信息,但也可以從 HTTP 請求中檢查 mimeType。
無論如何,mimeType:
需要解壓縮才能得到csv內容,而mimeType
是 csv 文件本身的內容
最後,一旦獲得內容(並根據需要解壓縮)
- dt = 開啟(blob,文字); //打開前無需儲存到檔案系統
將處理開啟資料而無需分頁到系統
希望這個腳本足以讓您在與 Google Drive 整合方面取得先機。 我發現這很有趣,並且很感謝顧客提出這個問題。
順便說一句,如果您在 Google Console 上遇到困難,可以在此處提問。 我(或其他人)可能可以提供協助。