שירות ספרייה של Admin SDK

כדי לנהל דומיינים של Google Workspace, כולל מכשירים, קבוצות ומשתמשים.

שירות Directory של Admin SDK מאפשר לכם להשתמש ב-Directory API של Admin SDK ב-Google Apps Script. ממשק ה-API הזה מאפשר לאדמינים של דומיינים ב-Google Workspace (כולל משווקים) לנהל מכשירים, קבוצות, משתמשים וישויות אחרות בדומיינים שלהם.

זהו שירות מתקדם שצריך להפעיל לפני השימוש. בנוסף, צריך להפעיל את Admin SDK בדומיין, כמו שמתואר במסמכי הדרישות המוקדמות של ה-API.

חומרי עזר

מידע מפורט על השירות הזה זמין במאמרי העזרה בנושא Directory API של Admin SDK. בדומה לכל השירותים המתקדמים ב-Apps Script, שירות הספרייה של Admin SDK משתמש באותם אובייקטים, שיטות ופרמטרים כמו ה-API הציבורי. איך נקבעות חתימות של שיטות

כדי לדווח על בעיות ולקבל תמיכה נוספת, אפשר לעיין במדריך התמיכה בספריית Admin SDK.

קוד לדוגמה

בדוגמת הקוד הבאה נעשה שימוש בגרסה 1 של ה-API.

הצגת רשימה של כל המשתמשים

בדוגמה הזו מפורטים כל המשתמשים בדומיין, ממוינים לפי שם פרטי.

advanced/adminSDK.gs
/**
 * Lists all the users in a domain sorted by first name.
 * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/list
 */
function listAllUsers() {
  let pageToken;
  let page;
  do {
    page = AdminDirectory.Users.list({
      domain: "example.com",
      orderBy: "givenName",
      maxResults: 100,
      pageToken: pageToken,
    });
    const users = page.users;
    if (!users) {
      console.log("No users found.");
      return;
    }
    // Print the user's full name and email.
    for (const user of users) {
      console.log("%s (%s)", user.name.fullName, user.primaryEmail);
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}

קבלת משתמש

בדוגמה הזו, המערכת מאחזרת משתמש לפי כתובת האימייל שלו ומתעדת את כל הנתונים שלו כמחרוזת JSON.

advanced/adminSDK.gs
/**
 * Get a user by their email address and logs all of their data as a JSON string.
 * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/users/get
 */
function getUser() {
  // TODO (developer) - Replace userEmail value with yours
  const userEmail = "liz@example.com";
  try {
    const user = AdminDirectory.Users.get(userEmail);
    console.log("User data:\n %s", JSON.stringify(user, null, 2));
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    console.log("Failed with error %s", err.message);
  }
}

הוספת משתמש

בדוגמה הזו נוסף משתמש חדש לדומיין, והיא כוללת רק את המידע הנדרש. רשימה מלאה של שדות המשתמשים זמינה במאמרי העזרה של ה-API.

advanced/adminSDK.gs
/**
 * Adds a new user to the domain, including only the required information. For
 * the full list of user fields, see the API's reference documentation:
 * @see https://developers.google.com/admin-sdk/directory/v1/reference/users/insert
 */
function addUser() {
  let user = {
    // TODO (developer) - Replace primaryEmail value with yours
    primaryEmail: "liz@example.com",
    name: {
      givenName: "Elizabeth",
      familyName: "Smith",
    },
    // Generate a random password string.
    password: Math.random().toString(36),
  };
  try {
    user = AdminDirectory.Users.insert(user);
    console.log("User %s created with ID %s.", user.primaryEmail, user.id);
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    console.log("Failed with error %s", err.message);
  }
}

יצירת כתובת אימייל חלופית

בדוגמה הזו נוצר אימייל חלופי (כינוי) למשתמש.

advanced/adminSDK.gs
/**
 * Creates an alias (nickname) for a user.
 * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/users.aliases/insert
 */
function createAlias() {
  // TODO (developer) - Replace userEmail value with yours
  const userEmail = "liz@example.com";
  let alias = {
    alias: "chica@example.com",
  };
  try {
    alias = AdminDirectory.Users.Aliases.insert(alias, userEmail);
    console.log("Created alias %s for user %s.", alias.alias, userEmail);
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    console.log("Failed with error %s", err.message);
  }
}

הצגת כל הקבוצות

בדוגמה הזו מוצגת רשימה של כל הקבוצות בדומיין.

advanced/adminSDK.gs
/**
 * Lists all the groups in the domain.
 * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/groups/list
 */
function listAllGroups() {
  let pageToken;
  let page;
  do {
    page = AdminDirectory.Groups.list({
      domain: "example.com",
      maxResults: 100,
      pageToken: pageToken,
    });
    const groups = page.groups;
    if (!groups) {
      console.log("No groups found.");
      return;
    }
    // Print group name and email.
    for (const group of groups) {
      console.log("%s (%s)", group.name, group.email);
    }
    pageToken = page.nextPageToken;
  } while (pageToken);
}

הוספת משתתפים לקבוצה

בדוגמה הזו מוסיפים משתמש לקבוצה קיימת בדומיין.

advanced/adminSDK.gs
/**
 * Adds a user to an existing group in the domain.
 * @see https://developers.google.com/admin-sdk/directory/reference/rest/v1/members/insert
 */
function addGroupMember() {
  // TODO (developer) - Replace userEmail value with yours
  const userEmail = "liz@example.com";
  // TODO (developer) - Replace groupEmail value with yours
  const groupEmail = "bookclub@example.com";
  const member = {
    email: userEmail,
    role: "MEMBER",
  };
  try {
    AdminDirectory.Members.insert(member, groupEmail);
    console.log(
      "User %s added as a member of group %s.",
      userEmail,
      groupEmail,
    );
  } catch (err) {
    // TODO (developer)- Handle exception from the API
    console.log("Failed with error %s", err.message);
  }
}