背景/摘要
我一直在广泛使用库,现在我正在设置权限,因此我可以将应用程序分发给某些用户进行测试。不幸的是,这是非常不可预测的。我把问题简化如下:
我有一个简单的webApp,它对Fusion表进行简单的API调用。它在我的Fusion Tables Library中调用一个函数。我的Fusion Table Library中的函数也使用了OAuth Library中的函数。从我的主要Gmail帐户(所有资源都属于)执行此过程时,此过程非常有效。但是,我现在正在设置权限,它将无法从其他帐户运行。从其他帐户执行此webApp时,我收到以下错误(除了一种情况,稍后描述):
ReferenceError:未定义“service”。
详情&资源
我正在使用Google的oAuthConfig类,它默认为OAuth1.0。
权限设置如下:
web应用
Fusion Table Library
OAuth图书馆
OAuth Library项目密钥:Mnt39sDQPQvSd3QGZFFLcznt7vnFOnL
Fusion Table Library项目密钥:MigHa1npbg9PnkaJ8jFENSyUlmcxk5wr2
重现错误的简化webApp:Published webApp(下面的代码)
var oAuthFields = {
'clientId' : '{...}',
'scope' : 'https://www.googleapis.com/auth/fusiontables',
'fetchUrl' : 'https://www.googleapis.com/fusiontables/v1/',
'clientSecret' : '{...}',
'fusionId' : '{...}',
'service' : 'fusiontables',
'queryUrl' : 'https://www.google.com/fusiontables/api/query'
};
function doGet() {
var app = UiApp.createApplication();
var tempVar = FTL.fusionRequest('GET', 'SHOW TABLES', oAuthFields);
Logger.log('Result: ' + tempVar);
app.add(app.createLabel('Success'));
return app;
}
例外
现在更有意思的是,如果我将OAuth库的“共享”设置从“有链接可以查看的任何人”更改为“有链接可以编辑的任何人”,那么一切都很完美。我显然不希望我的库具有通用编辑权限,因此我不知道为什么会发生这种情况,以及我需要做些什么来修复它。
我不清楚在使用库时如何考虑'执行'和'共享'设置。我希望任何人都可以访问webApp,以用户身份执行,我将以编程方式实现访问限制。