Google Apps脚本返回“抱歉”,目前无法打开文件。请检查地址并再试一次

时间:2018-07-15 20:45:47

标签: google-apps-script

我正在尝试POST对简单应用脚本的请求。 这是代码:

var BACKEND_URL = "https://script.google.com/macros/s/AKfycbyYAWMv6O8Xld1EvqPuBk9EgxgfpVNly3dyX3JkSc3h/dev";
data = {"obj1": "data1", "obj2": "data2"};
function doGet() {
  var resp = UrlFetchApp.fetch(BACKEND_URL, {
    'method': 'post',
    'contentType': 'application/json',
    'payload': JSON.stringify(data),
    'muteHttpExceptions': true
  });
  Logger.log(resp);
}

这是应该接受POST请求的服务器代码:

function doGet() {
}

function doPost(e) {
  Logger.log("posted");
  return;
}

注意:URL中没有用户部分,因此此问题与SO中发布的类似问题不同。

作为响应,获取一个html页面,对不起,抱歉,当前无法打开文件。请检查地址,然后重试。

我重新检查了该页面,它确实存在。

1 个答案:

答案 0 :(得分:1)

在您的情况下,带有doGet()且包含UrlFetchApp.fetch()的项目不同于带有doPost(e)的项目。并且您想通过运行包含doPost()的{​​{1}}来调用doGet()。如果我理解您的情况是正确的,您可以确认以下几点。

    您使用的
  • UrlFetchApp.fetch()包括BACKEND_URL。这用于使用最新的代码。但是有如下限制。因此,请尝试使用dev之类的当前Web应用程序URL
  

第二个是标记为最新代码的链接,并以/ dev结尾。只有对该脚本具有编辑权限的用户才能访问此URL。该应用程序实例始终运行最新保存的代码(不一定是正式版本),并且旨在在开发过程中进行快速测试。

  • 在Web Apps中,当没有返回消息时,将返回错误消息https://script.google.com/macros/s/#####/exec。如果要获取返回消息,请使用Content Service进行设置。

  • 修改了Web Apps端的脚本后,请重新部署Web Apps作为新版本。这样,最新的脚本就会反映到Web Apps。

参考文献:

如果这些对您的情况没有帮助,对不起。

编辑:

部署Web Apps时,请尝试以下设置。

  • “我”代表“以以下方式执行应用程序”:
  • “谁有权访问该应用程序”的“所有人,甚至匿名”