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 tập lệnh hoạt động như các dịch vụ, phản hồi các yêu cầu GETPOST, đồng thời phân phát dữ liệu thuộc nhiều loại MIME.

Thông tin cơ bản

Ví dụ sau đây minh hoạ 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 một ứng dụng web. Làm theo các bước tương tự như khi 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 để thêm văn bản thay thế trực tiếp vào nguồn cấp dữ liệu nhằm cải thiện trải nghiệm xem 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 ban đầu. Sử dụng biểu thức chính quy JavaScript tiêu chuẩn để thực hiện các phép thay thế. Bọc nguồn cấp dữ liệu đã chỉnh sửa trong một đối tượng TextOutput và đặt loại MIME thành RSS.

Để xem hoạt động này, hãy xuất bản tập lệnh dưới dạng một ứ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ờ trên lịch có còn trống 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 ứng dụng này dưới dạng một ứ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 theo thời gian bắt đầu tiêu chuẩn của hệ thống Unix.

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 các 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 một thẻ tập lệnh có thuộc tính src được đặt thành URL dịch vụ và một 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 của 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ề sẽ 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, sau đó trang web này có thể thu thập dữ liệu được trả về. Đảm bảo các tập lệnh JSONP ở trạng thái 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 một 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 bạn đã định cấu hình ứng dụng HTTP để tuân theo các lệnh chuyển hướng. Đối với tiện ích dòng lệnh curl, hãy thêm cờ -L. Hãy xem tài liệu về ứng dụng HTTP để biết thêm thông tin.