कॉन्टेंट सर्विस

जो अलग-अलग MIME टाइप का रॉ टेक्स्ट वाला कॉन्टेंट दिखाते हैं.

जब किसी स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश किया जाता है, तब स्क्रिप्ट के यूआरएल पर कोई अनुरोध किए जाने पर, कॉलबैक फ़ंक्शन doGet और doPost काम करते हैं. एचटीएमएल सेवा की मदद से बनाए गए यूज़र इंटरफ़ेस ऑब्जेक्ट को वापस भेजने के बजाय, कॉन्टेंट सेवा, टेक्स्ट वाला कॉन्टेंट वापस भेज सकती है. ऐसी स्क्रिप्ट लिखें जो सेवाओं के तौर पर काम करती हैं. ये स्क्रिप्ट, GET और POST अनुरोधों का जवाब देती हैं और अलग-अलग MIME टाइप का डेटा उपलब्ध कराती हैं.

बुनियादी बातें

यहां दिए गए उदाहरण में, Content सेवा का इस्तेमाल करने का तरीका बताया गया है:

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

स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर डिप्लॉय करें. यूज़र इंटरफ़ेस (यूआई) उपलब्ध कराने के लिए, यहाँ दिया गया तरीका अपनाएँ. जब स्क्रिप्ट के यूआरएल पर GET अनुरोध किया जाता है, तब Hello, world! टेक्स्ट दिखता है. यह सेवा, सादे टेक्स्ट के अलावा ATOM, CSV, iCal, JavaScript, JSON, RSS, vCard, और XML फ़ॉर्मैट में भी कॉन्टेंट दिखा सकती है.

आरएसएस फ़ीड दिखाना

आरएसएस फ़ीड के कॉन्टेंट में बदलाव करने के लिए, उसे फ़िल्टर करें. उदाहरण के लिए, 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);
}

कोड में ये कॉम्पोनेंट शामिल होते हैं. XKCD के ओरिजनल आरएसएस फ़ीड को फ़ेच करने के लिए, यूआरएल फ़ेच सेवा का इस्तेमाल करें. बदलाव करने के लिए, स्टैंडर्ड JavaScript रेगुलर एक्सप्रेशन का इस्तेमाल करें. बदले गए फ़ीड को TextOutput ऑब्जेक्ट में रैप करें और MIME टाइप को आरएसएस पर सेट करें.

इसे ऐक्शन में देखने के लिए, स्क्रिप्ट को वेब ऐप्लिकेशन के तौर पर पब्लिश करें और बिना पहचान बताए ऐक्सेस करने की अनुमति दें. आरएसएस रीडर में सेवा का यूआरएल जोड़ें या सीधे वेब ब्राउज़र में जाकर इसे देखें.

स्क्रिप्ट से JSON फ़ाइल पब्लिश करना

अन्य स्क्रिप्ट, वेबसाइटों, और सेवाओं को JSON दिखाने के लिए, Content सेवा का इस्तेमाल करें. यहां दी गई स्क्रिप्ट, ऐसी सेवा लागू करती है जो यह जांच करती है कि किसी खास समय पर कैलेंडर स्लॉट उपलब्ध है या नहीं.

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

इसे एक गुमनाम वेब ऐप्लिकेशन के तौर पर पब्लिश करें. उपयोगकर्ता, सेवा के यूआरएल के आखिर में यूआरएल पैरामीटर जोड़ सकते हैं. start और end पैरामीटर, स्टैंडर्ड यूनिक्स टाइमस्टैंप में समयसीमा तय करते हैं.

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 एट्रिब्यूट वाली स्क्रिप्ट टैग बनाएं. इसे सेवा के यूआरएल पर सेट करें और एक और prefix पैरामीटर जोड़ें. यह आपके क्लाइंट-साइड JavaScript में मौजूद फ़ंक्शन का नाम है. इसे सेवा से मिली वैल्यू के साथ कॉल किया जाता है.

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

इस उदाहरण में, ब्राउज़र में एक मैसेज बॉक्स दिखाया गया है. इसमें सेवा का आउटपुट है. इसमें ब्राउज़र के पहले से मौजूद alert फ़ंक्शन को प्रीफ़िक्स के तौर पर इस्तेमाल किया गया है. JavaScript कोड ऐसा दिखता है:

alert({"available":true})

JSONP का इस्तेमाल करते समय सावधानी बरतें. कोई भी व्यक्ति अपने वेब पेज में स्क्रिप्ट टैग एम्बेड कर सकता है. इसलिए, नुकसान पहुंचाने वाली किसी वेबसाइट पर जाने के दौरान, आपको स्क्रिप्ट चलाने के लिए गुमराह किया जा सकता है. इसके बाद, यह स्क्रिप्ट वापस भेजे गए डेटा को कैप्चर कर सकती है. पक्का करें कि JSONP स्क्रिप्ट सिर्फ़ पढ़ने के लिए हों और उनसे सिर्फ़ असंवेदनशील जानकारी मिलती हो.

रीडायरेक्ट

सुरक्षा के लिए, कॉन्टेंट सेवा से मिले कॉन्टेंट को script.googleusercontent.com पर मौजूद एक बार इस्तेमाल किया जा सकने वाले यूआरएल पर रीडायरेक्ट किया जाता है. अगर आपको किसी दूसरे ऐप्लिकेशन को डेटा भेजने के लिए, Content service का इस्तेमाल करना है, तो पक्का करें कि एचटीटीपी क्लाइंट को रीडायरेक्ट फ़ॉलो करने के लिए कॉन्फ़िगर किया गया हो. curl कमांड-लाइन यूटिलिटी के लिए, -L फ़्लैग जोड़ें. ज़्यादा जानकारी के लिए, अपने एचटीटीपी क्लाइंट का दस्तावेज़ देखें.