使用 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.
诸如此类。问题:
- (1) 我是不是在尝试做一些不可能的事情?我在许多其他情况下都可以进行提取,因此它似乎特定于我的 GAE 应用程序。
- (2) 如果没有,我该如何让它工作?
感谢您的宝贵时间。
您绝对可以使用 UrlFetchApp 从应用程序脚本访问您的 App Engine 应用程序,我经常使用这种方法。
如果您获得 Google 登录页面,GAE 上的端点必须需要一些身份验证。
来自 Apps 脚本的 UrlFetchApp 请求是匿名请求,它们不会传递执行脚本的用户的凭据。
我在 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.
诸如此类。问题:
- (1) 我是不是在尝试做一些不可能的事情?我在许多其他情况下都可以进行提取,因此它似乎特定于我的 GAE 应用程序。
- (2) 如果没有,我该如何让它工作?
感谢您的宝贵时间。
您绝对可以使用 UrlFetchApp 从应用程序脚本访问您的 App Engine 应用程序,我经常使用这种方法。
如果您获得 Google 登录页面,GAE 上的端点必须需要一些身份验证。
来自 Apps 脚本的 UrlFetchApp 请求是匿名请求,它们不会传递执行脚本的用户的凭据。