以下是我的情况:我的公司在很大程度上依赖谷歌提供电子邮件,日历,文档等。每个部门都维护一个包含部门信息的Google网站,最近我负责维护我部门的网站。该公司还在各种Intranet页面上设置了大量资源。我想在我的Google网站上添加内部网页中的一些内容,我可以想到两种可行的方法。
理想情况下,因为它只是我想从内部网页面抓取的文本,所以我想编写一个Google应用程序脚本来从我的Intranet上的站点读取HTML并解析HTML以提取我想要的文本在网站上。为了测试,我只是试图在我的应用程序中将页面的HTML显示为文本,如下所示:
function doGet(e) {
var app = UiApp.createApplication();
var myUrl = "http://www.yahoo.com";
var responseHtml = UrlFetchApp.fetch(myUrl);
var myLbl = app.createLabel(responseHtml.getContentText());
var mypanel = app.createVerticalPanel();
mypanel.add(myLbl);
app.add(mypanel);
return app;
}//END doGet
这适用于公共站点,但是当我使用来自Intranet页面的URL尝试它时,我收到“语法错误:DNS错误:...”。我假设因为Google托管该网站并且无法访问我们的内部网,但您无法从我们的网络外部访问我们的任何Google产品,因此可能情况并非如此。我发现有一个网站试图使用UseIntranet参数,但我仍然得到同样的错误:
var responseHtml = UrlFetchApp.fetch(gemUrl, {useIntranet:true});
我在这里做错了吗?
我的第二个想法,因为我每天只需要更新几次,就是编写一个Python脚本在本地运行,它将从Intranet页面获取HTML并解析它,然后更新我的Google上的内容现场。我已经有了本地脚本来从Intranet中提取我需要的内容,我只需要找到一种从本地python脚本更新Google站点的方法。 (我知道这是实现这一目标的一种向后的方式,但如果它有效,那对我很好)
那么有没有办法从本地脚本更新Google网站?
提前感谢您的帮助!!
编辑: 我应该澄清我试图从哪里做到这一点。我正在使用Google网站。当我进入管理我的网站时,有一个部分可以添加Google Apps脚本。所以我为我的Google网站创建了一个Google Apps脚本,这就是我编写代码以尝试阅读内部网页面的HTML内容的地方。然后我进入并编辑我网站上的页面,选择“插入”并选择“Apps Script Gadget”。然后,我选择我为自己的Google网站创建的Apps脚本小工具,并将其添加到该页面。
答案 0 :(得分:1)
两个选项:
您编写的Google Apps脚本由Google服务器运行。您可以使用Secure Data Connector让您的脚本访问您的“防火墙后”基于Intranet的数据(这是“useIntranet”参数的来源)。
正如您所说,您也可以使用本地脚本。该脚本将读取您的Intranet数据(如您所说),然后将其写入Google协作平台页面。您可以使用Google协作平台数据API,并且有python library。