Zarządzanie kontami użytkowników

Interfejs Directory API udostępnia 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ń na koncie użytkownika.

Tworzenie konta użytkownika

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

Jeśli Twoje osobiste konto Gmail zostało przekształcone 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. Szczegółowe informacje 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 ze swoich 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 znajdziesz na liście zakresów OAuth 2.0. Właściwości ciągu zapytania żądania znajdziesz w opisie metody users.insert().

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

Aby można było utworzyć Twoją prośbę, musisz przesłać informacje niezbędne do jej zrealizowania. 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 ponowienia, aby spróbować ponownie.

Kwestie związane z nowym kontem, o których warto pamiętać:

  • Jeśli do konta Google zostały kupione licencje pocztowe, do nowego konta użytkownika zostanie automatycznie przypisana skrzynka pocztowa. Ukończenie i aktywowanie tego projektu może potrwać kilka minut.
  • Usługa API ignoruje edytowanie pola tylko do odczytu w żądaniu, np. isAdmin.
  • Maksymalna dozwolona liczba domen na koncie to 600 (1 domena podstawowa + 599 domen dodatkowych)
  • Jeśli podczas tworzenia konta użytkownika nie przypisano określonej jednostki organizacyjnej, to konto należy do jednostki 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 związanej z administracją. Więcej informacji o przenoszeniu użytkownika do innej organizacji znajdziesz w artykule Aktualizowanie konta 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 nie określisz hasła, powinno ono mieć postać zwykłego tekstu i zawierać od 8 do 100 znaków ASCII. Więcej informacji znajdziesz w dokumentacji interfejsu API.
  • W przypadku użytkowników korzystających z abonamentu elastycznego Google Workspace utworzenie kont 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. Aby dowiedzieć się więcej, zapoznaj się z informacjami rozliczeniowymi na temat 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 Interfejs API dotyczący wielu domen.
  • Mogą istnieć 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 taką samą nazwą użytkownika jak konto gościa, zostanie ono przekształcone w pełne konto Google Workspace. Konto zachowa obecne 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ź zawiera 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ń. userKey może być podstawowym adresem e-mail użytkownika, unikalnym użytkownikiem id lub jednym z aliasów adresów e-mail użytkownika.

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

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

Przykładowe żądanie

W poniższym przykładzie podczas tworzenia konta givenName użytkownika było „Elizabeth” i podany był tylko służbowy adres e-mail.

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

Zgodnie z poniższą prośbą givenName zmieni się z „Elizabeth” na „Liz” i dodaje też domowy adres e-mail. Pamiętaj, że oba adresy e-mail są podane w pełni, 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 uwagach:

  • Zmiana nazwy konta użytkownika powoduje zmianę jego podstawowego adresu e-mail oraz domeny używanej do pobierania informacji o użytkowniku. Przed zmianą nazwy użytkownika zalecamy wylogowanie się ze wszystkich sesji i usług przeglądarki.
  • Proces zmiany nazwy konta użytkownika może potrwać do 10 minut.
  • Gdy zmienisz nazwę użytkownika, stara nazwa użytkownika jest zachowywana jako alias, aby zapewnić ciągłość dostarczania poczty w przypadku ustawień przekierowania poczty elektronicznej. Nie jest 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łego przechowywania 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 przyznać użytkownikowi uprawnienia superadministratora, użyj następującego żądania POST i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Pole userKey może być podstawowym adresem e-mail użytkownika, unikalnym użytkownikiem 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 na temat superadministratora znajdziesz w Centrum pomocy związanej z zarządzaniem.

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 obsługi relacji menedżer-pracownik i asystent, ale obsługuje też wiele innych rodzajów danych. Relacja jest wyświetlana na karcie „Powiązane osoby” w dowolnej aplikacji Google Workspace, która obsługuje tę kartę. Przykłady tego, gdzie 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 „będącego właścicielem”, 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 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 będącego właścicielem treści żądania JSON zawierającego 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

Pole relations można aktualizować tylko w całości – nie możesz zmieniać typu relacji ani usuwać wybranych osób, aby zmienić ich typ. Aby w powyższym przykładzie usunąć dotychczasową relację menedżera i ustawić menedżer z kropkami jako menedżera użytkownika, który jest właścicielem, dodaj na koncie użytkownika tego właściciela wszystkie wartości pól w odpowiedniej postaci.

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

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

{
  "relations": []
}

Pobieranie konta użytkownika

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

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 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 uwzględnij 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.

Odpowiedź JSON

W tym przykładzie zwracane są wszyscy użytkownicy z domeny example.com z maksymalnie 2 domenami użytkownika na stronę odpowiedzi. Na liście użytkowników w tej odpowiedzi znajduje się nextPageToken. 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ź zwraca 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 Autoryzowanie żą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 jest wartością my_customer lub customerId.
  • Użyj ciągu my_customer do reprezentowania kolumny customerId Twojego konta.
  • Jako administrator sprzedawcy używaj: customerId klienta sprzedawcy. W przypadku customerId użyj nazwy domeny podstawowej konta w żądaniu operacji Pobierz wszystkich użytkowników w domenie. Wynikowa odpowiedź ma wartość customerId.
  • Opcjonalny ciąg zapytania orderBy określa, czy lista ma być sortowana według podstawowego adresu e-mail użytkownika, jego imienia i nazwiska czy imienia i nazwiska. Gdy używasz metody 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 w profilu użytkownika, w tym w polach podstawowych i niestandardowych. Przykłady znajdziesz w sekcji Wyszukiwanie użytkowników.

Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API.

W tym przykładzie administrator konta chce, aby wszyscy użytkownicy na koncie byli zwracani po jednym wpisie na każdej stronie odpowiedzi. nextPageToken otwiera następną stronę wyników:

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

W tym przykładzie administrator sprzedawcy prosi o 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ź 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"
}

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 tych żądań GET i uwzględnij autoryzację opisaną w artykule Autoryzowanie żądań. Aby przywrócić konto użytkownika, zobacz Przywracanie konta użytkownika.

Aby pobrać konta 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 przejścia do 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ć konta 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 jest wartością my_customer lub customerId.
  • Jako administrator konta używaj ciągu my_customer do reprezentowania tych danych (customerId).
  • Jako administrator sprzedawcy używaj: customerId klienta sprzedawcy. W przypadku customerId użyj nazwy domeny podstawowej konta w żądaniu operacji Pobierz wszystkich użytkowników w domenie. Wynikowa odpowiedź ma wartość customerId.

Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API.

W tym przykładzie administrator konta prosi o dostęp do 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 listę wszystkich użytkowników kont 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.

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 w internecie kodowanie zdjęć w base64 interfejsu API jest podobne do zgodnego ze standardem RFC 4648 „base64url”. Oznacza to, że:

  • Ukośnik (/) zostanie zastąpiony znakiem podkreślenia (_).
  • Znak plusa (+) jest zastępowany łącznikiem (-).
  • Znak równości (=) jest zastępowany gwiazdką (*).
  • W przypadku dopełnienia używany jest znak kropki (.) zamiast definicji podstawowego adresu URL RFC-4648, w której dopełnienie ma 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 je proporcjonalnie do 96 x 96 pikseli.

Jeśli chcesz utworzyć zgodne linki z JavaScriptu, biblioteka Google Closure Library zawiera funkcje kodowania i dekodowania Base64 dostępne na licencji Apache.

Pobieranie konta użytkownika jako osoba bez uprawnień administratora

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 idealnie się sprawdza 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 podczas definiowania 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 e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API.

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

W tym przykładzie zdjęcie 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 height i width są ignorowane przez interfejs API.

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 e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API.

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

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

Usuwanie konta użytkownika

Aby usunąć konto użytkownika, użyj następującego żądania DELETE i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Pole userKey może być podstawowym adresem e-mail użytkownika, unikalnym użytkownikiem id lub jednym z aliasów adresów e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API.

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:

  • Użytkownik, którego konto zostało usunięte, nie będzie mógł się zalogować.
  • Więcej informacji o usuwaniu kont użytkowników znajdziesz w Centrum pomocy dla administratorów.

Przywracanie konta użytkownika

Aby można było przywrócić konto użytkownika, którego konto zostało usunięte w ciągu ostatnich 20 dni, musi on spełnić określone warunki.

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. userKey nie może zawierać w metodzie userKey podstawowego adresu e-mail użytkownika ani jednego z aliasów adresów e-mail użytkownika. Właściwości żądania i odpowiedzi znajdziesz w dokumentacji interfejsu API.

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

W tym przykładzie konto użytkownika liz@example.com zostało przywrócone. Wszystkie wcześniejsze usługi konta tego użytkownika zostaną 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 konto użytkownika.