尝试在 GAS doPOST 中使用开发模式

use*_*629 2 web-applications google-apps-script http-status-code-500 postman

在此处输入图片说明

我正在尝试使用邮递员测试我的应用程序脚本 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));
 }
Run Code Online (Sandbox Code Playgroud)

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

编辑:

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

function  getOAuthToken1() {    
  Logger.log('Current project has ' + ScriptApp.getOAuthToken());
}
Run Code Online (Sandbox Code Playgroud)
  • 我运行它并获得了令牌。然后插入

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

但是发布到这个会产生:

Sorry, the file you have requested does not exist.
Run Code Online (Sandbox Code Playgroud)

编辑2:

在此处输入图片说明

Tan*_*ike 6

  • 您希望使用doPost()和访问具有https://script.google.com/macros/s/###/dev.

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

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

curl -L -H "Authorization: Bearer ### access token ###" -d "key=value" "https://script.google.com/macros/s/#####/dev"
Run Code Online (Sandbox Code Playgroud)

或者

curl -L -d "key=value" "https://script.google.com/macros/s/#####/dev?access_token=### access token ###"
Run Code Online (Sandbox Code Playgroud)
  • 为了访问https://script.google.com/macros/s/###/dev已部署的 Web 应用程序的端点,需要使用访问令牌。
  • 替换### 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()再次运行该功能。通过这种方式,可以检索包括范围的访问令牌。