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

时间:2019-01-14 22:45:43

标签: google-apps-script web-applications postman http-status-code-500

enter image description here

我正在尝试用邮递员测试我的应用程序脚本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.

EDIT2:

enter image description here

1 个答案:

答案 0 :(得分:2)

  • 您要使用doPost()并以https://script.google.com/macros/s/###/dev的端点访问Web Apps。

如果我的理解是正确的,则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"

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

注意:

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