我有这种情况:
使用UrlFetchApp
var url = ... // url of Google Cloud Endpoints;
var options = {
'headers': {
"Authorization": 'Bearer ' + ScriptApp.getOAuthToken()
}
};
var fetch = UrlFetchApp.fetch(url, options);
端点处于OAuth身份验证之下,因此调用脚本的clientId(在创建AppsScript时,只要是云项目,就会自动生成)需要列入白名单。
每个不同的用户都需要拥有自己的电子表格,我现在正在创建电子表格的副本,我将其分享给每个用户。通过这种方式,有界脚本也会被复制,主要的处理代码仍保留在“核心”项目中,该项目在绑定脚本中作为库导入。
问题在于:每次复制电子表格时,都会生成一个新的clientId,因此我需要将Cloud Endnpoints值中的每个值列入白名单。
因为这种逻辑是不可持续的(我有大约100个用户),我正在寻找一种方法来使用库的clientId(在所有Spreadsheets之间共享)来执行http连接,因此后端配置是有限的只有一个值。
这种配置是否可行?
答案 0 :(得分:1)
我不确定作为端点工程师的Apps脚本方面,因此我将介绍端点端解决方案,其中我可以想到两个。
clientIdWhitelistEnabled
设置为false
以允许任何客户端ID使用端点。com.google.api.server.spi.config.Authenticator
类来检查数据库的客户端ID,而不是硬编码的注释。