ที่แสดงเนื้อหาข้อความดิบของประเภท MIME ต่างๆ
เมื่อเผยแพร่สคริปต์เป็นเว็บแอป ฟังก์ชัน Callback doGet และ
doPost จะทำงานทุกครั้งที่มีการส่งคำขอไปยัง URL ของสคริปต์ บริการเนื้อหาจะแสดงเนื้อหาข้อความดิบได้แทนที่จะแสดงออบเจ็กต์อินเทอร์เฟซผู้ใช้ที่สร้างด้วยบริการ HTML เขียนสคริปต์ที่ทำหน้าที่เป็นบริการ โดยตอบสนองต่อคำขอ GET และ POST
และแสดงข้อมูลประเภท MIME ต่างๆ
ข้อมูลเบื้องต้น
ตัวอย่างต่อไปนี้แสดงวิธีใช้บริการเนื้อหา
function doGet() {
return ContentService.createTextOutput('Hello, world!');
}
ทำให้สคริปต์ใช้งานได้เป็นเว็บแอป
ทำตามขั้นตอนเดียวกับการแสดงอินเทอร์เฟซผู้ใช้ เมื่อมีการGETส่งคำขอ
ไปยัง URL ของสคริปต์ ข้อความ Hello, world! จะแสดงขึ้น นอกจากข้อความธรรมดาแล้ว บริการยังรองรับการแสดงเนื้อหา ATOM, CSV, iCal, JavaScript, JSON, RSS,
vCard และ XML
แสดงฟีด RSS
กรองฟีด RSS เพื่อแก้ไขเนื้อหา เช่น แก้ไขฟีด XKCD เพื่อรวมข้อความแสดงแทนไว้ในฟีดโดยตรงเพื่อให้ดูในอุปกรณ์เคลื่อนที่ได้ดียิ่งขึ้น
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);
}
โค้ดประกอบด้วยคอมโพเนนต์ต่อไปนี้ ใช้ บริการเรียก URL เพื่อดึงข้อมูลฟีด RSS ของ XKCD ต้นฉบับ ใช้นิพจน์ทั่วไปของ JavaScript มาตรฐานเพื่อทำการ แทนที่ ห่อหุ้มฟีดที่แก้ไขแล้วในออบเจ็กต์ TextOutput และตั้งค่า MIME type เป็น RSS
หากต้องการดูการทำงานของฟีเจอร์นี้ ให้เผยแพร่สคริปต์เป็นเว็บแอปและอนุญาตการเข้าถึงแบบไม่ระบุตัวตน เพิ่ม URL ของบริการลงในโปรแกรมอ่าน RSS หรือไปที่ URL โดยตรงใน เว็บเบราว์เซอร์
แสดง JSON จากสคริปต์
ใช้บริการเนื้อหาเพื่อแสดง 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);
}
เผยแพร่เป็นเว็บแอปแบบไม่ระบุตัวตน ผู้ใช้สามารถเพิ่มพารามิเตอร์ของ URL ไปยังส่วนท้าย
ของ URL บริการ พารามิเตอร์ start และ end ระบุช่วงเวลาใน
Epoch ของ Unix มาตรฐาน
curl -L URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000
บริการจะแสดงผล JSON ที่รายงานว่าปฏิทินเปิดในช่วงนั้นหรือไม่
{"available":true}
แสดง JSONP ในหน้าเว็บ
เพียงเปลี่ยนเล็กน้อย บริการ JSON ก็จะกลายเป็น JSONP ที่เรียกจาก JavaScript ในเบราว์เซอร์ได้
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);
}
หากต้องการเรียกใช้บริการนี้จากเบราว์เซอร์ ให้สร้างแท็กสคริปต์ที่มีแอตทริบิวต์ src
ตั้งค่าเป็น URL ของบริการและพารามิเตอร์ prefix เพิ่มเติม นี่คือชื่อ
ของฟังก์ชันใน JavaScript ฝั่งไคลเอ็นต์ที่เรียกใช้ด้วยค่า
ที่บริการส่งคืน
<script src="URL_OF_YOUR_SCRIPT?start=1325437200&end=1325439000&prefix=alert"></script>
ตัวอย่างนี้แสดงกล่องข้อความในเบราว์เซอร์พร้อมเอาต์พุตของบริการ โดยใช้ฟังก์ชัน alert ในตัวของเบราว์เซอร์เป็นคำนำหน้า โค้ด JavaScript
ที่แสดงมีลักษณะดังนี้
alert({"available":true})
โปรดระมัดระวังเมื่อใช้ JSONP เนื่องจากทุกคนฝังสคริปต์แท็กลงในหน้าเว็บได้ คุณจึงอาจถูกหลอกให้เรียกใช้สคริปต์เมื่อเข้าชมเว็บไซต์ที่เป็นอันตราย ซึ่งจะบันทึกข้อมูลที่ส่งกลับมาได้ ตรวจสอบว่าสคริปต์ JSONP เป็นแบบอ่านอย่างเดียวและแสดงเฉพาะข้อมูลที่ไม่ละเอียดอ่อน
การเปลี่ยนเส้นทาง
เพื่อความปลอดภัย ระบบจะเปลี่ยนเส้นทางเนื้อหาที่บริการเนื้อหาแสดงไปยัง URL แบบใช้ครั้งเดียวที่ script.googleusercontent.com หากคุณใช้บริการเนื้อหา
เพื่อส่งคืนข้อมูลไปยังแอปพลิเคชันอื่น โปรดตรวจสอบว่าได้กำหนดค่าไคลเอ็นต์ HTTP ให้
ติดตามการเปลี่ยนเส้นทางแล้ว สำหรับยูทิลิตีบรรทัดคำสั่ง curl ให้เพิ่ม Flag -L ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของ HTTP Client