用Google Apps Script做了个简易的RSS阅读器
2010 2 7 12:04 AM 3651次查看
分类:Google Apps 标签:Google, JavaScript, RSS
看了下文档后,就用现有的服务做了个简易的RSS阅读器:
想自己做个脚本来玩的话,需要拥有一个Google Apps账号。有域名的话可以直接去申请(.cn域名不行),没有域名的话可以在本站注册一个Google Apps账号。
有了账号后,就可以登录Google Apps,新建或打开一个电子表格(需要翻墙),选择“工具 — 脚本 — 编辑脚本”。
此时就会打开一个对话框,把你要执行的任务写成一个JavaScript函数,并保存起来。
然后选择一个函数,点运行按钮就能看到效果了。
其中有个特别的onOpen函数,每次打开这个电子表格时,这个函数就会被自动执行。
服务里还有个添加菜单的功能,可以把你的脚本添加到菜单里去。
最后把我的RSS阅读器源码放出来:
function setHeader(st) {
st.getRange(1, 1, 1, 3)
.setValues([['标题', '链接', '日期']])
.setFontWeight("bold")
.setHorizontalAlignment("center");
}
function setContent(st, content) {
st.getRange(2, 1, content.length, 3)
.setValues(content)
.setVerticalAlignment("middle");
}
function fetch(url) {
var response = UrlFetchApp.fetch(url);
var xml = Xml.parse(response.getContentText()).getElement();
return xml.getElement('channel').getElements('item');
}
function rss() {
var st = SpreadsheetApp.getActiveSheet();
st.clear();
setHeader(st);
var items = fetch("https://twitter.com/statuses/user_timeline/20765944.rss");
var content = [];
for (var i = items.length - 1; i >= 0; --i) {
var item = items[i];
content.push([
item.getElement('title').getText(),
item.getElement('link').getText(),
new Date(item.getElement('pubDate').getText()).toLocaleString()
]);
}
setContent(st, content);
}
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [ {name: "rtmeme", functionName: "rss"} ];
ss.addMenu("我的脚本", menuEntries);
rss();
}
要注意的有2点:- 解析XML文档时,getElements拿到的元素数组不能用for...in来遍历;
- UrlFetchApp.fetch拿到的文本必须是UTF-8编码,否则就会变成乱码。
0条评论 你不来一发么↓