Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GAS Library和WebApp权限[ReferenceError:“服务”未定义。]_Javascript_Oauth_Google Apps Script_Google Fusion Tables - Fatal编程技术网

Javascript GAS Library和WebApp权限[ReferenceError:“服务”未定义。]

Javascript GAS Library和WebApp权限[ReferenceError:“服务”未定义。],javascript,oauth,google-apps-script,google-fusion-tables,Javascript,Oauth,Google Apps Script,Google Fusion Tables,背景/摘要 我一直在广泛使用库,现在正在设置权限,以便将应用程序分发给一些用户进行测试。不幸的是,这是非常不可预测的。我将问题简化如下: 我有一个简单的webApp,它对一个融合表进行简单的API调用。它调用我的Fusion Tables库中的函数。Fusion表库中的函数也使用OAuth库中的函数。当从我的主gmail帐户(所有资源都属于该帐户)执行时,这个过程非常有效。但是,我现在正在设置权限,无法从其他帐户进行设置。当从另一个帐户执行此webApp时,我收到以下错误(在一种情况下除外,稍后

背景/摘要

我一直在广泛使用库,现在正在设置权限,以便将应用程序分发给一些用户进行测试。不幸的是,这是非常不可预测的。我将问题简化如下:

我有一个简单的webApp,它对一个融合表进行简单的API调用。它调用我的Fusion Tables库中的函数。Fusion表库中的函数也使用OAuth库中的函数。当从我的主gmail帐户(所有资源都属于该帐户)执行时,这个过程非常有效。但是,我现在正在设置权限,无法从其他帐户进行设置。当从另一个帐户执行此webApp时,我收到以下错误(在一种情况下除外,稍后将介绍):

ReferenceError:未定义“服务”

详细信息和资源

我正在使用Google的oAuthConfig类,它默认为OAuth1.0

权限设置如下:

网络应用

  • 执行身份:访问webApp的用户
  • 谁有权限:任何人
  • 共享:任何拥有链接的人都可以查看
融合表库

  • 执行身份:访问webApp的用户
  • 谁有权限:任何人
  • 共享:任何拥有链接的人都可以查看
OAuth图书馆

  • 执行身份:访问webApp的用户
  • 谁有权限:任何人
  • 共享:任何拥有链接的人都可以查看

OAuth库项目密钥:Mnt39sDQPQvSd3QGZFFLcznt7vnFOnL

Fusion表库项目密钥:MigHa1npbg9PnkaJ8jFENSyUlmcxk5wr2

复制错误的简化webApp:(代码如下)

例外情况

现在,为了让事情变得更有趣,如果我将OAuth库的“共享”设置从“拥有链接的任何人都可以查看”更改为“拥有链接的任何人都可以编辑”,那么一切都可以完美地工作。很明显,我不想对我的库拥有通用编辑权限,所以我一直在想为什么会发生这种情况,以及我需要做些什么来修复它


我不完全清楚在使用库时如何考虑“执行为”和“共享”设置。我希望任何人都能以用户的身份访问这个webApp,并且我将以编程的方式实施访问限制。

我已将此识别为GAS库中的更新传播错误。我已向委员会提交了一份问题

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;
}