Cloud Identity Groups की बेहतर सेवा

Cloud Identity Groups (CIG) की ऐडवांस सेवा की मदद से, Apps Script में CIG API का इस्तेमाल किया जा सकता है.

रेफ़रंस

इस सेवा के बारे में ज़्यादा जानकारी के लिए, CIG API के रेफ़रंस दस्तावेज़ देखें. Apps Script की सभी ऐडवांस सेवाओं की तरह, ऐडवांस CIG सेवा भी सार्वजनिक एपीआई के ऑब्जेक्ट, तरीकों, और पैरामीटर का इस्तेमाल करती है. ज़्यादा जानकारी के लिए, तरीके के सिग्नेचर कैसे तय किए जाते हैं लेख पढ़ें.

नमूना कोड

नीचे दिए गए हेल्पर फ़ंक्शन, एपीआई के v1 वर्शन का इस्तेमाल करते हैं.

कोई समूह बनाएं

Google Group बनाने के लिए, नए ग्रुप रिसॉर्स के इंस्टेंस के साथ groups.create को कॉल करें. ग्रुप इंस्टेंस में groupKey, parent, और label को cloudidentity.googleapis.com/groups.discussion_forum पर सेट किया जाना चाहिए. आपको initialGroupConfig पैरामीटर भी सेट करना होगा. इससे ग्रुप के शुरुआती मालिक के बारे में पता चलता है. इस पैरामीटर के लिए, इन वैल्यू का इस्तेमाल किया जा सकता है:

WITH_INITIAL_OWNER: इससे अनुरोध भेजने वाला व्यक्ति, ग्रुप का मालिक बन जाता है.

EMPTY: इससे ऐसा ग्रुप बनता है जिसमें शुरुआत में कोई मालिक नहीं होता. इस वैल्यू का इस्तेमाल सिर्फ़ तब किया जा सकता है, जब आप Google Workspace के सुपर एडमिन या ग्रुप एडमिन हों. Google Workspace की भूमिकाओं के बारे में ज़्यादा जानने के लिए, एडमिन की पहले से तय की गई भूमिकाएं देखें.

यहां दिए गए उदाहरण में, ऐसा ग्रुप बनाने का तरीका बताया गया है जिसमें उपयोगकर्ता ग्रुप का मालिक हो:

const groups = CloudIdentityGroups.Groups;

function createGroup(groupId, parentId, displayName) {
  const groupKey = { id: groupId };
  const group = {
    parent: "customerId/" + parentId,
    displayName: displayName,
    groupKey: groupKey,
    // Set the label to specify creation of a Google Group.
    labels: { "cloudidentity.googleapis.com/groups.discussion_forum": "" },
  };
  const optionalArgs = { initialGroupConfig: "WITH_INITIAL_OWNER" };

  try {
    const response = groups.create(group, optionalArgs);
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}

कोई ग्रुप खोजना

किसी Google ग्रुप को खोजने के लिए, क्वेरी स्ट्रिंग के साथ groups.search को कॉल करें. सभी ग्रुप खोजने के लिए, label cloudidentity.googleapis.com/groups.discussion_forum डालें.

const groups = CloudIdentityGroups.Groups;

function searchGroup(customer_id) {
  const search_query = `parent=='customerId/${customer_id}' && 'cloudidentity.googleapis.com/groups.discussion_forum' in labels`;
  const search_group_request = groups.search({ query: search_query });
  console.log(JSON.stringify(search_group_request));
}

किसी ग्रुप में सदस्यता जोड़ना

ग्रुप बनाने के बाद, उसके लिए सदस्यताएं बनाई जा सकती हैं. इस तरीके के लिए, membership संसाधन और माता-पिता के संसाधन name स्ट्रिंग की ज़रूरत होती है. पुरानी वैल्यू को lookup तरीके से ग्रुप को ढूंढकर हासिल किया जा सकता है.

यहां दिए गए हेल्पर तरीके में, किसी ग्रुप में सदस्यता जोड़ने का उदाहरण दिखाया गया है. expiryDetail एक ऐसा फ़ील्ड है जिसे सदस्यता की समयसीमा खत्म होने की तारीख सेट करने के लिए जोड़ा जा सकता है. हालांकि, यह फ़ील्ड ज़रूरी नहीं है. preferredMemberKey की वैल्यू, सदस्य का ईमेल पता होती है.

const groups = CloudIdentityGroups.Groups;

function createMembership(namespace, groupId, memberKey) {
  try {
    // Given a group ID and namespace, retrieve the ID for parent group
    const groupLookupResponse = groups.lookup({
      'groupKey.id': groupId,
      'groupKey.namespace': namespace
    });
    const groupName = groupLookupResponse.name;

    // Create a membership object with a memberKey and a single role of type MEMBER
    const membership = {
      preferredMemberKey: { id: memberKey },
      roles: [
        {
          name: "MEMBER",
          expiryDetail: {
            expireTime: "2025-10-02T15:01:23Z",
          },
        },
      ],
    };

    // Create a membership using the ID for the parent group and a membership object
    const response = groups.Memberships.create(membership, groupName);
    console.log(JSON.stringify(response));
  } catch (e) {
    console.error(e);
  }
}

सदस्य से सदस्यताएं पाना

किसी सदस्य के माता-पिता को खोजने के लिए, groups.memberships.searchDirectGroups तरीके का इस्तेमाल करें.

यहां दी गई हेल्पर विधि में, किसी सदस्य की सीधे तौर पर ली गई सदस्यताओं को दोहराने का उदाहरण दिखाया गया है.

const groups = CloudIdentityGroups.Groups;

 function searchMemberMemberships(memberId, pageSize) {
  try {
    let memberships = [];
    let nextPageToken = '';
    const withinParent = 'groups/-';  // This parameter sets the scope as "all groups"

    do {
      // Get page of memberships
      const queryParams = {
        query: `member_key_id == \'${memberId}\'`,
        page_size: pageSize,
        page_token: nextPageToken,
      };
      const response = groups.Memberships.searchDirectGroups(withinParent, queryParams);
      memberships = memberships.concat(response.memberships);

      // Set up next page
      nextPageToken = response.nextPageToken;
    } while (nextPageToken);

    return memberships;
  } catch(e) {
    console.error(e);
  }
}

किसी ग्रुप की सदस्यताएं पाना

किसी ग्रुप के सदस्यों की सूची बनाने के लिए, groups.memberships.list तरीके का इस्तेमाल करें.

groupId: उस ग्रुप का अंकों वाला आईडी जिसके सदस्यों की सूची आपको बनानी है. किसी एक ग्रुप का आईडी ढूंढने के लिए, groups.lookup तरीके का इस्तेमाल करें. किसी ग्राहक या नेमस्पेस के सभी ग्रुप आईडी देखने के लिए, groups.list तरीके का इस्तेमाल करें.

const groups = CloudIdentityGroups.Groups;

function listGroupMemberships(groupId, pageSize) {
  try {
    let membershipList = [];
    let nextPageToken = '';

    // Get group name
    const groupName = groups.lookup({'groupKey.id': groupId}).name;

    do {
      // Get page of memberships
      const queryParams = {
        pageSize: pageSize,
        pageToken: nextPageToken
      }
      const response = groups.Memberships.list(groupName, queryParams);
      membershipList = membershipList.concat(response.memberships);

      // Set up next page
      nextPageToken = response.nextPageToken;
    } while(nextPageToken);

    return membershipList;
  } catch (error) {
    console.error(error);
  }
}