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 działań użytkownika.

Tworzenie konta użytkownika

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

Jeśli 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. Więcej informacji znajdziesz w artykule Aktualizacja kont biznesowych Google Workspace.

Aby utworzyć konto użytkownika przy użyciu jednej z Twoich domen, użyj tego żądania POST i dołącz autoryzację opisaną w artykule Uwierzytelnianie i autoryzacja. Dostępne zakresy interfejsu Directory API możesz wyświetlić na liście zakresów OAuth 2.0. Właściwości ciągu zapytania żądania znajdziesz w sekcji metody users.insert.

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

Wszystkie prośby o utworzenie wymagają przesłania informacji potrzebnych do ich realizacji. Jeśli używasz bibliotek klienta, przekształcają one obiekty danych z wybranego języka w obiekty sformatowane w 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 tworzenia jest zbyt wysoka, możesz otrzymywać z serwera interfejsu 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, zanim zostanie ukończone i aktywowane.
  • Edytowanie w żądaniu pola tylko do odczytu, np. isAdmin, jest cicho 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 użytkownika.
  • W przypadku nowych kont użytkowników wymagany jest password. Jeśli określono hashFunction, hasło musi być prawidłowym kluczem skrótu. Jeśli nie jest określony, hasło powinno być w formie tekstu nieszyfrowanego i zawierać od 8 do 100 znaków ASCII. Więcej informacji znajdziesz w dokumentacji 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 koszty i spowoduje naliczenie opłat na koncie rozliczeniowym klienta. Więcej informacji znajdziesz w informacjach rozliczeniowych interfejsu API.
  • Konto Google Workspace może obejmować dowolną z Twoich domen. Na koncie z wieloma domenami użytkownicy z jednej domeny mogą udostępniać usługi użytkownikom z innych domen na tym koncie. Więcej informacji o użytkownikach w wielu domenach znajdziesz w artykule Informacje o wielu domenach w interfejsie API.
  • Mogą występować konta w konflikcie. 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. Więcej informacji znajdziesz w artykule Rozwiązywanie konfliktów związanych ze zduplikowanymi kontami.
  • Mogą istnieć konta gości. Jeśli użytkownicy zaproszą osoby spoza organizacji, które nie mają kont Google, do współpracy nad plikami na Dysku, otrzymają one konta gości w formacie visitor's_username@your_domain.com. Jeśli dodasz użytkownika o tej samej nazwie użytkownika co konto gościa, konto zostanie przekształcone w pełne konto Google Workspace. Konto zachowa aktualne uprawnienia do plików na Dysku. Zobacz Udostępnianie dokumentów użytkownikom.

Odpowiedź zakończona powodzeniem 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 sekcji Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, unikalnym identyfikatorem użytkownika id lub jednym z aliasów adresu e-mail użytkownika.

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

Treść żądania i odpowiedzi zawiera instancję elementu User. Interfejs Directory API obsługuje jednak semantykę poprawki, więc w żądaniu musisz przesłać tylko zaktualizowane pola.

Przykładowe żądanie

W poniższym przykładzie imię użytkownika givenName to „Elizabeth”, gdy tworzone było konto użytkownika, a podano tylko służbowy adres e-mail.

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

Poniższa prośba aktualizuje imię 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 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 i domeny używanej podczas pobierania informacji o tym użytkowniku. Przed zmianą nazwy użytkownika zalecamy wylogowanie go ze wszystkich sesji przeglądarki i usług.
  • Wprowadzenie 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ć nieprzerwane dostarczanie poczty 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 danych trwałych, ponieważ może się on zmienić.
  • Pełną listę efektów zmiany nazwy użytkownika w aplikacjach Google Workspace znajdziesz w Centrum pomocy dla administratorów.

Przypisywanie użytkownikowi roli administratora

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

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

Użytkownik musi najpierw istnieć, zanim zostanie superadministratorem. Tę operację może wykonać tylko superadministrator konta. Administratorzy delegowani nie mogą przyznawać użytkownikom ról administracyjnych. 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
}

Odpowiedź zakończona powodzeniem 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 kontekście biznesowym to pole jest zwykle używane w przypadku relacji między menedżerem a pracownikiem lub asystentem, ale obsługuje też wiele innych typów relacji. Relacja jest wyświetlana na karcie „Powiązane osoby” użytkownika w dowolnej 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żna zdefiniować tylko w jednym kierunku, zaczynając od „właściciela”, którego rekord zawiera pole relations. Pole type opisuje relację innej osoby z użytkownikiem, który jest właścicielem. Na przykład w relacji menedżer–pracownik pracownik jest właścicielem konta, a Ty dodajesz do jego konta pole relations o typie manager. Dozwolone typy znajdziesz w dokumentacji referencyjnej obiektu User.

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 zaktualizować tylko całe pole relations – nie możesz zmienić typu relacji ani usunąć poszczególnych osób z listy. W powyższym przykładzie, aby usunąć dotychczasową relację z kontem menedżera i ustawić konto menedżera z linią przerywaną jako konto 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 pól w sposób, w jaki chcesz je teraz ustawić.

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

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

{
  "relations": []
}

Pobieranie informacji o użytkowniku

Aby pobrać użytkownika, użyj poniższego żądania GET i dołącz autoryzację opisaną w sekcji Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, unikalnym identyfikatorem użytkownika id 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 lub aliasowy adres e-mail to liz@example.com:

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

Odpowiedź JSON

Odpowiedź zakończona powodzeniem zwraca kod stanu HTTP 200. Oprócz kodu stanu odpowiedź zawiera 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 tego żądania GET i dołącz autoryzację opisaną w sekcji Autoryzowanie żądań. Aby ułatwić czytanie, w tym przykładzie użyto znaków końca 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*

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, przy czym na stronie odpowiedzi może być maksymalnie 2 domeny użytkowników. W odpowiedzi znajduje się nextPageToken dla dalszej listy użytkowników. Domyślnie system zwraca listę 100 użytkowników w kolejności alfabetycznej adresów e-mail:

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

Odpowiedź zakończona powodzeniem 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",
   "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 sekcji Autoryzowanie żądań. Aby ułatwić czytanie, w tym przykładzie użyto znaków końca 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 to wartość my_customer lub customerId.
  • Użyj ciągu znaków my_customer, aby przedstawić customerId na swoim koncie.
  • Jako administrator sprzedawcy użyj customerId klienta, któremu sprzedajesz usługi. W przypadku parametru customerIdużyj nazwy domeny podstawowej konta w żądaniu operacji Pobieranie wszystkich kont użytkowników w domenie. Odpowiedź zawiera wartość customerId.
  • Opcjonalny ciąg zapytania orderBy określa, czy lista jest posortowana według podstawowego adresu e-mail użytkownika, nazwiska czy imienia. Gdy używasz parametru 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 z jednym wpisem użytkownika na każdej stronie odpowiedzi. nextPageToken przekierowuje na 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 wysyła żądanie dotyczące wszystkich użytkowników na odsprzedanym koncie, które ma wartość customerId równą C03az79cb.

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

Odpowiedź JSON

Odpowiedź zakończona powodzeniem 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"
}

Przywracanie 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 tego konta, użyj tych żądań GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. Aby przywrócić usunięte konto użytkownika, przeczytaj artykuł Przywracanie usuniętego konta użytkownika.

Aby odzyskać użytkowników usuniętych w ciągu ostatnich 20 dni z domeny głównej konta lub subdomeny, użyj tego żądania GET. Ciąg zapytania domain to podstawowa nazwa domeny. Informacje o właściwościach żądań i odpowiedzi użytkownika znajdziesz w dokumentacji API. Aby ułatwić czytanie, w tym przykładzie użyto znaków końca 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 tego GETżądania. Aby ułatwić czytanie, 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 na koncie.
  • Jako administrator sprzedawcy użyj customerId klienta, któremu sprzedajesz usługi. W przypadku parametru customerIdużyj nazwy domeny podstawowej konta w żądaniu operacji Pobieranie wszystkich kont użytkowników w domenie. Odpowiedź zawiera wartość customerId.

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

W tym przykładzie administrator konta wysyła żądanie dotyczące wszystkich usuniętych użytkowników na koncie:

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

Odpowiedź JSON

Odpowiedź zakończona powodzeniem 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ę zdjęcia, czyli najnowsze zdjęcie profilowe Google. Aby pobrać najnowsze zdjęcie użytkownika, użyj tego żądania GET i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, jego id lub dowolnym z aliasów 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 liz@example.com:

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

Odpowiedź JSON

Odpowiedź zakończona powodzeniem 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 dla sieci kodowanie base64 zdjęć w interfejsie API jest podobne do „base64url” z RFC 4648. Oznacza to, że:

  • Ukośnik (/) jest zastępowany podkreśleniem (_).
  • 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 RFC-4648 baseURL, która używa znaku równości (=) do dopełnienia. Upraszcza to analizowanie adresów URL.
  • Niezależnie od rozmiaru przesyłanego zdjęcia interfejs API zmniejsza je proporcjonalnie do 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 profile użytkowników może odczytać każdy użytkownik domeny. Użytkownik bez uprawnień administratora może wysłać żądanie users.get lub users.list z parametrem viewType równym domain_public, aby pobrać publiczny profil użytkownika. Zakres https://www.googleapis.com/auth/admin.directory.user.readonly jest idealny w tym przypadku użycia.

Widok domain_public umożliwia użytkownikowi bez uprawnień administracyjnych dostęp do standardowego zestawu podstawowych pól. W przypadku pola niestandardowego możesz określić, czy ma być publiczne czy prywatne podczas definiowania schematu.

Aktualizowanie zdjęcia użytkownika

Aby zaktualizować zdjęcie użytkownika, użyj tego żądania PUT i dołącz autoryzację opisaną w artykule Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, użytkownikiem id lub dowolnym adresem e-mail aliasu 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 zdjęcie miejsca 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 zasady heightwidth.

Odpowiedź JSON

Odpowiedź zakończona powodzeniem 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 tego żądania DELETE i dołącz autoryzację opisaną w sekcji Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, użytkownikiem id lub dowolnym adresem e-mail aliasu 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ęcia użytkownika nie jest ono wyświetlane. W miejscach, w których wymagane jest zdjęcie użytkownika, wyświetlana jest sylwetka.

Usuwanie konta użytkownika

Aby usunąć konto użytkownika, użyj tego żądania DELETE i dołącz autoryzację opisaną w sekcji Autoryzowanie żądań. userKey może być podstawowym adresem e-mail użytkownika, unikalnym identyfikatorem użytkownika id 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 usunięto konto użytkownika liz@example.com:

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

Odpowiedź zakończona powodzeniem zwraca kod stanu HTTP 200.

Zanim usuniesz użytkownika, weź pod uwagę te kwestie:

Przywracanie konta użytkownika

Użytkownik usunięty w ciągu ostatnich 20 dni musi spełnić określone warunki, zanim jego konto będzie można przywrócić.

Aby przywrócić konto użytkownika, użyj poniższego żądania POST i dołącz autoryzację opisaną w sekcji Autoryzowanie żądań. userKey to unikalny użytkownik id znaleziony w odpowiedzi na operację Pobieranie użytkowników usuniętych w ciągu ostatnich 20 dni. Podstawowego adresu e-mail użytkownika lub jednego z aliasów adresu e-mail użytkownika nie można użyć w userKey w przypadku tej operacji. 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 użytkownik liz@example.com zostanie przywrócony. Wszystkie poprzednie usługi na koncie tego użytkownika zostaną przywrócone:

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

Odpowiedź zakończona powodzeniem zwraca kod stanu HTTP 204. Aby wyświetlić konto nieusuniętego użytkownika, użyj operacji Pobieranie użytkownika.