Kelola akun pengguna

Directory API menyediakan metode terprogram untuk membuat, memperbarui, dan menghapus pengguna. Anda juga bisa mendapatkan informasi tentang pengguna individual atau daftar pengguna yang memenuhi kriteria tertentu. Berikut ini adalah contoh dari beberapa operasi pengguna dasar.

Buat akun pengguna

Anda dapat menambahkan akun pengguna ke semua domain akun Google Workspace Anda. Sebelum menambahkan akun pengguna, konfirmasi kepemilikan domain.

Jika Anda mengupgrade akun Gmail pribadi ke akun email bisnis dengan nama domain Anda sendiri, Anda tidak dapat membuat akun pengguna baru hingga Anda membuka setelan tambahan Google Workspace. Untuk mengetahui detailnya, lihat Akun email bisnis G Suite yang diperbarui ke G Suite Basic.

Untuk membuat akun pengguna menggunakan salah satu domain Anda, gunakan permintaan POST berikut dan sertakan otorisasi yang dijelaskan di Mempelajari autentikasi dan otorisasi. Anda dapat melihat cakupan yang tersedia untuk Directory API di daftar cakupan OAuth 2.0. Untuk properti string kueri permintaan, lihat metode users.insert().

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

Semua permintaan pembuatan mengharuskan Anda untuk mengirimkan informasi yang diperlukan untuk memenuhi permintaan. Jika Anda menggunakan library klien, library klien akan mengonversi objek data dari bahasa pilihan Anda menjadi objek berformat data JSON.

Permintaan JSON

JSON berikut menunjukkan contoh permintaan untuk membuat pengguna. Untuk mengetahui daftar lengkap properti permintaan dan respons, baca Referensi 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
}

Jika rasio kueri untuk permintaan pembuatan terlalu tinggi, Anda mungkin menerima respons 503 HTTP dari server API yang menunjukkan bahwa kuota Anda telah terlampaui. Jika Anda mendapatkan respons ini, gunakan algoritma back-off eksponensial untuk mencoba lagi permintaan Anda.

Hal-hal yang perlu diperhatikan tentang akun baru adalah:

  • Jika akun Google telah membeli lisensi email, akun pengguna baru akan otomatis ditetapkan kotak surat. Mungkin perlu waktu beberapa menit untuk menyelesaikan dan mengaktifkan tugas ini.
  • Mengedit kolom hanya baca dalam permintaan, seperti isAdmin, akan diabaikan oleh layanan API secara diam-diam.
  • Jumlah maksimum domain yang diizinkan di akun adalah 600 (1 domain primer + 599 domain tambahan)
  • Jika pengguna tidak ditetapkan ke unit organisasi tertentu saat akun pengguna dibuat, akun tersebut berada di unit organisasi tingkat teratas. Unit organisasi pengguna menentukan layanan Google Workspace yang dapat diakses pengguna. Jika pengguna dipindahkan ke organisasi baru, akses pengguna akan berubah. Untuk informasi selengkapnya tentang struktur organisasi, lihat pusat bantuan administrasi. Untuk informasi selengkapnya tentang cara memindahkan pengguna ke organisasi lain, lihat Memperbarui pengguna.
  • password diperlukan untuk akun pengguna baru. Jika hashFunction ditentukan, sandi harus berupa kunci hash yang valid. Jika tidak ditentukan, sandi harus berupa teks yang jelas dan berisi antara 8–100 karakter ASCII. Untuk mengetahui informasi selengkapnya, baca Referensi API.
  • Bagi pengguna yang menggunakan paket fleksibel untuk Google Workspace, membuat pengguna menggunakan API ini akan memiliki dampak keuangan, dan akan menimbulkan tagihan pada akun penagihan pelanggan Anda. Untuk informasi selengkapnya, lihat Informasi penagihan API.
  • Akun Google Workspace dapat menyertakan semua domain Anda. Di akun beberapa domain, pengguna di satu domain dapat berbagi layanan dengan pengguna di domain akun lain. Untuk informasi selengkapnya tentang pengguna di beberapa domain, lihat informasi beberapa domain API.
  • Mungkin ada akun bentrok. Periksa untuk mengetahui apakah siapa pun yang ingin Anda tambahkan sudah memiliki Akun Google. Kemudian, ikuti langkah-langkah untuk menghindari konflik dengan akun tersebut. Lihat Menemukan dan menyelesaikan akun bentrok.
  • Mungkin ada akun pengunjung. Jika pengguna mengundang orang di luar organisasi Anda yang tidak memiliki Akun Google untuk berkolaborasi di Drive, mereka akan menerima akun pengunjung, dalam format visitor_username@your_domain.com. Jika Anda menambahkan pengguna dengan nama pengguna yang sama seperti akun pengunjung, akun tersebut akan dikonversi menjadi akun Google Workspace lengkap. Akun tersebut akan mempertahankan izin file Drive-nya saat ini. Lihat Berbagi dokumen dengan pengunjung.

Respons yang berhasil akan menampilkan kode status HTTP 200. Bersama dengan kode status, respons menampilkan properti untuk akun pengguna baru.

Memperbarui akun pengguna

Untuk memperbarui akun pengguna, gunakan permintaan PUT berikut dan sertakan otorisasi yang dijelaskan dalam Permintaan otorisasi. userKey dapat berupa alamat email primer pengguna, id pengguna unik, atau salah satu alamat email alias pengguna.

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

Isi permintaan dan respons berisi instance User. Namun, Directory API mendukung semantik patch, sehingga Anda hanya perlu mengirimkan kolom yang telah diperbarui dalam permintaan.

Permintaan sampel

Pada contoh di bawah, givenName pengguna adalah "Elizabeth" saat akun pengguna dibuat, dan hanya alamat email kantor yang disediakan.

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

Permintaan di bawah memperbarui givenName dari "Elizabeth" menjadi "Liz", dan juga menambahkan alamat email rumah. Perhatikan bahwa kedua alamat email diberikan sepenuhnya karena kolomnya adalah array.

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

Respons yang berhasil akan menampilkan kode status HTTP 200 dan resource User dengan kolom yang diperbarui.

Perhatikan hal-hal berikut saat memperbarui nama akun pengguna:

  • Mengganti nama akun pengguna akan mengubah alamat email utama pengguna dan domain yang digunakan saat mengambil informasi pengguna ini. Sebelum mengganti nama pengguna, sebaiknya Anda membuat pengguna tersebut logout dari semua sesi dan layanan browser.
  • Proses penggantian nama akun pengguna dapat memerlukan waktu hingga 10 menit agar dapat diterapkan di seluruh layanan.
  • Saat Anda mengganti nama pengguna, nama pengguna lama akan dipertahankan sebagai alias untuk memastikan pengiriman email berkelanjutan saat setelan penerusan email dilakukan, dan tidak tersedia sebagai nama pengguna baru.
  • Secara umum, sebaiknya Anda juga tidak menggunakan alamat email pengguna sebagai kunci untuk data persisten karena alamat email dapat berubah sewaktu-waktu.
  • Untuk mengetahui daftar lengkap dampak dari mengganti nama pengguna di seluruh aplikasi Google Workspace, lihat Pusat bantuan Admin.

Menjadikan pengguna sebagai administrator

Untuk menjadikan pengguna sebagai administrator super, gunakan permintaan POST berikut dan sertakan otorisasi yang dijelaskan di Permintaan otorisasi. userKey dapat berupa alamat email utama pengguna, id pengguna unik, atau salah satu alamat email alias pengguna. Untuk properti permintaan dan respons, lihat Referensi API. Untuk informasi selengkapnya tentang administrator super, lihat pusat bantuan administrasi.

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

Permintaan JSON

Dalam contoh ini, pengguna yang userKey-nya adalah liz@example.com telah menjadi administrator super:

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

Respons yang berhasil akan menampilkan kode status HTTP 200.

Mengelola hubungan pengguna

Directory API menggunakan kolom relations untuk menentukan berbagai jenis hubungan antar-pengguna. Dalam lingkungan bisnis, orang biasanya menggunakan kolom ini untuk hubungan manajer-karyawan dan asisten, tetapi kolom ini juga mendukung banyak jenis lainnya. Hubungan akan ditampilkan di kartu "Orang terkait" milik pengguna di aplikasi Google Workspace apa pun yang mendukung kartu tersebut. Untuk melihat contoh tempat kartu dapat dilihat, lihat Menambahkan informasi ke profil Direktori pengguna.

Menciptakan hubungan di antara pengguna

Anda dapat menentukan hubungan hanya dalam satu arah, mulai dari pengguna yang "memiliki", yang datanya menyertakan kolom relations. type menjelaskan hubungan orang lain dengan pengguna yang memiliki. Misalnya, dalam hubungan manajer-karyawan, karyawan adalah pengguna yang memiliki dan Anda menambahkan kolom relations ke akunnya dengan jenis manager. Untuk jenis yang diizinkan, lihat referensi objek User.

Siapkan hubungan dengan membuat atau mengupdate pengguna yang memiliki dengan isi permintaan JSON yang menyertakan kolom relations. Anda dapat membuat beberapa hubungan dalam satu permintaan.

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

Memperbarui atau menghapus hubungan

Anda hanya dapat memperbarui kolom relations hanya dapat diperbarui secara keseluruhan. Anda tidak dapat menangani setiap orang yang tercantum untuk mengubah jenis hubungan atau menghapusnya. Pada contoh di atas, untuk menghapus hubungan pengelola yang ada dan menjadikan pengelola garis putus-putus sebagai pengelola pengguna yang memiliki, perbarui akun pengguna yang memiliki dengan semua nilai kolom seperti yang Anda inginkan sekarang.

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

Untuk menghapus semua hubungan pengguna yang memiliki, setel relations ke kosong:

{
  "relations": []
}

Mengambil pengguna

Untuk mengambil pengguna, gunakan permintaan GET berikut dan sertakan otorisasi yang dijelaskan dalam Permintaan otorisasi. userKey dapat berupa alamat email utama pengguna, id pengguna unik, atau salah satu alamat email alias pengguna. Untuk properti permintaan dan respons, lihat Referensi API.

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

Contoh ini menampilkan properti akun pengguna untuk pengguna yang alamat email primer atau aliasnya adalah liz@example.com:

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

Respons JSON

Respons yang berhasil akan menampilkan kode status HTTP 200. Bersama dengan kode status, respons menampilkan properti untuk akun pengguna.

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

Mengambil semua pengguna dalam domain

Untuk mengambil semua pengguna di domain yang sama, gunakan permintaan GET berikut dan sertakan otorisasi yang dijelaskan di Permintaan otorisasi. Agar mudah dibaca, contoh ini menggunakan baris yang ditampilkan:

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*

Untuk properti permintaan dan respons, lihat Referensi API.

Respons JSON

Dalam contoh ini, semua pengguna di domain example.com ditampilkan dengan maksimum 2 domain pengguna per halaman respons. Ada nextPageToken untuk daftar pengguna berikutnya dalam respons ini. Secara default, sistem menampilkan daftar 100 pengguna sesuai urutan abjad dari alamat email pengguna:

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

Respons yang berhasil akan menampilkan kode status HTTP 200. Bersama dengan kode status, respons menampilkan 2 akun pengguna di domain 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"
}

Ambil semua pengguna akun

Untuk mengambil semua pengguna di akun yang dapat terdiri dari beberapa domain, gunakan permintaan GET berikut dan sertakan otorisasi yang dijelaskan dalam Permintaan otorisasi. Agar mudah dibaca, contoh ini menggunakan baris yang ditampilkan:

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
  • String kueri customer adalah nilai my_customer atau customerId.
  • Gunakan string my_customer untuk mewakili customerId akun Anda.
  • Sebagai administrator reseller, gunakan customerId pelanggan reseller. Untuk customerId, gunakan nama domain primer akun dalam permintaan operasi Ambil semua pengguna di domain. Respons yang dihasilkan memiliki nilai customerId.
  • String kueri orderBy opsional menentukan apakah daftar diurutkan berdasarkan alamat email utama, nama keluarga, atau nama depan pengguna. Saat menggunakan orderBy, Anda juga dapat menggunakan string kueri sortOrder untuk mencantumkan hasil dalam urutan menaik atau menurun.
  • String kueri query opsional memungkinkan penelusuran banyak kolom di profil pengguna, termasuk kolom inti dan kustom. Lihat bagian Menelusuri Pengguna untuk mengetahui contohnya.

Untuk properti permintaan dan respons, lihat Referensi API.

Dalam contoh ini, administrator akun meminta semua pengguna di akun dikembalikan dengan satu entri pengguna pada setiap halaman respons. nextPageToken akan membuka halaman hasil berikutnya:

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

Dalam contoh ini, administrator reseller meminta semua pengguna di akun yang dijual kembali yang memiliki nilai customerId C03az79cb.

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

Respons JSON

Respons yang berhasil akan menampilkan kode status HTTP 200. Bersama dengan kode status, responsnya menampilkan semua pengguna di akun ini:

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

Mengambil pengguna yang baru dihapus

Untuk mengambil semua pengguna yang dihapus dalam rentang 20 hari terakhir dari akun atau salah satu domain akun, gunakan permintaan GET berikut dan sertakan otorisasi yang dijelaskan dalam Permintaan otorisasi. Untuk membatalkan penghapusan pengguna, lihat Membatalkan penghapusan pengguna.

Untuk memulihkan pengguna yang dihapus dalam rentang 20 hari terakhir dari domain primer atau subdomain akun, gunakan permintaan GET berikut. String kueri domain adalah nama domain primer domain. Untuk properti respons dan permintaan pengguna, baca Referensi API. Dan, agar mudah dibaca, contoh ini menggunakan line return:

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
Jika akun memiliki beberapa domain, Anda dapat mengambil pengguna yang dihapus dalam rentang 20 hari terakhir dari seluruh akun, gunakan permintaan GET berikut. Agar mudah dibaca, contoh ini menggunakan hasil baris:
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
  • String kueri customer adalah nilai my_customer atau customerId.
  • Sebagai administrator akun, gunakan string my_customer untuk mewakili customerId akun Anda.
  • Sebagai administrator reseller, gunakan customerId pelanggan reseller. Untuk customerId, gunakan nama domain primer akun dalam permintaan operasi Ambil semua pengguna di domain. Respons yang dihasilkan memiliki nilai customerId.

Untuk properti permintaan dan respons, lihat Referensi API.

Dalam contoh ini, administrator akun meminta semua pengguna yang dihapus di akun:

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

Respons JSON

Respons yang berhasil akan menampilkan kode status HTTP 200. Bersama dengan kode status, respons menampilkan semua akun yang dihapus pengguna dalam 20 hari terakhir:

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

Mengambil foto pengguna

API mengambil satu thumbnail foto, foto profil Google terbaru. Untuk mengambil foto terbaru pengguna, gunakan permintaan GET berikut dan sertakan otorisasi yang dijelaskan di Permintaan otorisasi. userKey dapat berupa alamat email utama pengguna, id pengguna, atau email alias pengguna apa pun. Untuk properti permintaan dan respons, lihat Referensi API.

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

Dalam contoh ini, foto terbaru liz@example.com ditampilkan:

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

Respons JSON

Respons yang berhasil akan menampilkan kode status 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"
}

Encoding base64 keamanan web API untuk foto Anda mirip dengan RFC 4648 'base64url'. Artinya:

  • Karakter garis miring (/) diganti dengan karakter garis bawah (_).
  • Karakter tanda plus (+) diganti dengan karakter tanda hubung (-).
  • Karakter tanda sama dengan (=) diganti dengan tanda bintang (*).
  • Untuk padding, karakter titik (.) digunakan sebagai pengganti definisi RFC-4648 baseURL yang menggunakan tanda sama dengan (=) untuk padding. Hal ini dilakukan untuk menyederhanakan penguraian URL.
  • Berapa pun ukuran foto yang diupload, API memperkecil ukurannya secara proporsional menjadi 96x96 piksel.

Jika Anda perlu membuat link yang kompatibel dari JavaScript, Google Closure Library menyertakan fungsi encoding dan decoding Base64 yang dirilis berdasarkan lisensi Apache.

Ambil pengguna sebagai non-administrator

Meskipun akun pengguna hanya dapat diubah oleh administrator, setiap pengguna di domain dapat membaca profil pengguna. Pengguna non-admin dapat membuat permintaan users.get atau users.list dengan parameter viewType yang sama dengan domain_public untuk mengambil profil publik pengguna. Cakupan https://www.googleapis.com/auth/admin.directory.user.readonly ideal untuk kasus penggunaan ini.

Tampilan domain_public mengizinkan pengguna non-admin mengakses sekumpulan standar kolom inti. Untuk kolom kustom, Anda dapat memilih apakah kolom tersebut harus publik atau pribadi saat menentukan skema.

Memperbarui foto pengguna

Untuk memperbarui foto pengguna, gunakan permintaan PUT berikut dan sertakan otorisasi yang dijelaskan di Permintaan otorisasi. userKey dapat berupa alamat email utama pengguna, id pengguna, atau email alias pengguna apa pun. Untuk properti permintaan dan respons, lihat Referensi API.

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

Dalam contoh ini, foto liz@example.com diperbarui:

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

Saat memperbarui foto, height dan width diabaikan oleh API.

Respons JSON

Respons yang berhasil akan menampilkan kode status 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"
}

Menghapus foto pengguna

Untuk menghapus foto pengguna, gunakan permintaan DELETE berikut dan sertakan otorisasi yang dijelaskan di Permintaan otorisasi. userKey dapat berupa alamat email utama pengguna, id pengguna, atau email alias pengguna apa pun. Untuk properti permintaan dan respons, lihat Referensi API.

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

Setelah dihapus, foto pengguna tidak akan ditampilkan. siluet, di mana pun foto pengguna diperlukan, akan ditampilkan.

Menghapus akun pengguna

Untuk menghapus akun pengguna, gunakan permintaan DELETE berikut dan sertakan otorisasi yang dijelaskan dalam Permintaan otorisasi. userKey dapat berupa alamat email utama pengguna, id pengguna unik, atau salah satu alamat email alias pengguna. Untuk properti permintaan dan respons, lihat Referensi API.

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

Dalam contoh ini, akun pengguna liz@example.com dihapus:

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

Respons yang berhasil hanya akan menampilkan kode status HTTP 200.

Hal-hal penting yang perlu dipertimbangkan sebelum menghapus pengguna:

  • Pengguna yang dihapus tidak akan dapat login lagi.
  • Untuk informasi selengkapnya tentang penghapusan akun pengguna, lihat pusat bantuan administrasi.

Membatalkan penghapusan akun pengguna

Pengguna yang dihapus dalam 20 hari terakhir harus memenuhi kondisi tertentu sebelum akun pengguna tersebut dapat dipulihkan.

Untuk membatalkan penghapusan akun pengguna, gunakan permintaan POST berikut dan sertakan otorisasi yang dijelaskan dalam Permintaan otorisasi. userKey adalah pengguna unik id yang ditemukan dalam respons operasi Ambil pengguna yang dihapus dalam 20 hari terakhir. Alamat email utama pengguna atau salah satu alamat email alias pengguna tidak dapat digunakan di userKey untuk operasi ini. Untuk properti permintaan dan respons, lihat Referensi API.

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

Dalam contoh ini, pengguna, lisa@example.com, dibatalkan penghapusannya. Semua properti akun sebelumnya dari pengguna ini akan dipulihkan:

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

Respons yang berhasil hanya akan menampilkan kode status HTTP 204. Untuk melihat akun pengguna yang batal dihapus, gunakan operasi Mengambil pengguna.