Zarządzanie kontami użytkowników

Interfejs Directory API oferuje zautomatyzowane metody tworzenia, aktualizowania i usuwania kont 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 działań użytkownika.

Tworzenie konta użytkownika

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

Po przekształceniu osobistego konta Gmail w firmowe konto 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 Firmowe konta e-mail w G Suite zostały przekształcone w konta G Suite Basic.

Aby utworzyć konto użytkownika przy użyciu jednej z Twoich domen, użyj poniższego żądania POST i dodaj autoryzację opisaną w artykule Więcej informacji o uwierzytelnianiu i autoryzacji. Zakresy dostępne dla interfejsu Directory API możesz znaleźć na liście zakresów protokołu OAuth 2.0. Właściwości ciągu zapytania znajdziesz w opisie metody users.insert().

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

Wszystkie prośby o utworzenie wymagają przesłania informacji potrzebnych do zrealizowania żądania. Jeśli używasz bibliotek klienta, konwertują one obiekty danych z wybranego języka na obiekty w formacie danych JSON.

Żądanie JSON

Poniższy kod JSON zawiera przykładowe żądanie utworzenia konta użytkownika. Pełną listę właściwości żądań i odpowiedzi znajdziesz w dokumentacji interfejsu 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ń utworzenia jest zbyt duża, możesz otrzymać z serwera API odpowiedzi HTTP 503 z informacją o przekroczeniu limitu. Jeśli otrzymasz takie odpowiedzi, użyj algorytmu wykładniczego cofania, aby spróbować ponownie.

Co warto wiedzieć o nowym koncie:

  • Jeśli na koncie Google zostały kupione licencje na pocztę, nowe konto użytkownika zostanie automatycznie przypisane do skrzynki pocztowej. Ukończenie i aktywowanie tego projektu może potrwać kilka minut.
  • Usługa interfejsu API ignoruje zmiany w polu tylko do odczytu w żądaniu, np. isAdmin.
  • Maksymalna dozwolona liczba domen na koncie to 600 (1 domena podstawowa + 599 dodatkowych domen)
  • Jeśli podczas tworzenia konta użytkownika nie był przypisany do określonej 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, jego uprawnienia dostępu się zmienią. Więcej informacji o strukturach organizacyjnych znajdziesz w Centrum pomocy dotyczącym administrowania. Więcej informacji o przenoszeniu użytkownika do innej organizacji znajdziesz w artykule Aktualizowanie użytkownika.
  • W przypadku nowych kont użytkowników wymagany jest certyfikat password. Jeśli określono hashFunction, hasło musi być prawidłowym kluczem haszującym. Jeśli go nie określisz, podaj hasło w postaci zwykłego tekstu i składa się z 8–100 znaków ASCII. Więcej informacji znajdziesz w dokumentacji interfejsu API.
  • W przypadku użytkowników korzystających z abonamentu elastycznego Google Workspace tworzenie użytkowników za pomocą tego interfejsu API będzie miało wpływ na finanse i spowoduje naliczenie opłat na koncie rozliczeniowym klienta. Więcej informacji znajdziesz w artykule Informacje rozliczeniowe dotyczące interfejsu API.
  • Konto Google Workspace może zawierać dowolną z Twoich domen. Na koncie z wieloma domenami użytkownicy w jednej domenie mogą udostępniać usługi użytkownikom w innych domenach. Więcej informacji o użytkownikach w wielu domenach znajdziesz w artykule na temat interfejsu API wielu domen.
  • Mogą występować konta będące w konflikcie. Sprawdź, czy osoba, którą chcesz dodać, ma już konto Google. Następnie wykonaj odpowiednie czynności, aby uniknąć konfliktów z tymi kontami. Zobacz Znajdowanie i rozwiązywanie konfliktów między kontami.
  • Mogą istnieć konta 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 w formacie gość_nazwa_użytkownika@twoja_domena.com. Jeśli dodasz użytkownika z tą samą nazwą użytkownika co konto gościa, zostanie ono przekształcone w pełne konto Google Workspace. Konto zachowa dotychczasowe uprawnienia do plików na Dysku. Zobacz Udostępnianie dokumentów użytkownikom zewnętrznym.

Pomyślna odpowiedź zwraca kod stanu HTTP 200. Wraz z kodem stanu odpowiedź zwraca 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 sekcji Autoryzowanie żądań. Pole userKey może być podstawowym adresem e-mail użytkownika, unikalnym adresem e-mail id lub jednym z aliasów adresów e-mail użytkownika.

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

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

Przykładowe żądanie

W poniższym przykładzie podczas tworzenia konta givenName użytkownik miał nazwę „Elizabeth” i podano tylko służbowy adres e-mail.

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

Zgodnie z podaną niżej prośbą profil givenName zostanie zmieniony z „Elizabeth” na „Liz” oraz zostanie dodany domowy adres e-mail. Pamiętaj, że oba adresy e-mail są podane w pełni, ponieważ pole ma postać tablicy.

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ę jego podstawowego adresu e-mail oraz domeny użytej podczas pobierania informacji o tym użytkowniku. Przed zmianą nazwy użytkownika zalecamy wylogowanie go ze wszystkich sesji i usług przeglądarki.
  • Zastosowanie zmiany nazwy konta użytkownika we wszystkich usługach może potrwać do 10 minut.
  • Gdy zmienisz nazwę użytkownika, stara nazwa użytkownika zostanie zachowana jako alias, aby zapewnić ciągłe dostarczanie poczty w przypadku ustawień przekierowania poczty elektronicznej. Nie będzie ona dostępna jako nowa nazwa użytkownika.
  • Ogólnie odradzamy też używanie adresu e-mail użytkownika jako klucza do przechowywania trwałych danych, ponieważ adres ten może się zmieniać.
  • 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 nadać użytkownikowi uprawnienia superadministratora, użyj poniższego żądania POST i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Pole userKey może być podstawowym adresem e-mail użytkownika, unikalnym adresem e-mail id lub jednym z aliasów adresów e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API. Więcej informacji o superadministratorach znajdziesz w Centrum pomocy dla administratorów.

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

Żą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 między użytkownikami

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 relacji menedżer-pracownik i asystent, ale obsługuje też wiele innych rodzajów danych. Relacja jest widoczna na karcie „Powiązane osoby” w dowolnej aplikacji Google Workspace, która obsługuje tę kartę. Przykłady miejsc, w których karta jest widoczna, znajdziesz w sekcji Dodawanie informacji do profilu użytkownika w katalogu.

Tworzenie relacji między użytkownikami

Relację można zdefiniować tylko w jednym kierunku, zaczynając od użytkownika „właściciela”, którego rekord zawiera pole relations. type określa relację między inną osobą a użytkownikiem będącym właścicielem. Na przykład w relacji menedżer–pracownik jest użytkownikiem, który jest właścicielem, i dodajesz do jego konta pole relations typu manager. Dozwolone typy znajdziesz w dokumentacji obiektów User.

Aby skonfigurować relację, utwórz lub zaktualizuj użytkownika właściciela o treści żądania JSON zawierającego pole relations. W jednej prośbie 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

Pole relations można aktualizować tylko w całości – nie możesz zwracać się do poszczególnych osób, aby zmienić typ relacji ani ich usunąć. Aby w powyższym przykładzie usunąć dotychczasową relację menedżera i ustawić menedżer z kreską linią jako menedżera użytkownika, który jest właścicielem, dodaj na koncie użytkownika tego konta wszystkie wartości pola, które uznasz za potrzebne.

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

Aby usunąć wszystkie relacje użytkownika będące właścicielem, ustaw atrybut relations na pusty:

{
  "relations": []
}

Pobieranie konta użytkownika

Aby pobrać użytkownika, użyj poniższego żądania GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Pole userKey może być podstawowym adresem e-mail użytkownika, unikalnym adresem e-mail id lub jednym z aliasów adresów e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

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

W tym przykładzie zwracamy właściwości konta użytkownika, którego podstawowy lub alias e-mail 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. Wraz z kodem stanu odpowiedź zwraca 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
}

Pobierz wszystkich użytkowników w domenie

Aby pobrać wszystkich użytkowników z tej samej domeny, 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 funkcji zwracania wiersza:

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*

Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

Odpowiedź JSON

W tym przykładzie zwracani są wszyscy użytkownicy z domeny example.com. Mogą one mieć maksymalnie 2 domeny na stronę odpowiedzi. Istnieje nextPageToken dla użytkowników z listy kontynuacji tej odpowiedzi. Domyślnie system zwraca listę 100 użytkowników w kolejności alfabetycznej według ich adresu e-mail:

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ź zwraca też 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",
   "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"
}

Pobierz wszystkich użytkowników konta

Aby pobrać wszystkich użytkowników z konta, które może się składać z wielu domen, użyj poniższego żądania GET i dołącz autoryzację opisaną w artykule Autoryzacja żądań. Aby zwiększyć czytelność, w tym przykładzie użyto funkcji zwracania wiersza:

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 ma wartość my_customer lub customerId.
  • Użyj ciągu my_customer, aby określić customerId swojego konta.
  • Jako administrator sprzedawcy używaj customerId klienta sprzedawcy. W przypadku customerId podaj nazwę domeny podstawowej konta w żądaniu operacji Pobierz wszystkich użytkowników w domenie. Otrzymana odpowiedź ma wartość customerId.
  • Opcjonalny ciąg zapytania orderBy określa, czy lista ma być sortowana według podstawowego adresu e-mail użytkownika, imienia i nazwiska czy imienia i nazwiska. Gdy używasz funkcji 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 przeszukiwanie wielu pól w profilu użytkownika, w tym pól podstawowych i niestandardowych. Przykłady znajdziesz w artykule Wyszukiwanie użytkowników.

Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

W tym przykładzie administrator konta chce, aby wszyscy użytkownicy z danego konta byli w stanie zwrócić po jednym wpisie na każdej stronie odpowiedzi. nextPageToken otwiera kolejną stronę wyników:

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

W tym przykładzie administrator sprzedawcy wysyła żądanie wszystkich użytkowników na koncie sprzedawcy, 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ź zwraca 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"
}

Odzyskaj niedawno usunięte konta użytkowników

Aby pobrać wszystkich użytkowników usuniętych w ciągu ostatnich 20 dni z konta lub jednej z domen konta, użyj następujących żądań GET i dołącz autoryzację opisaną w artykule Autoryzacja żądań. Aby dowiedzieć się, jak przywrócić konto użytkownika, zobacz 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 tego żądania GET. Ciąg zapytania domain to nazwa domeny podstawowej domeny. Właściwości żądań i odpowiedzi użytkownika znajdziesz w dokumentacji interfejsu API. Aby zwiększyć czytelność, w tym przykładzie użyto funkcji zwracania wiersza:

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, korzystając z poniższego żądania GET. Aby zwiększyć czytelność, w tym przykładzie użyto zwracanych 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 ma wartość my_customer lub customerId.
  • Jako administrator konta używaj ciągu znaków my_customer, aby oznaczać wartość customerId Twojego konta.
  • Jako administrator sprzedawcy używaj customerId klienta sprzedawcy. W przypadku customerId podaj nazwę domeny podstawowej konta w żądaniu operacji Pobierz wszystkich użytkowników w domenie. Otrzymana odpowiedź ma wartość customerId.

Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

W tym przykładzie administrator prosi o 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 informacje o wszystkich kontach użytkowników 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 jedną miniaturę zdjęcia, czyli najnowsze zdjęcie profilowe Google. Aby pobrać najnowsze zdjęcie użytkownika, użyj następującego żądania GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, id lub dowolnym aliasem e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

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"
}

Bezpieczne kodowanie zdjęć w interfejsie API w internecie w standardzie base64 jest podobne do zgodnego ze standardem RFC 4648 „base64url”. Oznacza to, że:

  • Ukośnik (/) jest zastępowany znakiem podkreślenia (_).
  • Znak plusa (+) jest zastępowany łącznikiem (-).
  • Znak równości (=) jest zastępowany gwiazdką (*).
  • W przypadku dopełnienia zamiast definicji baseURL z RFC-4648 baseURL używany jest znak równości (.). Ma to na celu uproszczenie analizy adresów URL.
  • Bez względu na rozmiar przesyłanego zdjęcia interfejs API zmniejsza go proporcjonalnie do 96 x 96 pikseli.

Jeśli musisz tworzyć zgodne linki w języku JavaScript, biblioteka Google Closure zawiera funkcje kodowania i dekodowania Base64 dostępne na licencji Apache.

Pobieranie konta użytkownika jako osoba niebędąca administratorem

Konta użytkowników mogą być modyfikowane tylko przez administratorów, ale każdy użytkownik w domenie może odczytywać profile użytkowników. Użytkownik bez uprawnień administracyjnych może wysłać żądanie users.get lub users.list z parametrem viewType równym domain_public, aby pobrać profil publiczny użytkownika. Zakres https://www.googleapis.com/auth/admin.directory.user.readonly jest idealny w tym przypadku.

Widok domain_public pozwala użytkownikom bez uprawnień administracyjnych na dostęp do standardowego zestawu podstawowych pól. W przypadku pola niestandardowego przy definiowaniu schematu możesz wybrać, czy ma ono być publiczne, czy prywatne.

Aktualizowanie zdjęcia użytkownika

Aby zaktualizować zdjęcie użytkownika, użyj następującego żądania PUT i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, id lub dowolnym aliasem użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

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

W tym przykładzie zdjęcie na adres liz@example.com zostało zaktualizowane:

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 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 następującego żądania DELETE i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, id lub dowolnym aliasem użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

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

Po usunięciu zdjęcie użytkownika nie będzie widoczne. 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ń. Pole userKey może być podstawowym adresem e-mail użytkownika, unikalnym adresem e-mail id lub jednym z aliasów adresów e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

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

W tym przykładzie konto użytkownika liz@example.com zostało usunięte:

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

Pomyślna odpowiedź zwraca tylko kod stanu HTTP 200.

Ważne kwestie, które należy wziąć pod uwagę przed usunięciem użytkownika:

Przywracanie konta użytkownika

Konto użytkownika usunięte w ciągu ostatnich 20 dni musi spełniać określone warunki, zanim będzie można przywrócić jego konto.

Aby przywrócić konto użytkownika, użyj następującego żądania POST i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey to unikalny użytkownik id znaleziony w odpowiedzi na operację Pobierz konta użytkowników usunięte w ciągu ostatnich 20 dni. W narzędziu userKey do tej operacji nie można użyć podstawowego adresu e-mail użytkownika lub jednego z aliasów adresów e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API (w języku angielskim).

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

W tym przykładzie użytkownik liz@example.com zostaje przywrócony. Wszystkie wcześniejsze usługi konta tego użytkownika zostały przywrócone:

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

Pomyślna odpowiedź zwraca tylko kod stanu HTTP 204. Aby zobaczyć przywrócone konto użytkownika, użyj operacji Pobierz użytkownika.