返回各种 MIME 类型的原始文本内容。
当脚本作为 Web 应用发布时,每当向脚本的网址发出请求时,回调函数 doGet 和 doPost 都会执行。Content 服务可以返回原始文本内容,而不是返回使用HTML service创建的用户界面对象。编写充当服务的脚本,以响应 GET 和 POST
请求并提供各种 MIME 类型的数据。
基础知识
以下示例展示了如何使用 Content 服务:
function doGet() {
return ContentService.createTextOutput('Hello, world!');
}
将脚本部署为 Web 应用。
按照与提供用户界面相同的步骤操作。当向脚本的网址发出 GET 请求时,系统会返回文本
Hello, world!。除了纯文本之外,该服务还支持返回 ATOM、CSV、iCal、JavaScript、JSON、RSS、vCard
和 XML 内容。
提供 RSS Feed
过滤 RSS Feed 以修改其内容。例如,修改 XKCD Feed 以直接在 Feed 中添加替代文本,从而提升在 移动设备上的观看体验。
function doGet() {
var feed = UrlFetchApp.fetch('http://xkcd.com/rss.xml').getContentText();
feed = feed.replace(
/(<img.*?alt="(.*?)".*?>)/g,
'$1' + new Array(10).join('<br />') + '$2');
return ContentService.createTextOutput(feed)
.setMimeType(ContentService.MimeType.RSS);
}
该代码包含以下组件。使用 网址 Fetch 服务提取原始 XKCD RSS Feed。使用标准 JavaScript 正则表达式进行替换。将修改后的 Feed 封装在 TextOutput 对象中,并将 MIME 类型设置为 RSS。
如需查看实际效果,请将脚本发布为 Web 应用并允许匿名访问。将服务的网址添加到 RSS 阅读器,或直接在网络浏览器中访问该网址。
通过脚本提供 JSON
使用 Content 服务向其他脚本、网站和服务提供 JSON。 以下脚本实现了一项服务,用于检查日历时段在特定时间是否开放。
function doGet(request) {
var events = CalendarApp.getEvents(
new Date(Number(request.parameters.start) * 1000),
new Date(Number(request.parameters.end) * 1000));
var result = {
available: events.length == 0
};
return ContentService.createTextOutput(JSON.stringify(result))
.setMimeType(ContentService.MimeType.JSON);
}
将其发布为匿名 Web 应用。用户可以将网址参数添加到服务网址的末尾。start 和 end 参数以标准 Unix
纪元指定时间范围。
curl -L URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000
该服务会返回 JSON,报告日历在该时间范围内是否开放。
{"available":true}
在网页中提供 JSONP
只需稍作更改,您的 JSON 服务即可变为 JSONP,以便在 浏览器中通过 JavaScript 调用。