বাহ্যিক API

গুগল অ্যাপস স্ক্রিপ্ট ওয়েবের সর্বত্র থাকা এপিআই (API)-এর সাথে যোগাযোগ করতে পারে। আপনার স্ক্রিপ্টে বিভিন্ন ধরণের এপিআই নিয়ে কাজ করার জন্য এই নির্দেশিকাটি ব্যবহার করুন।

পাবলিক এপিআই-এর সাথে সংযোগ করুন

সরাসরি এপিআই অনুরোধ পাঠাতে UrlFetch পরিষেবাটি ব্যবহার করুন।

নিম্নলিখিত উদাহরণটি GitHub API ব্যবহার করে ১০০ বা তার বেশি স্টারযুক্ত এবং 'Apps Script' উল্লেখ আছে এমন রিপোজিটরিগুলি অনুসন্ধান করে। এই API অনুরোধটির জন্য কোনো অনুমোদন বা API কী-এর প্রয়োজন নেই।

var query = '"Apps Script" stars:">=100"';
var url = 'https://api.github.com/search/repositories'
  + '?sort=stars'
  + '&q=' + encodeURIComponent(query);

var response = UrlFetchApp.fetch(url, {'muteHttpExceptions': true});
Logger.log(response);

OAuth ব্যবহার করে পরিষেবাগুলিতে অনুরোধ করুন

যেসব এপিআই ব্যবহারকারীর পক্ষ থেকে কাজ করে, সেগুলোর জন্য সাধারণত অনুমোদনের প্রয়োজন হয়, এবং এক্ষেত্রে প্রায়শই OAuth প্রোটোকল ব্যবহার করা হয়। অ্যাপস স্ক্রিপ্ট এই প্রোটোকলের জন্য বিল্ট-ইন সাপোর্ট প্রদান করে না, কিন্তু এমন কিছু ওপেন সোর্স লাইব্রেরি রয়েছে যা আপনি OAuth ফ্লো সম্পাদন করতে এবং আপনার অনুরোধের সাথে ক্রেডেনশিয়াল পাঠাতে ব্যবহার করতে পারেন:

একটি পরিষেবা অ্যাকাউন্ট ব্যবহার করে প্রমাণীকরণ করুন

অ্যাপস স্ক্রিপ্ট থেকে কোনো এপিআই কল করার জন্য, আপনি নিম্নলিখিত কারণগুলোর যেকোনো একটির জন্য সার্ভিস অ্যাকাউন্ট অথেন্টিকেশন ব্যবহার করতে পারেন:

  • গুগল ক্লাউড এপিআই-এর মাধ্যমে আরও ভালো পারফরম্যান্স
  • স্বয়ংক্রিয়করণ এবং দীর্ঘস্থায়ী কাজ
  • উন্নত নিরাপত্তা (সর্বনিম্ন বিশেষাধিকার)
  • কেন্দ্রীভূত অ্যাক্সেস ব্যবস্থাপনা

অ্যাপস স্ক্রিপ্টে সার্ভিস অ্যাকাউন্ট ব্যবহার করতে, “সার্ভিস অ্যাকাউন্ট ব্যবহার করে একটি অ্যাপস স্ক্রিপ্ট প্রজেক্ট হিসেবে প্রমাণীকরণ” দেখুন।

গুগল ক্লাউড পরিষেবাগুলির সাথে সংযোগ করুন

আপনি কার্যকর ব্যবহারকারীর জন্য একটি OpenID Connect আইডেন্টিটি টোকেন (একটি JSON Web Token বা JWT) পেতে ScriptApp.getIdentityToken() মেথডটি ব্যবহার করতে পারেন। এই টোকেনটি ব্যবহার করে আপনি Google Cloud পরিষেবাগুলিতে, যেমন Cloud Run-এ, প্রমাণীকরণ করতে পারেন, যেগুলি এটি গ্রহণ করার জন্য কনফিগার করা আছে।

আরও তথ্যের জন্য, গুগল ক্লাউড পরিষেবাগুলির সাথে সংযোগ দেখুন।

JSON নিয়ে কাজ করুন

JSON অবজেক্ট নিয়ে কাজ করা XML নিয়ে কাজ করার মতোই, তবে JSON অবজেক্ট পার্সিং বা এনকোডিং করা অনেক সহজ।

যখন কোনো API একটি র JSON রেসপন্স ফেরত দেয়, তখন HTTPResponse.getContentText মেথডটি ব্যবহার করে JSON স্ট্রিং রেসপন্সটি অ্যাক্সেস করুন। স্ট্রিংটি পাওয়ার পর, সেটিকে একটি জাভাস্ক্রিপ্ট অবজেক্টে পার্স করার জন্য JSON.parse() ব্যবহার করুন।

// Make request to API and get response before this point.
var json = response.getContentText();
var data = JSON.parse(json);
Logger.log(data.title);

একইভাবে, রিকোয়েস্ট পেলোডের জন্য একটি জাভাস্ক্রিপ্ট অবজেক্টকে JSON স্ট্রিং-এ রূপান্তর করতে JSON.stringify() ব্যবহার করুন।

var data = {
  'entry': {
    'group': {
      'title': 'Dog Skateboarding',
      'description': 'My dog gets some serious air'
    },
    'keywords': 'dog, skateboard'
  }
}
var payload = JSON.stringify(data);
// Make request to API with payload after this point.

XML পার্স করুন

যদি কোনো বাহ্যিক API কোনো অনুরোধের জন্য একটি র XML প্রতিক্রিয়া ফেরত দেয়, তাহলে HTTPResponse.getContentText() পদ্ধতিটি ব্যবহার করে XML প্রতিক্রিয়াটি অ্যাক্সেস করুন।

// Make request to API and get response before this point.
var xml = response.getContentText();
var doc = XmlService.parse(xml);

কোনো API-তে XML অনুরোধ পাঠানোর সময়, প্রেরণের জন্য XML তৈরি করতে XmlService মেথডগুলো ব্যবহার করুন।

var root = XmlService.createElement('entry')
    .setAttribute('keywords', 'dog, skateboard');
var group = XmlService.createElement('group')
    .setAttribute('title', 'Dog Skateboarding')
    .setAttribute('description', 'My dog gets some serious air');
root.addContent(group);
var document = XmlService.createDocument(root);
var payload = XmlService.getPrettyFormat().format(document);
// Make request to API with payload after this point.