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

时间:2015-02-11 23:11:26

标签: python google-app-engine google-apps-script

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

简而言之,与Google Apps电子表格一起使用时,Google App脚本中的此代码会失败:

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文件中,此特定网址无需授权。但是,当您在Google Spreadsheets中使用此自定义功能时,它基本上会从非常熟悉的Google登录页面中提取html:

一个帐户。所有Google。

那种事。问题:

  • (1)我是否想做一些不可能的事情?我在许多其他场景中都使用了fetch,因此它似乎与我的GAE应用程序具体相关。
  • (2)如果没有,我该如何运作?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

您绝对可以使用UrlFetchApp从应用脚本访问App Engine应用,我会定期使用该方法。

如果您要获取Google登录页面,则GAE上的端点必须要求进行一些身份验证。

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