Google apps script 在另一个项目文件中调用Google Apps脚本

Google apps script 在另一个项目文件中调用Google Apps脚本,google-apps-script,Google Apps Script,我正在尝试使用UrlFetchApp.fetch调用另一个项目文件中的Google Apps脚本文件,该文件位于示例后面。 我得到了与原始海报中提到的相同的错误,但我的样本没有成功。 谷歌是否在过去4年中改变了一些东西,阻止我调用另一个脚本文件? 请参阅下面的脚本。 下面是我用来调用另一个项目文件的函数 function makeRequest() { var webAppUrl = "https://script.google.com/macros/s/***/e

我正在尝试使用UrlFetchApp.fetch调用另一个项目文件中的Google Apps脚本文件,该文件位于示例后面。
我得到了与原始海报中提到的相同的错误,但我的样本没有成功。
谷歌是否在过去4年中改变了一些东西,阻止我调用另一个脚本文件?
请参阅下面的脚本。

下面是我用来调用另一个项目文件的函数

    function makeRequest() 
    {
      var webAppUrl = "https://script.google.com/macros/s/***/exec";

      var auth = ScriptApp.getOAuthToken();
      var header = { 'Authorization': 'Bearer ' +  auth };
      var options = { 'method':'post', 'headers':header };

      var resp = UrlFetchApp.fetch(webAppUrl, options);

      Logger.log(resp);
    }
下面是我试图调用的函数。此外,我还运行了authorizeDrive函数,并作为webapp发布

    function authorizeDrive()
    {
      var forScope = DriveApp.getRootFolder();
    }

    function doPost()
    {  
      var ss = SpreadsheetApp.openById('ssID');
      var name = ss.getName();
      Logger.log('called');
      return ContentService.createTextOutput(name);
    }
  • 您希望通过从GAS项目B访问Web应用程序来运行GAS项目A中的Google应用程序脚本
  • 在您的情况下,Web应用程序是由有权访问该应用程序的
    人员部署的:
    仅限我自己
    任何人
    • 您希望使用访问令牌访问Web应用
  • 天然气项目A和B在您的谷歌硬盘中
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

我认为在您的情况下,需要将范围添加到项目中,包括
makeRequest()
。因此,为了增加使用访问令牌访问Web应用的范围,下面的修改如何

修改脚本:
  • 请添加注释行的
    //DriveApp.getFiles()
    。此注释行用于自动检测范围
  • 在这种情况下,
    https://www.googleapis.com/auth/drive.readonly
    已添加到作用域中。如果这不能解决您的问题,请添加
    //DriveApp.createFile(blob)
    的注释行。在这种情况下,
    https://www.googleapis.com/auth/drive添加了
注:
  • 当修改Web应用端的脚本时,请将其重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请小心这个
  • 如果Web应用的GAS项目的所有者不是您的帐户,该帐户的脚本为
    makeRequest()
    ,请首先与您的帐户共享Web应用的GAS项目文件。那么,请测试一下。本规范已于2018年4月11日添加。另外,请注意这一点
参考资料:
如果我误解了你的问题,而这不是你想要的结果,我道歉。

  • 您希望通过从GAS项目B访问Web应用程序来运行GAS项目A中的Google应用程序脚本
  • 在您的情况下,Web应用程序是由有权访问该应用程序的
    人员部署的:
    仅限我自己
    任何人
    • 您希望使用访问令牌访问Web应用
  • 天然气项目A和B在您的谷歌硬盘中
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

我认为在您的情况下,需要将范围添加到项目中,包括
makeRequest()
。因此,为了增加使用访问令牌访问Web应用的范围,下面的修改如何

修改脚本:
  • 请添加注释行的
    //DriveApp.getFiles()
    。此注释行用于自动检测范围
  • 在这种情况下,
    https://www.googleapis.com/auth/drive.readonly
    已添加到作用域中。如果这不能解决您的问题,请添加
    //DriveApp.createFile(blob)
    的注释行。在这种情况下,
    https://www.googleapis.com/auth/drive添加了
注:
  • 当修改Web应用端的脚本时,请将其重新部署为新版本。这样,最新的脚本就会反映到Web应用程序中。请小心这个
  • 如果Web应用的GAS项目的所有者不是您的帐户,该帐户的脚本为
    makeRequest()
    ,请首先与您的帐户共享Web应用的GAS项目文件。那么,请测试一下。本规范已于2018年4月11日添加。另外,请注意这一点
参考资料:
如果我误解了你的问题,而这不是你想要的结果,我道歉

function makeRequest() 
{
  var webAppUrl = "https://script.google.com/macros/s/***/exec";

  var auth = ScriptApp.getOAuthToken();
  var header = { 'Authorization': 'Bearer ' +  auth };
  var options = { 'method':'post', 'headers':header };

  var resp = UrlFetchApp.fetch(webAppUrl, options);

  Logger.log(resp);
}

// DriveApp.getFiles() // This comment line is used for automatically detecting the scope.