Muh*_*leh 4 google-apps-script firebase firebase-realtime-database
不久前,我使用Google Apps Script 中的 Firebase 集成作为服务器端,它运行良好,并且仍在我的旧项目中运行。
但是今天,在创建了一个新的 Firebase 项目和一个新的实时数据库,然后尝试将 Firebase 项目集成到我的Google Script 项目中后,我遇到了一个错误,并且无法完全正常工作。我意识到Firebase 弃用了新项目的数据库机密。
所以,我现在的问题是如何解决这个问题?还有另一种方法可以将 Firebase 集成到 Google Script 项目中吗?
您需要将正确的 OAuth 范围添加到您的 Apps 脚本项目的清单文件中,然后传入一个access_token参数(或在Authorization标头中)而不是auth您当前使用的参数。
基于Doug 在这里的要点,基本步骤是:
manifest.json通过单击View>从脚本编辑器打开Show manifest file。添加或编辑清单以具有以下 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"
]
Run Code Online (Sandbox Code Playgroud)
最后一个范围授予它访问电子表格本身的权限。如果您使用其他 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());
Run Code Online (Sandbox Code Playgroud)这样做的一个主要优点是您的脚本现在将以实际用户身份运行,这意味着您可以确保它只能通过安全规则执行授权操作。
| 归档时间: |
|
| 查看次数: |
3289 次 |
| 最近记录: |