尝试将开发模式与 GAS doPOST 一起使用

Trying to use dev mode with GAS doPOST

我正在尝试使用邮递员测试我的应用程序脚本 doPost 功能。到目前为止我有:

function doPost(e) {

 var id = '1L_U7MhmV............................'
  SpreadsheetApp.openById(id).getSheetByName('responses').appendRow([new Date()]);
 var params = JSON.stringify(e.parameter);



 return ContentService.createTextOutput(JSON.stringify(e.parameter));
 }

我可以让它与 /exec 字符串一起工作,但是当我尝试 /dev 字符串时我不能。我收到 500 错误。我登录到我的帐户并更新了发布下的版本号。我怎样才能让它工作?

编辑:

谢谢。我正在尝试选项 1。我创建了一个记录誓言令牌的函数:

function  getOAuthToken1() {    
  Logger.log('Current project has ' + ScriptApp.getOAuthToken());
}

https://script.google.com/macros/s/ACCESSTOKEN/dev

但是发布到这里会产生:

Sorry, the file you have requested does not exist.

编辑 2:

  • 您想使用 doPost() 并通过 https://script.google.com/macros/s/###/dev 端点访问 Web 应用程序。

如果我的理解是正确的,https://script.google.com/macros/s/ACCESSTOKEN/dev不能作为端点。请使用 https://script.google.com/macros/s/###/dev.

的原始端点

作为简单测试的2个例子,当使用curl命令时,示例命令如下。您可以 select 其中之一并在您的终端上进行测试。两个命令都使用 POST 方法。

curl -L -H "Authorization: Bearer ### access token ###" -d "key=value" "https://script.google.com/macros/s/#####/dev"

curl -L -d "key=value" "https://script.google.com/macros/s/#####/dev?access_token=### access token ###"
  • 为了访问部署的 Web 应用程序 https://script.google.com/macros/s/###/dev 的端点,需要使用访问令牌。
  • ### access token ### 替换为 ScriptApp.getOAuthToken() 检索到的值。
  • https://script.google.com/macros/s/#####/dev 替换为通过部署 Web 应用程序检索到的端点。
  • 我使用 -d "key=value" 作为 post 方法。如果您不想输入值,请替换为 -d "".

注:

  • 如果您在测试上述命令时出现与作用域相关的错误,请添加以下注释。这样,添加了 https://www.googleapis.com/auth/drive 的范围。
    • // DriveApp.getFiles();
    • 添加后,请重新运行getOAuthToken1()的功能。这样,可以检索包括范围的访问令牌。