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

问题描述 投票:0回答:2

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

google-apps-script web-applications postman http-status-code-500
2个回答
8
投票
  • 您想要使用
    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命令时,示例命令如下。您可以选择其中之一并在终端上进行测试。两个命令都使用 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()
      的功能。通过此,可以检索包括范围的访问令牌。

0
投票

这个答案不再有效,还有其他解决办法吗?

© www.soinside.com 2019 - 2024. All rights reserved.