Layanan Konten

yang menampilkan konten tekstual mentah dari berbagai jenis MIME.

Saat skrip dipublikasikan sebagai aplikasi web, fungsi callback doGet dan doPost akan dieksekusi setiap kali permintaan dibuat ke URL skrip. Daripada menampilkan objek antarmuka pengguna yang dibuat dengan layanan HTML, layanan Konten dapat menampilkan konten tekstual mentah. Tulis skrip yang bertindak sebagai layanan, merespons permintaan GET dan POST serta menayangkan data dari berbagai jenis MIME.

Dasar-dasar

Contoh berikut menunjukkan cara menggunakan layanan Konten:

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

Deploy skrip sebagai aplikasi web. Ikuti langkah-langkah yang sama seperti menyajikan antarmuka pengguna. Saat permintaan GET dibuat ke URL skrip, teks Hello, world! akan ditampilkan. Selain teks biasa, layanan ini mendukung menampilkan konten ATOM, CSV, iCal, JavaScript, JSON, RSS, vCard, dan XML.

Menayangkan feed RSS

Memfilter feed RSS untuk mengubah kontennya. Misalnya, edit feed XKCD untuk menyertakan teks alternatif langsung di feed agar tampilan seluler lebih baik.

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

Kode ini terdiri dari komponen berikut. Gunakan layanan URL Fetch untuk mengambil feed RSS XKCD asli. Gunakan ekspresi reguler JavaScript standar untuk melakukan penggantian. Bungkus feed yang diedit dalam objek TextOutput dan tetapkan jenis MIME ke RSS.

Untuk melihatnya beraksi, publikasikan skrip sebagai aplikasi web dan izinkan akses anonim. Tambahkan URL layanan ke pembaca RSS Anda atau buka langsung di browser web.

Menayangkan JSON dari skrip

Gunakan layanan Konten untuk menayangkan JSON ke skrip, situs, dan layanan lain. Skrip berikut mengimplementasikan layanan yang memeriksa apakah slot kalender tersedia pada waktu tertentu.

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

Publikasikan ini sebagai aplikasi web anonim. Pengguna dapat menambahkan parameter URL di akhir URL layanan. Parameter start dan end menentukan rentang waktu dalam epoch Unix standar.

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

Layanan ini menampilkan JSON yang melaporkan apakah kalender terbuka dalam rentang tersebut.

{"available":true}

Menayangkan JSONP di halaman web

Dengan sedikit perubahan, layanan JSON Anda dapat menjadi JSONP untuk dipanggil dari JavaScript di browser.

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

Untuk memanggil layanan ini dari browser, buat tag skrip dengan atribut src yang ditetapkan ke URL layanan dan parameter prefix tambahan. Ini adalah nama fungsi di JavaScript sisi klien yang dipanggil dengan nilai yang ditampilkan oleh layanan.

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

Contoh ini menampilkan kotak pesan di browser dengan output layanan, menggunakan fungsi alert bawaan browser sebagai awalan. Kode JavaScript yang ditampilkan akan terlihat seperti:

alert({"available":true})

Berhati-hatilah saat menggunakan JSONP. Karena siapa pun dapat menyematkan tag skrip di halaman web mereka, Anda dapat ditipu untuk mengeksekusi skrip saat mengunjungi situs berbahaya, yang kemudian dapat mengambil data yang dikembalikan. Pastikan skrip JSONP bersifat hanya baca dan hanya menampilkan informasi yang tidak sensitif.

Pengalihan

Untuk keamanan, konten yang ditampilkan oleh layanan Konten dialihkan ke URL sekali pakai di script.googleusercontent.com. Jika Anda menggunakan layanan Konten untuk menampilkan data ke aplikasi lain, pastikan klien HTTP dikonfigurasi untuk mengikuti pengalihan. Untuk utilitas command line curl, tambahkan flag -L. Lihat dokumentasi untuk klien HTTP Anda guna mengetahui informasi selengkapnya.