বিষয়বস্তু পরিষেবা

যেগুলো বিভিন্ন MIME টাইপের মূল পাঠ্য বিষয়বস্তু ফেরত দেয়।

যখন কোনো স্ক্রিপ্টকে ওয়েব অ্যাপ হিসেবে প্রকাশ করা হয়, তখন স্ক্রিপ্টটির URL-এ কোনো অনুরোধ করা হলেই doGet এবং doPost কলব্যাক ফাংশনগুলো কার্যকর হয়। HTML সার্ভিস দিয়ে তৈরি ইউজার ইন্টারফেস অবজেক্ট ফেরত দেওয়ার পরিবর্তে, কন্টেন্ট সার্ভিস সরাসরি টেক্সচুয়াল কন্টেন্ট ফেরত দিতে পারে। এমন স্ক্রিপ্ট লিখুন যা সার্ভিস হিসেবে কাজ করে, GETPOST অনুরোধে সাড়া দেয় এবং বিভিন্ন MIME টাইপের ডেটা সরবরাহ করে।

মৌলিক বিষয়গুলো

নিম্নলিখিত উদাহরণটি দেখায় কিভাবে কন্টেন্ট সার্ভিস ব্যবহার করতে হয়:

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

স্ক্রিপ্টটিকে একটি ওয়েব অ্যাপ হিসেবে ডেপ্লয় করুন । ইউজার ইন্টারফেস পরিবেশন করার মতোই একই ধাপগুলো অনুসরণ করুন। যখন স্ক্রিপ্টটির URL-এ একটি GET রিকোয়েস্ট পাঠানো হয়, তখন Hello, world! লেখাটি ফেরত আসে। সাধারণ টেক্সট ছাড়াও, এই সার্ভিসটি ATOM, CSV, iCal, JavaScript, JSON, RSS, vCard, এবং XML কন্টেন্ট ফেরত দেওয়া সমর্থন করে।

আরএসএস ফিড পরিবেশন করুন

একটি 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);
}

কোডটিতে নিম্নলিখিত উপাদানগুলো রয়েছে। মূল XKCD RSS ফিডটি আনার জন্য URL Fetch সার্ভিসটি ব্যবহার করুন। প্রতিস্থাপনগুলো করার জন্য একটি স্ট্যান্ডার্ড জাভাস্ক্রিপ্ট রেগুলার এক্সপ্রেশন ব্যবহার করুন। সম্পাদিত ফিডটিকে একটি TextOutput অবজেক্টের মধ্যে রাখুন এবং MIME টাইপটি RSS-এ সেট করুন।

এটি বাস্তবে দেখতে, স্ক্রিপ্টটি একটি ওয়েব অ্যাপ হিসেবে প্রকাশ করুন এবং বেনামী অ্যাক্সেসের অনুমতি দিন। আপনার আরএসএস রিডারে পরিষেবাটির ইউআরএল যোগ করুন অথবা সরাসরি একটি ওয়েব ব্রাউজারে এটি দেখুন।

স্ক্রিপ্ট থেকে 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);
}

এটিকে একটি অ্যানোনিমাস ওয়েব অ্যাপ হিসেবে প্রকাশ করুন। ব্যবহারকারীরা সার্ভিস ইউআরএল-এর শেষে ইউআরএল প্যারামিটার যোগ করতে পারেন। start এবং end প্যারামিটারগুলো স্ট্যান্ডার্ড ইউনিক্স ইপক-এ একটি সময়সীমা নির্দিষ্ট করে।

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

পরিষেবাটি JSON ডেটা ফেরত দেয়, যা জানায় যে ক্যালেন্ডারটি ওই নির্দিষ্ট পরিসরের মধ্যে খোলা আছে কি না।

{"available":true}

ওয়েব পেজে JSONP পরিবেশন করুন

সামান্য পরিবর্তনের মাধ্যমে আপনার JSON সার্ভিসটিকে JSONP-তে রূপান্তর করা যাবে, যা ব্রাউজারে জাভাস্ক্রিপ্ট থেকে কল করা যাবে।

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 প্যারামিটার সেট করা থাকবে। এটি আপনার ক্লায়েন্ট-সাইড জাভাস্ক্রিপ্টের সেই ফাংশনের নাম, যেটিকে সার্ভিস থেকে ফেরত আসা ভ্যালু দিয়ে কল করা হয়।

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

এই উদাহরণটি ব্রাউজারের বিল্ট-ইন ' alert ফাংশনটিকে প্রিফিক্স হিসেবে ব্যবহার করে, সার্ভিসের আউটপুটসহ ব্রাউজারে একটি মেসেজ বক্স প্রদর্শন করে। ফেরত আসা জাভাস্ক্রিপ্ট কোডটি দেখতে এইরকম:

alert({"available":true})

JSONP ব্যবহার করার সময় সতর্ক থাকুন। যেহেতু যে কেউ তাদের ওয়েব পেজে এই স্ক্রিপ্ট ট্যাগটি যুক্ত করতে পারে, তাই কোনো ক্ষতিকারক ওয়েবসাইটে গেলে আপনি প্রতারিত হয়ে স্ক্রিপ্টটি চালিয়ে দিতে পারেন, যা পরবর্তীতে প্রাপ্ত ডেটা হাতিয়ে নিতে পারে। নিশ্চিত করুন যে JSONP স্ক্রিপ্টগুলো শুধুমাত্র পঠনযোগ্য (read-only) এবং কেবল অসংবেদনশীল তথ্যই ফেরত পাঠায়।

পুনঃনির্দেশনা

নিরাপত্তার জন্য, কন্টেন্ট সার্ভিস থেকে প্রাপ্ত কন্টেন্ট script.googleusercontent.com এ অবস্থিত একটি ওয়ান-টাইম ইউআরএল-এ রিডাইরেক্ট করা হয়। আপনি যদি অন্য কোনো অ্যাপ্লিকেশনে ডেটা ফেরত পাঠানোর জন্য কন্টেন্ট সার্ভিস ব্যবহার করেন, তবে নিশ্চিত করুন যে HTTP ক্লায়েন্টটি রিডাইরেক্ট অনুসরণ করার জন্য কনফিগার করা আছে। curl কমান্ড-লাইন ইউটিলিটির জন্য, -L ফ্ল্যাগটি যোগ করুন। আরও তথ্যের জন্য আপনার HTTP ক্লায়েন্টের ডকুমেন্টেশন দেখুন।