使用GAS(电子表格的自定义函数)从GAE应用程序获取HTML



我在谷歌应用引擎上建立了一个非常有用的数据库和一组工具。我已经开始了一份与旧工作相关的新工作,我想访问我的GAE应用程序中的一些数据。

长话短说,谷歌应用程序脚本中的这段代码在与谷歌应用程序电子表格一起使用时失败:

function getData(id) {
    url = "http://fakeapp.appspot.com/functions/func?id=" + id;
    response = UrlFetchApp.fetch(url);
    if (response.getResponseCode() == 200) {
        return response.getContentText();
    } else {
        return "error";
    }
}

在电子表格中:

=getDate("XYZ")

应该会返回一些值:

10000

在我的GAE-yaml文件中,这个特定的url不需要授权。然而,当你在谷歌电子表格中使用这个自定义功能时,它基本上是从非常熟悉的谷歌登录页面中提取html:

一个帐户。所有的谷歌

诸如此类的事情。问题:

  • (1) 我是想做一些不可能的事情吗?我在许多其他场景中都可以使用fetch,所以它似乎是我的GAE应用程序所特有的
  • (2) 如果没有,我该怎么做

谢谢你抽出时间。

您肯定可以使用UrlFetchApp从应用程序脚本访问您的应用程序引擎应用程序,我经常使用这种方法。

如果你正在获取谷歌登录页面,GAE上的端点必须需要一些身份验证。

来自Apps Script的UrlFetchApp请求是匿名请求,它们不会传递执行脚本的用户的凭据。

最新更新