簡體   English   中英

如何在不使用(不推薦使用)數據庫密鑰的情況下將Firebase集成到Google Apps腳本中

[英]How to integrate Firebase into Google Apps Script without using (deprecated) database secret

前一段時間,我將Firebase在Google Apps Script中的集成用作服務器端,並且運行良好,並且仍在我的舊項目中運行。

但是今天,在創建了一個新的Firebase項目和一個新的實時數據庫之后,嘗試將Firebase Project集成到我的Google Script項目中時 ,出現了一個錯誤 ,並且無法完全正常工作。 而且我意識到Firebase不贊成為新項目使用數據庫機密

那么,我現在的問題是如何解決這個問題? 還有其他方法可以將Firebase集成到Google Script項目中嗎?

您需要將正確的OAuth范圍添加到Apps腳本項目的清單文件中,然后傳遞一個access_token參數(或在Authorization標頭中),而不是當前使用的auth參數。

基於Doug的要旨 ,基本步驟如下:

  1. 打開manifest.json從腳本編輯器,通過點擊查看 > 顯示清單文件
  2. 添加或編輯清單以具有以下OAuth范圍:

     "oauthScopes": [ "https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/firebase.database", "https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/spreadsheets" ] 

    最后一個作用域授予它訪問電子表格本身的權限。 如果您使用的是另一種GSuite類型(文檔,幻燈片,表格等),則需要與之對應的范圍。

  3. 現在,您可以從腳本中獲取OAuth令牌並將其添加到您的請求中:

     var response = UrlFetchApp.fetch(databaseUrl, { method: "PUT", headers: { "Content-type": "application/json", "Authorization": "Bearer "+ScriptApp.getOAuthToken() }, payload: JSON.stringify(json) }); Logger.log(response.getContentText()); 

這樣做的主要優點是您的腳本現在將以實際用戶身份運行,這意味着您可以確保它只能通過安全規則執行授權的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM