[英]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的要旨 ,基本步驟如下:
manifest.json
從腳本編輯器,通過點擊查看 > 顯示清單文件 。 添加或編輯清單以具有以下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類型(文檔,幻燈片,表格等),則需要與之對應的范圍。
現在,您可以從腳本中獲取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.