Zarządzanie kontami użytkowników

Interfejs Directory API udostępnia automatyczne metody tworzenia, aktualizowania i usuwania użytkowników. Możesz też uzyskać informacje o poszczególnych użytkownikach lub listach użytkowników, którzy spełniają określone kryteria. Poniżej znajdziesz przykłady podstawowych operacji na użytkownikach.

Tworzenie konta użytkownika

Konto użytkownika możesz dodać do dowolnej domeny na swoim koncie Google Workspace. Zanim dodasz konto użytkownika, potwierdź własność domeny.

Jeśli osobiste konto Gmail zostało uaktualnione do firmowego konta e-mail z własną nazwą domeny, nie możesz tworzyć nowych kont użytkowników, dopóki nie odblokujesz dodatkowych ustawień Google Workspace. Więcej informacji znajdziesz w artykule Zaktualizowane firmowe konta e-mail w Google Workspace.

Aby utworzyć konto użytkownika w jednej ze swoich domen, użyj poniższego POST żądania i dołącz autoryzację opisaną w artykule Informacje o uwierzytelnianiu i autoryzacji. Dostępne zakresy interfejsu Directory API możesz wyświetlić na liście zakresów OAuth 2.0. Informacje o właściwościach ciągu zapytania żądania znajdziesz w opisie metody users.insert.

POST https://admin.googleapis.com/admin/directory/v1/users

Wszystkie żądania tworzenia wymagają przesłania informacji potrzebnych do ich realizacji. Jeśli używasz bibliotek klienta, przekształcają one obiekty danych z wybranego języka na obiekty w formacie JSON.

Żądanie JSON

Poniższy kod JSON przedstawia przykładowe żądanie utworzenia użytkownika. Pełną listę właściwości żądań i odpowiedzi znajdziesz w dokumentacji API.

{
"primaryEmail": "liz@example.com",
"name": {
 "givenName": "Elizabeth",
 "familyName": "Smith"
},
"suspended": false,
"password": "NEW_USER_PASSWORD",
"hashFunction": "SHA-1",
"changePasswordAtNextLogin": false,
"ipWhitelisted": false,
"ims": [
 {
  "type": "work",
  "protocol": "gtalk",
  "im": "liz_im@talk.example.com",
  "primary": true
 }
],
"emails": [
 {
  "address": "liz@example.com",
  "type": "home",
  "customType": "",
  "primary": true
 }
],
"addresses": [
 {
  "type": "work",
  "customType": "",
  "streetAddress": "1600 Amphitheatre Parkway",
  "locality": "Mountain View",
  "region": "CA",
  "postalCode": "94043"
 }
],
"externalIds": [
 {
  "value": "12345",
  "type": "custom",
  "customType": "employee"
 }
],
"organizations": [
 {
  "name": "Google Inc.",
  "title": "SWE",
  "primary": true,
  "type": "work",
  "description": "Software engineer"
 }
],
"phones": [
 {
  "value": "+1 nnn nnn nnnn",
  "type": "work"
 }
],
"orgUnitPath": "/corp/engineering",
"includeInGlobalAddressList": true
}

Jeśli częstotliwość zapytań dotyczących żądań tworzenia jest zbyt wysoka, możesz otrzymywać od serwera API odpowiedzi HTTP 503 wskazujące, że limit został przekroczony. Jeśli otrzymasz takie odpowiedzi, użyj algorytmu wykładniczego wycofywania, aby ponowić żądania.

Podczas tworzenia nowego konta pamiętaj o tych kwestiach:

  • Jeśli na koncie Google zakupiono licencje na pocztę, nowe konto użytkownika automatycznie otrzyma skrzynkę pocztową. Przypisanie może potrwać kilka minut.
  • Edytowanie w żądaniu pola tylko do odczytu, np. isAdmin, jest ignorowane przez usługę API.
  • Maksymalna liczba domen dozwolonych na koncie to 600 (1 domena podstawowa + 599 domen dodatkowych).
  • Jeśli podczas tworzenia konta użytkownik nie został przypisany do konkretnej jednostki organizacyjnej, konto znajduje się w jednostce organizacyjnej najwyższego poziomu. Jednostka organizacyjna użytkownika określa, do których usług Google Workspace ma on dostęp. Jeśli użytkownik zostanie przeniesiony do nowej organizacji, zmieni się jego dostęp. Więcej informacji o strukturach organizacji znajdziesz w Centrum pomocy dla administratorów. Więcej informacji o przenoszeniu użytkownika do innej organizacji znajdziesz w artykule Aktualizowanie konta użytkownika.
  • W przypadku nowych kont użytkowników wymagane jest podanie password. Jeśli określono hashFunction, hasło musi być prawidłowym kluczem haszowania. Jeśli nie jest określone, hasło powinno być w postaci tekstu nieszyfrowanego i mieć od 8 do 100 znaków ASCII. Więcej informacji znajdziesz w dokumentacji API.
  • W przypadku użytkowników korzystających z elastycznego planu Google Workspace tworzenie użytkowników za pomocą tego interfejsu API będzie miało wpływ na koszty i spowoduje naliczenie opłat na koncie rozliczeniowym klienta. Więcej informacji znajdziesz w artykule Informacje rozliczeniowe interfejsu API.
  • Konto Google Workspace może obejmować dowolną z Twoich domen. Na koncie z wieloma domenami użytkownicy w jednej domenie mogą udostępniać usługi użytkownikom w innych domenach konta. Więcej informacji o użytkownikach w wielu domenach znajdziesz w artykule Informacje o wielu domenach w interfejsie API.
  • Między kontami mogą występować konflikty. Sprawdź, czy osoba, którą chcesz dodać, ma już konto Google. Następnie wykonaj odpowiednie czynności, aby uniknąć konfliktów między tymi kontami. Zobacz Znajdowanie i rozwiązywanie konfliktów między kontami.
  • Niektóre konta mogą być kontami gości. Jeśli użytkownicy zaproszą do współpracy na Dysku osoby spoza organizacji, które nie mają kont Google, otrzymają one konta gości z nazwami w formacie visitor's_username@your_domain.com. Jeśli dodasz konto z taką samą nazwą użytkownika jak konto gościa, zostanie ono przekształcone w pełne konto Google Workspace. Konto zachowa aktualne uprawnienia do plików na Dysku. Zobacz Udostępnianie dokumentów użytkownikom.

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Oprócz kodu stanu odpowiedź zawiera też właściwości nowego konta użytkownika.

Aktualizowanie konta użytkownika

Aby zaktualizować konto użytkownika, użyj poniższego żądania PUT i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. The userKey może być podstawowym adresem e-mail użytkownika, unikalnym id użytkownika lub jednym z aliasów adresu e-mail użytkownika.

PUT https://admin.googleapis.com/admin/directory/v1/users/userKey

Zarówno treść żądania, jak i treść odpowiedzi zawierają instancję elementu User. Interfejs Directory API obsługuje semantykę poprawek, więc w żądaniu musisz przesłać tylko zaktualizowane pola.

Przykładowe żądanie

W poniższym przykładzie podczas tworzenia konta użytkownika w polu givenName wpisano „Elizabeth” i podano tylko służbowy adres e-mail.

{
  "name": {
    "givenName": "Elizabeth",
    "familyName": "Smith"
   },
  "emails": [
    {
      "address": "liz@example.com",
      "type": "work",
      "primary": true
    }
  ]
}

Poniższe żądanie aktualizuje pole givenName z „Elizabeth” na „Liz” i dodaje domowy adres e-mail. Pamiętaj, że oba adresy e-mail są podane w całości, ponieważ pole jest tablicą.

PUT https://admin.googleapis.com/admin/directory/v1/users/liz@example.com
{
  "name": {
    "givenName": "Liz",
   },
  "emails": [
    {
      "address": "liz@example.com",
      "type": "work",
      "primary": true
    },
    {
      "address": "liz@home.com",
      "type": "home"
    }
  ]
}

Pomyślna odpowiedź zwraca kod stanu HTTP 200 i zasób User ze zaktualizowanymi polami.

Podczas aktualizowania nazwy konta użytkownika pamiętaj o tych kwestiach:

  • Zmiana nazwy konta użytkownika powoduje zmianę podstawowego adresu e-mail użytkownika i domeny używanej podczas pobierania informacji o tym użytkowniku. Zanim zmienisz nazwę użytkownika, zalecamy wylogowanie go ze wszystkich sesji przeglądarki i usług.
  • Proces zmiany nazwy konta użytkownika może potrwać do 10 minut.
  • Gdy zmienisz nazwę użytkownika, stara nazwa użytkownika zostanie zachowana jako alias, aby zapewnić nieprzerwane dostarczanie poczty e-mail w przypadku ustawień przekierowania poczty e-mail. Nie będzie ona dostępna jako nowa nazwa użytkownika.
  • Ogólnie zalecamy też, aby nie używać adresu e-mail użytkownika jako klucza do trwałych danych, ponieważ adres e-mail może ulec zmianie.
  • Pełną listę skutków zmiany nazwy użytkownika w aplikacjach Google Workspace znajdziesz w Centrum pomocy dla administratorów.

Przypisywanie użytkownikowi ról administratora

Aby przypisać użytkownikowi rolę superadministratora, użyj poniższego żądania POST i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. The userKey może być podstawowym adresem e-mail użytkownika, unikalnym id użytkownika lub jednym z aliasów adresu e-mail użytkownika. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API. Zobacz dokumentację API. Więcej informacji o superadministratorze znajdziesz w Centrum pomocy dla administratorów.

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/makeAdmin

Zanim użytkownik zostanie superadministratorem, musi najpierw istnieć. Tę operację może wykonać tylko superadministrator konta. Administratorzy z delegowanymi uprawnieniami nie mogą przypisywać użytkownikom ról administratora. Informacje o tym, jak zmienić rolę administratora za pomocą konsoli administracyjnej Google, znajdziesz w Centrum pomocy dla administratorów.

Żądanie JSON

W tym przykładzie użytkownik, którego userKey to liz@example.com, został superadministratorem:

POST https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/makeAdmin
{
 "status": true
}

Pomyślna odpowiedź zwraca kod stanu HTTP 200.

Zarządzanie relacjami użytkowników

Interfejs Directory API używa pola relations do definiowania różnych typów relacji między użytkownikami. W środowisku biznesowym to pole jest zwykle używane do określania relacji między menedżerem a pracownikiem oraz między asystentem a pracownikiem, ale obsługuje też wiele innych typów relacji. Relacja jest wyświetlana na karcie „Powiązane osoby” użytkownika w każdej aplikacji Google Workspace, która obsługuje tę kartę. Przykłady miejsc, w których karta jest widoczna, znajdziesz w artykule Dodawanie informacji do profilu użytkownika w katalogu.

Tworzenie relacji między użytkownikami

Relację możesz zdefiniować tylko w jednym kierunku, zaczynając od użytkownika „właściciela”, którego rekord zawiera pole relations. type opisuje relację innej osoby z użytkownikiem będącym właścicielem. Na przykład w relacji menedżer – pracownik pracownik jest użytkownikiem będącym właścicielem, a do jego konta dodajesz pole relations z typem manager. Dozwolone typy, znajdziesz w User dokumentacji obiektu.

Skonfiguruj relację, tworząc lub aktualizując użytkownika będącego właścicielem za pomocą treści żądania JSON, która zawiera pole relations. W jednym żądaniu możesz utworzyć wiele relacji.

{
  "relations": [
    {
      "value": "EMAIL_ADDRESS_RELATION_1",
      "type": "manager"
    },
    {
      "value": "EMAIL_ADDRESS_RELATION_2",
      "type": "dotted_line_manager"
    }
  ]
}

Aktualizowanie i usuwanie relacji

Możesz aktualizować tylko całe pole relations. Nie możesz zmieniać typu relacji ani usuwać poszczególnych osób z listy. Aby w poprzednim przykładzie usunąć istniejącą relację menedżera i ustawić menedżera z przerywaną linią jako menedżera użytkownika będącego właścicielem, zaktualizuj konto użytkownika będącego właścicielem, podając wszystkie wartości pola w nowej postaci.

{
  "relations": [
    {
      "value": "EMAIL_ADDRESS_RELATION_2",
      "type": "manager"
    }
  ]
}

Aby usunąć wszystkie relacje użytkownika będącego właścicielem, ustaw pole relations jako puste:

{
  "relations": []
}

Pobieranie użytkownika

Aby pobrać użytkownika, użyj poniższego żądania GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. The userKey może być podstawowym adresem e-mail użytkownika, unikalnym id użytkownika lub jednym z aliasów adresu e-mail użytkownika. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

GET https://admin.googleapis.com/admin/directory/v1/users/userKey

Ten przykład zwraca właściwości konta użytkownika, którego podstawowy adres e-mail lub alias to liz@example.com:

GET https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

Odpowiedź JSON

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Oprócz kodu stanu odpowiedź zawiera też właściwości konta użytkownika.

{
 "kind": "directory#user",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "name": {
  "givenName": "Liz",
  "familyName": "Smith",
  "fullName": "Liz Smith"
 },
 "isAdmin": true,
 "isDelegatedAdmin": false,
 "lastLoginTime": "2013-02-05T10:30:03.325Z",
 "creationTime": "2010-04-05T17:30:04.325Z",
 "agreedToTerms": true,
 "hashFunction": "SHA-1",
 "suspended": false,
 "changePasswordAtNextLogin": false,
 "ipWhitelisted": false,
 "ims": [
  {
   "type": "work",
   "protocol": "gtalk",
   "im": "lizim@talk.example.com",
   "primary": true
  }
 ],
 "emails": [
  {
   "address": "liz@example.com",
   "type": "home",
   "customType": "",
   "primary": true
  }
 ],
 "addresses": [
  {
   "type": "work",
   "customType": "",
   "streetAddress": "1600 Amphitheatre Parkway",
   "locality": "Mountain View",
   "region": "CA",
   "postalCode": "94043"
  }
 ],
 "externalIds": [
  {
   "value": "employee number",
   "type": "custom",
   "customType": "office"
  }
 ],
 "organizations": [
  {
   "name": "Google Inc.",
   "title": "SWE",
   "primary": true,
   "customType": "",
   "description": "Software engineer"
  }
 ],
 "phones": [
  {
   "value": "+1 nnn nnn nnnn",
   "type": "work"
  }
 ],
 "aliases": [
  "lizsmith@example.com",
  "lsmith@example.com"
 ],
 "nonEditableAliases": [
  "liz@test.com"
 ],
 "customerId": "C03az79cb",
 "orgUnitPath": "corp/engineering",
 "isMailboxSetup": true,
 "includeInGlobalAddressList": true
}

Pobieranie wszystkich użytkowników w domenie

Aby pobrać wszystkich użytkowników w tej samej domenie, użyj poniższego GET żądania i dołącz autoryzację opisaną w Autoryzowanie żądań. Aby zwiększyć czytelność, w tym przykładzie użyto znaków łamania wierszy:

GET https://admin.googleapis.com/admin/directory/v1/users
?domain=primary domain name&pageToken=token for next results page
&maxResults=max number of results per page
&orderBy=email, givenName, or familyName
&sortOrder=ascending or descending
&query=email, givenName, or familyName:the query's value*

Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

Odpowiedź JSON

W tym przykładzie zwracani są wszyscy użytkownicy w domenie example.com, a na stronie odpowiedzi znajduje się maksymalnie 2 domeny użytkowników. W tej odpowiedzi znajduje się nextPageToken dla kolejnej listy użytkowników. Domyślnie system zwraca listę 100 użytkowników w kolejności alfabetycznej według adresu e-mail użytkownika:

GET https://admin.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Oprócz kodu stanu odpowiedź zawiera 2 konta użytkowników w domenie example.com (maxResults=2):

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "liz@example.com",
   "name": {
    "givenName": "Liz",
    "familyName": "Smith",
    "fullName": "Liz Smith"
   },
   "isAdmin": true,
   "isDelegatedAdmin": false,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "ims": [
    {
     "type": "work",
     "protocol": "gtalk",
     "im": "lizim@talk.example.com",
     "primary": true
    }
   ],
   "emails": [
    {
     "address": "liz@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "addresses": [
    {
     "type": "work",
     "customType": "",
     "streetAddress": "1600 Amphitheatre Parkway",
     "locality": "Mountain View",
     "region": "CA",
     "postalCode": "94043"
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "organizations": [
    {
     "name": "Google Inc.",
     "title": "SWE",
     "primary": true,
     "customType": "",
     "description": "Software engineer"
    }
   ],
   "phones": [
    {
     "value": "+1 nnn nnn nnnn",
     "type": "work"
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "user unique ID",
   "primaryEmail": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": true,
   "suspensionReason": "ADMIN",
   "suspensionTime": "2013-02-05T10:30:03.325Z",
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "contractor license number",
     "type": "custom",
     "customType": "work"
    }
   ],
   "aliases": [
    "second_admin@example.com"
   ],
   "nonEditableAliases": [
    "admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "next page token"
}

Pobieranie wszystkich użytkowników konta

Aby pobrać wszystkich użytkowników na koncie, które może obejmować wiele domen, użyj poniższego żądania GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Aby zwiększyć czytelność, w tym przykładzie użyto znaków łamania wierszy:

GET https://admin.googleapis.com/admin/directory/v1/users
?customer=my_customer or customerId&pageToken=token for next results page
&maxResults=max number of results per page
&orderBy=email, givenName, or familyName
&sortOrder=ascending or descending
&query=user attributes
  • Ciąg zapytania customer to wartość my_customer lub customerId.
  • Użyj ciągu znaków my_customer, aby reprezentować customerId Twojego konta.
  • Jako administrator sprzedawcy użyj customerId klienta, któremu sprzedajesz usługi. W przypadku customerId, użyj nazwy domeny podstawowej konta w żądaniu operacji Pobieranie wszystkich użytkowników w domenie. Wynikowa odpowiedź zawiera wartość customerId.
  • Opcjonalny ciąg zapytania orderBy określa, czy lista ma być posortowana według podstawowego adresu e-mail użytkownika, nazwiska czy imienia. Gdy używasz orderBy, możesz też użyć ciągu zapytania sortOrder, aby wyświetlić wyniki w kolejności rosnącej lub malejącej.
  • Opcjonalny ciąg zapytania query umożliwia wyszukiwanie w wielu polach profilu użytkownika, w tym w polach podstawowych i niestandardowych. Przykłady znajdziesz w artykule Wyszukiwanie użytkowników.

Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

W tym przykładzie administrator konta prosi o zwrócenie wszystkich użytkowników na koncie, a na każdej stronie odpowiedzi ma się znajdować 1 wpis użytkownika. nextPageToken prowadzi do kolejnej strony wyników:

GET https://admin.googleapis.com/admin/directory/v1/users?customer=my_customer&maxResults=1

W tym przykładzie administrator sprzedawcy prosi o zwrócenie wszystkich użytkowników na koncie, które ma wartość customerId równą C03az79cb.

GET https://admin.googleapis.com/admin/directory/v1/users?customer=C03az79cb&maxResults=1

Odpowiedź JSON

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Oprócz kodu stanu odpowiedź zawiera wszystkich użytkowników na tym koncie:

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
     "second_admin@example.com"
   ],
   "nonEditableAliases": [
     "another_admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "liz@example.com",
   "name": {
    "givenName": "Elizabeth",
    "familyName": "Smith",
    "fullName": "Elizabeth Smith"
   },
   "isAdmin": false,
   "isDelegatedAdmin": false,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": false,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "liz@example.com",
     "type": "home",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "bank"
    }
   ],
   "relations": [
    {
     "value": "liz",
     "type": "friend",
     "customType": ""
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "test3@example.com",
   "name": {
    "givenName": "Tester",
    "familyName": "Three",
    "fullName": "Tester Three"
   },
   "isAdmin": false,
   "isDelegatedAdmin": false,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "test@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
    "tester3@example.com"
   ],
   "nonEditableAliases": [
    "third@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "username": "work_admin@example.com",
   "name": {
    "givenName": "Admin",
    "familyName": "Work",
    "fullName": "Admin Work"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "1336509883546",
   "creationTime": "1404802800000",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "work_admin@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "aliases": [
    "my_alias@example.com"
   ],
   "nonEditableAliases": [
    "other_alias@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "/",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "NNNNN"
}

Pobieranie ostatnio usuniętych kont użytkowników

Aby pobrać wszystkich użytkowników usuniętych w ciągu ostatnich 20 dni z konta lub z jednej z domen konta, użyj poniższych żądań GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Aby przywrócić konto użytkownika, przeczytaj artykuł Przywracanie konta użytkownika.

Aby pobrać użytkowników usuniętych w ciągu ostatnich 20 dni z domeny podstawowej lub subdomeny konta, użyj poniższego żądania GET. Ciąg zapytania domain to nazwa domeny podstawowej. Informacje o właściwościach żądań i odpowiedzi użytkownika znajdziesz w dokumentacji API. Aby zwiększyć czytelność, w tym przykładzie użyto znaków łamania wierszy:

GET https://admin.googleapis.com/admin/directory/v1/users
?domain=primary domain name&pageToken=token for next results page
&maxResults=max number of results per page
&showDeleted=true

Jeśli konto ma wiele domen, możesz pobrać użytkowników usuniętych w ciągu ostatnich 20 dni z całego konta, używając poniższego żądania GET. Aby zwiększyć czytelność, w tym przykładzie użyto znaków łamania wierszy:

GET https://admin.googleapis.com/admin/directory/v1/users
?customer=my_customer or customerId&pageToken=token for next results page
&maxResults=max number of results per page&showDeleted=true
  • Ciąg zapytania customer to wartość my_customer lub customerId.
  • Jako administrator konta użyj ciągu znaków my_customer, aby reprezentować customerId Twojego konta.
  • Jako administrator sprzedawcy użyj customerId klienta, któremu sprzedajesz usługi. W przypadku customerId, użyj nazwy domeny podstawowej konta w żądaniu operacji Pobieranie wszystkich użytkowników w domenie. Wynikowa odpowiedź zawiera wartość customerId.

Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

W tym przykładzie administrator konta prosi o zwrócenie wszystkich usuniętych użytkowników na koncie:

GET https://admin.googleapis.com/admin/directory/v1/users?customer=my_customer&showDeleted=true

Odpowiedź JSON

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Oprócz kodu stanu odpowiedź zawiera wszystkich użytkowników konta usuniętych w ciągu ostatnich 20 dni:

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "user1@example.com"
  },
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "user3@example.com"
  }
 ],
 "nextPageToken": "token for next page of deleted users"
}

Pobieranie zdjęcia użytkownika

Interfejs API pobiera miniaturę najnowszego zdjęcia profilowego Google. Aby pobrać najnowsze zdjęcie użytkownika, użyj poniższego żądania GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, id użytkownika lub dowolnym z aliasów adresu e-mail użytkownika. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

GET https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

W tym przykładzie zwracane jest najnowsze zdjęcie użytkownika liz@example.com:

GET https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/photos/thumbnail

Odpowiedź JSON

Pomyślna odpowiedź zwraca kod stanu HTTP 200.

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

Kodowanie base64 bezpieczne dla sieci, którego używa interfejs API, jest podobne do „base64url” z RFC 4648. Oznacza to, że:

  • Znak ukośnika (/) jest zastępowany znakiem podkreślenia (_).
  • Znak plusa (+) jest zastępowany znakiem łącznika (-).
  • Znak równości (=) jest zastępowany gwiazdką (*).
  • Do dopełniania używany jest znak kropki (.), a nie znak równości (=), jak w definicji RFC-4648 baseURL. Ułatwia to analizowanie adresów URL.
  • Niezależnie od rozmiaru przesyłanego zdjęcia interfejs API zmniejsza je proporcjonalnie do rozmiaru 96 x 96 pikseli.

Jeśli musisz utworzyć zgodne linki w JavaScript, biblioteka Google Closure zawiera funkcje kodowania i dekodowania Base64 , które są udostępniane na licencji Apache.

Pobieranie użytkownika jako osoby niebędącej administratorem

Konta użytkowników mogą modyfikować tylko administratorzy, ale każdy użytkownik w domenie może odczytywać profile użytkowników. Użytkownik niebędący administratorem może wysłać żądanie users.get lub users.list z parametrem viewType równym domain_public, aby pobrać profil publiczny użytkownika. W tym przypadku idealnie sprawdzi się zakres https://www.googleapis.com/auth/admin.directory.user.readonly.

Widok domain_public umożliwia użytkownikowi niebędącemu administratorem dostęp do standardowego zestawu pól podstawowych. W przypadku pola niestandardowego podczas definiowania schematu możesz wybrać, czy ma być ono publiczne czy prywatne.

Aktualizowanie zdjęcia użytkownika

Aby zaktualizować zdjęcie użytkownika, użyj poniższego PUT żądania i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, id użytkownika lub dowolnym z aliasów adresu e-mail użytkownika. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

PUT https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

W tym przykładzie aktualizowane jest zdjęcie użytkownika liz@example.com:

PUT https://admin.googleapis.com/admin/directory/v1/users/liz@example.com/photos/thumbnail
{
"photoData": "web safe base64 encoded photo data"
}

Podczas aktualizowania zdjęcia interfejs API ignoruje parametry height i width.

Odpowiedź JSON

Pomyślna odpowiedź zwraca kod stanu HTTP 200.

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

Usuwanie zdjęcia użytkownika

Aby usunąć zdjęcie użytkownika, użyj poniższego żądania DELETE i dołącz autoryzację opisaną w Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, id użytkownika lub dowolnym z aliasów adresu e-mail użytkownika. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

Po usunięciu zdjęcie użytkownika nie jest wyświetlane. Wszędzie tam, gdzie wymagane jest zdjęcie użytkownika, wyświetlana jest sylwetka.

Usuwanie konta użytkownika

Aby usunąć konto użytkownika, użyj poniższego żądania DELETE i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. The userKey może być podstawowym adresem e-mail użytkownika, unikalnym id użytkownika lub jednym z aliasów adresu e-mail użytkownika. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey

W tym przykładzie usuwane jest konto użytkownika liz@example.com:

DELETE https://admin.googleapis.com/admin/directory/v1/users/liz@example.com

Pomyślna odpowiedź zwraca kod stanu HTTP 200.

Zanim usuniesz użytkownika, rozważ te kwestie:

Przywracanie konta użytkownika

Aby przywrócić konto użytkownika usunięte w ciągu ostatnich 20 dni, muszą zostać spełnione określone warunki, zanim konto użytkownika będzie mogło zostać przywrócone.

Aby przywrócić konto użytkownika, użyj poniższego żądania POST i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey to unikalny id użytkownika znaleziony w odpowiedzi na operację Pobieranie użytkowników usuniętych w ciągu ostatnich 20 dni. W przypadku tej operacji w polu userKey nie można użyć podstawowego adresu e-mail użytkownika ani jednego z jego aliasów. Informacje o właściwościach żądań i odpowiedzi znajdziesz w dokumentacji API.

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/undelete

W tym przykładzie przywracane jest konto użytkownika liz@example.com. Przywracane są wszystkie poprzednie właściwości konta tego użytkownika:

POST https://admin.googleapis.com/admin/directory/v1/users/12309329403209438205/undelete

Pomyślna odpowiedź zwraca kod stanu HTTP 204. Aby wyświetlić konto przywróconego użytkownika, użyj operacji Pobieranie użytkownika.