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

Fetching HTML from a GAE application using GAS (custom function for spreadsheets)

我在 Google App Engine 上构建了一个非常有用的数据库和一组工具。我开始了一份与旧工作相关的新工作,我想从我的 GAE 应用程序访问一些数据。

长话短说,Google App Script 中的这段代码在与 Google Apps Spreadsheet:

一起使用时失败
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";
    }
}

在价差 sheet 中你有:

=getDate("XYZ")

哪个应该 return 一些值:

10000

在我的 GAE yaml 文件中,这个特定 url 不需要授权。但是,当您在 Google Spreadsheet 中使用此自定义函数时,它基本上会从非常熟悉的 Google 登录页面中提取 html:

One account. All of Google.

诸如此类。问题:

感谢您的宝贵时间。

您绝对可以使用 UrlFetchApp 从应用程序脚本访问您的 App Engine 应用程序,我经常使用这种方法。

如果您获得 Google 登录页面,GAE 上的端点必须需要一些身份验证。

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