我尝试使用Google Apps脚本将Google电子表格导出到RSS。这是我的谷歌表:
https://docs.google.com/spreadsheets/d/15fwOeR6Jo4UadzOTlryTucgI3ZFZ5IVM16GDSwA0XE0/edit?usp=sharing
这是我的谷歌应用脚本代码:
function doGet() {
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/15fwOeR6Jo4UadzOTlryTucgI3ZFZ5IVM16GDSwA0XE0/edit#gid=0');
SpreadsheetApp.setActiveSpreadsheet(ss);
SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);
var title = ss.getSheets()[0].getRange("A1:A3").getValues();
var rss='<?xml version="1.0" encoding="utf-8"?>';
rss+='<feed xmlns="http://www.w3.org/2005/Atom">';
rss+='<title>testtile </title>';
rss+='<link href="www.google.com"/>';
rss+='<id>http://nexcono.appspot.com/frase/</id>';
for(var i=1;i<title.length;i++){
rss+='<entry>';
rss+='<title>sometitle '+title[i][0]+'</title>';
rss+='<link rel="alternate" href="http://apple.com"/>';
rss+='<id>http://nexcono.appspot.com/frase/'+'</id>';
rss+='</entry>';
}
rss+='</feed>';
return ContentService.createTextOutput(rss).setMimeType(ContentService.MimeType.RSS);
}
但是,当我使用https://validator.w3.org/feed/验证时,它说它不是vlid RSS :(
非常感谢,
答案 0 :(得分:2)
模板化HTML可用于您的脚本。参考网站为https://developers.google.com/apps-script/guides/html/templates
var title;
function doGet() {
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/15fwOeR6Jo4UadzOTlryTucgI3ZFZ5IVM16GDSwA0XE0/edit#gid=0');
SpreadsheetApp.setActiveSpreadsheet(ss);
SpreadsheetApp.setActiveSheet(ss.getSheets()[0]);
title = ss.getSheets()[0].getRange("A1:A2").getValues();
var template = HtmlService.createTemplateFromFile('template');
var rss = template.evaluate();
return ContentService.createTextOutput(rss.getContent()).setMimeType(ContentService.MimeType.XML);
}
模板html如下。文件名是“template.html”。请在包含上述脚本的项目中进行此操作。
<rss version="2.0"
xmlns:rss="http://purl.org/rss/1.0/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>testtile </title>
<link href="www.google.com"/>
<id>http://nexcono.appspot.com/frase/</id>
<? for(var i=0;i<title.length;i++){ ?>
<entry>
<title>sometitle '+ <?= title[i][0] ?> +'</title>
<link rel="alternate" href="http://apple.com"/>
<id>http://nexcono.appspot.com/frase/'+'</id>
</entry>
<? } ?>
</channel>
</rss>
答案 1 :(得分:0)
据我所知,这个问题是:
出于安全原因,内容服务返回的内容不会从script.google.com提供,而是重定向到script.googleusercontent.com上的一次性网址。这意味着如果您使用Content服务将数据返回到另一个应用程序,则必须确保HTTP客户端配置为遵循重定向。1
该脚本适用于浏览器(Firefox,Opera等),但没有RSS阅读器识别它。所以,那里,不知道如何解决它,但你已经到了一半。