Dịch vụ nội dung

trả về nội dung văn bản thô của nhiều loại MIME.

Khi một tập lệnh được xuất bản dưới dạng ứng dụng web, các hàm gọi lại doGetdoPost sẽ thực thi bất cứ khi nào có yêu cầu được gửi đến URL của tập lệnh. Thay vì trả về một đối tượng giao diện người dùng được tạo bằng dịch vụ HTML, dịch vụ Nội dung có thể trả về nội dung văn bản thô. Viết các tập lệnh hoạt động như dịch vụ, phản hồi các yêu cầu GETPOST và phân phát dữ liệu của nhiều loại MIME.

Thông tin cơ bản

Ví dụ sau đây cho thấy cách sử dụng dịch vụ Nội dung:

function doGet() {
  return ContentService.createTextOutput('Hello, world!');
}

Triển khai tập lệnh dưới dạng ứng dụng web. Thực hiện theo các bước tương tự như phân phát giao diện người dùng. Khi một yêu cầu GET được gửi đến URL của tập lệnh, văn bản Hello, world! sẽ trả về. Ngoài văn bản thuần tuý, dịch vụ này còn hỗ trợ trả về nội dung ATOM, CSV, iCal, JavaScript, JSON, RSS, vCard và XML.

Phân phát nguồn cấp dữ liệu RSS

Lọc nguồn cấp dữ liệu RSS để sửa đổi nội dung của nguồn cấp dữ liệu đó. Ví dụ: chỉnh sửa nguồn cấp dữ liệu XKCD để đưa văn bản thay thế trực tiếp vào nguồn cấp dữ liệu nhằm xem tốt hơn trên thiết bị di động.

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);
}

Mã này bao gồm các thành phần sau. Sử dụng dịch vụ Tìm nạp URL để tìm nạp nguồn cấp dữ liệu RSS XKCD gốc. Sử dụng biểu thức chính quy JavaScript tiêu chuẩn để thực hiện các thay thế. Gói nguồn cấp dữ liệu đã chỉnh sửa trong đối tượng TextOutput và đặt loại MIME thành RSS.

Để xem cách hoạt động của tính năng này, hãy xuất bản tập lệnh dưới dạng ứng dụng web và cho phép truy cập ẩn danh. Thêm URL của dịch vụ vào trình đọc RSS hoặc truy cập trực tiếp vào URL đó trong trình duyệt web.

Phân phát JSON từ tập lệnh

Sử dụng dịch vụ Nội dung để phân phát JSON cho các tập lệnh, trang web và dịch vụ khác. Tập lệnh sau đây triển khai một dịch vụ kiểm tra xem một khung giờ trong lịch có mở vào một thời điểm cụ thể hay không.

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);
}

Xuất bản tập lệnh này dưới dạng ứng dụng web ẩn danh. Người dùng có thể thêm các tham số URL vào cuối URL dịch vụ. Các tham số startend chỉ định một phạm vi thời gian trong kỷ nguyên Unix tiêu chuẩn.

curl -L URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000

Dịch vụ này trả về JSON báo cáo xem lịch có mở trong phạm vi đó hay không.

{"available":true}

Phân phát JSONP trong trang web

Chỉ cần thay đổi một chút, dịch vụ JSON của bạn có thể trở thành JSONP để được gọi từ JavaScript trong trình duyệt.

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(
    request.parameters.prefix + '(' + JSON.stringify(result) + ')')
    .setMimeType(ContentService.MimeType.JAVASCRIPT);
}

Để gọi dịch vụ này từ trình duyệt, hãy tạo thẻ tập lệnh có thuộc tính src được đặt thành URL dịch vụ và tham số prefix bổ sung. Đây là tên của hàm trong JavaScript phía máy khách được gọi bằng giá trị do dịch vụ trả về.

<script src="URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000&prefix=alert"></script>

Ví dụ này cho thấy một hộp thông báo trong trình duyệt có đầu ra dịch vụ, sử dụng hàm alert tích hợp của trình duyệt làm tiền tố. Mã JavaScript được trả về có dạng như sau:

alert({"available":true})

Hãy cẩn thận khi sử dụng JSONP. Vì bất kỳ ai cũng có thể nhúng thẻ tập lệnh vào trang web của họ, nên bạn có thể bị lừa thực thi tập lệnh khi truy cập vào một trang web độc hại. Trang web này sau đó có thể thu thập dữ liệu được trả về. Đảm bảo các tập lệnh JSONP chỉ đọc và chỉ trả về thông tin không nhạy cảm.

Chuyển hướng

Để đảm bảo an toàn, nội dung do dịch vụ Nội dung trả về sẽ được chuyển hướng đến URL dùng một lần tại script.googleusercontent.com. Nếu bạn sử dụng dịch vụ Nội dung để trả về dữ liệu cho một ứng dụng khác, hãy đảm bảo rằng ứng dụng HTTP được định cấu hình để tuân theo các lượt chuyển hướng. Đối với tiện ích dòng lệnh curl, hãy thêm cờ -L. Kiểm tra tài liệu về ứng dụng HTTP để biết thêm thông tin.