1

我制作了一个更大的(1000 多行代码)应用脚本。这对我很有效。没有其他用户可以运行它。我希望他们也能够运行它,但我不知道为什么他们不能。

这部分出现问题:

var id = 'A_correct_ID_of_a_Google_Spreadsheet';
var SSurl = 'https://docs.google.com/feeds/';
var doc = UrlFetchApp.fetch(SSurl+'download/spreadsheets/Export?key='+id+'&exportFormat=xls',googleOAuth_('docs',SSurl)).getBlob();
var spreadsheet = DocsList.createFile(doc);

函数(和结构)在这里发布:其他线程

function googleOAuth_(name,scope) {  
  var oAuthConfig = UrlFetchApp.addOAuthService(name);
  oAuthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope="+scope);
  oAuthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
  oAuthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
  oAuthConfig.setConsumerKey('anonymous');
  oAuthConfig.setConsumerSecret('anonymous');
  return {oAuthServiceName:name, oAuthUseToken:"always"};
}

我看不出程序只为一个用户运行的任何理由。所有文件都在所有用户之间共享,并且所有权已交换。

4

1 回答 1

0

当脚本使用 oAuth(在您的情况下为 googleOAuth_(name,scope))时,它需要从脚本编辑器获得授权,独立于用户通过“正常”常规过程授予的其他授权。很长一段时间以来,这一直是增强请求的目标,据我所知,没有有效的解决方法。

因此,根据您的脚本的部署方式(在 SS 或 Doc 或 webApp 中),您可能会找到解决方案...如果按照您帖子的第一条评论中的建议,您可以从 webapp 运行它将其部署为以您自己的身份运行并允许匿名访问,它会很容易地工作,但在其他情况下,您的其他用户将不得不打开脚本编辑器并运行触发 oAuth 授权过程的函数。

于 2013-10-10T12:25:33.780 回答