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

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

ওপেনআইডি স্কোপ সক্রিয় করুন

একটি OpenID Connect ID টোকেন তৈরি করার জন্য openid স্কোপটি আবশ্যক। আপনার স্ক্রিপ্টে ব্যবহৃত অন্য যেকোনো স্কোপও আপনাকে অবশ্যই তালিকাভুক্ত করতে হবে, যেমন UrlFetch সার্ভিসের জন্য https://www.googleapis.com/auth/script.external_request । এই উদাহরণে ব্যবহারকারীর ইমেল ঠিকানাটি আইডেন্টিটি টোকেনে যোগ করার জন্য https://www.googleapis.com/auth/userinfo.email স্কোপটি অন্তর্ভুক্ত করা হয়েছে।

আপনার স্ক্রিপ্ট প্রজেক্টের ম্যানিফেস্ট ফাইলে ( appsscript.json ), oauthScopes অ্যারেতে openid স্কোপ এবং অন্য যেকোনো প্রয়োজনীয় স্কোপ যোগ করুন:

{
  "timeZone": "America/New_York",
  "dependencies": {
  },
  "exceptionLogging": "STACKDRIVER",
  "runtimeVersion": "V8",
  "oauthScopes": [
    "openid",
    "https://www.googleapis.com/auth/script.external_request",
    "https://www.googleapis.com/auth/userinfo.email"
  ]
}

গুগল ক্লাউড পরিষেবা কনফিগার করুন

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

আপনার স্ক্রিপ্টের ক্লায়েন্ট আইডি খুঁজে পেতে, আপনি একটি আইডেন্টিটি টোকেন ডিকোড করতে পারেন:

function logClientId() {
  const idToken = ScriptApp.getIdentityToken();
  const body = idToken.split('.')[1];
  const decoded = Utilities.newBlob(Utilities.base64Decode(body)).getDataAsString();
  const payload = JSON.parse(decoded);
  Logger.log('Client ID: ' + payload.aud);
}

ক্লাউড রানের জন্য, আপনি এই ক্লায়েন্ট আইডিটিকে অনুমতি দিতে কাস্টম অডিয়েন্স কনফিগার করতে পারেন।

একটি প্রমাণীকৃত অনুরোধ করুন

একবার কনফিগার করা হয়ে গেলে, আপনি আপনার অনুরোধগুলির Authorization হেডারে আইডেন্টিটি টোকেনটি অন্তর্ভুক্ত করতে পারেন:

function callCloudRunService() {
  const idToken = ScriptApp.getIdentityToken();
  const url = 'https://your-service-url.a.run.app';

  const response = UrlFetchApp.fetch(url, {
    headers: {
      'Authorization': 'Bearer ' + idToken
    }
  });

  Logger.log(response.getContentText());
}