Kullanıcı hesaplarını yönetme

Directory API, kullanıcı oluşturma, güncelleme ve silme için programatik yöntemler sağlar. Ayrıca, belirli ölçütleri karşılayan tek tek kullanıcılar veya kullanıcı listeleri hakkında da bilgi edinebilirsiniz. Aşağıda, bazı temel kullanıcı işlemlerine ilişkin örnekler verilmiştir.

Kullanıcı hesabı oluşturun

Google Workspace hesabınızın alanlarından herhangi birine kullanıcı hesabı ekleyebilirsiniz. Kullanıcı hesabı eklemeden önce alan sahipliğini onaylayın.

Kişisel Gmail hesabınızı kendi alan adınızla iş e-posta hesabına yükselttiyseniz ek Google Workspace ayarlarını etkinleştirene kadar yeni kullanıcı hesapları oluşturamazsınız. Ayrıntılı bilgi için Google Workspace iş e-posta hesapları güncellendi başlıklı makaleyi inceleyin.

Alanlarınızdan birini kullanarak kullanıcı hesabı oluşturmak için aşağıdaki POST isteğini kullanın ve Kimlik doğrulama ve yetkilendirme hakkında bilgi bölümünde açıklanan yetkilendirmeyi ekleyin. Directory API için kullanılabilen kapsamları OAuth 2.0 kapsamları listesinde görebilirsiniz. İstek sorgusu dizesi özellikleri için users.insert yöntemine bakın.

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

Tüm oluşturma isteklerinde, isteği karşılamak için gereken bilgileri göndermeniz gerekir. İstemci kitaplıkları kullanıyorsanız bu kitaplıklar, seçtiğiniz dildeki veri nesnelerini JSON biçimli nesnelere dönüştürür.

JSON isteği

Aşağıdaki JSON, kullanıcı oluşturmaya yönelik örnek bir isteği gösterir. İstek ve yanıt özelliklerinin tam listesi için API Referansı'na bakın.

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

Oluşturma istekleri için sorgu hızınız çok yüksekse API sunucusundan kotanızın aşıldığını belirten HTTP 503 yanıtları alabilirsiniz. Bu yanıtları alırsanız isteklerinizi yeniden denemek için eksponansiyel geri yükleme algoritması kullanın.

Yeni bir hesap oluştururken aşağıdakilere dikkat edin:

  • Google Hesabı'nda posta lisansları satın alınmışsa yeni kullanıcı hesabına otomatik olarak bir posta kutusu atanır. Bu atamanın tamamlanması ve etkinleştirilmesi birkaç dakika sürebilir.
  • İsteklerdeki salt okunur alanların (ör. isAdmin) düzenlenmesi, API hizmeti tarafından sessizce yok sayılır.
  • Bir hesapta izin verilen maksimum alan sayısı 600'dür (1 birincil alan + 599 ek alan).
  • Kullanıcı hesabı oluşturulurken belirli bir kuruluş birimine atanmamışsa hesap, üst düzey kuruluş birimindedir. Bir kullanıcının kuruluş birimi, kullanıcının hangi Google Workspace hizmetlerine erişebileceğini belirler. Kullanıcı yeni bir kuruluşa taşınırsa erişimi değişir. Kuruluş yapıları hakkında daha fazla bilgi için Yönetim Yardım Merkezi'ne göz atın. Kullanıcıları farklı bir kuruluşa taşıma hakkında daha fazla bilgi için Kullanıcıyı güncelleme başlıklı makaleyi inceleyin.
  • Yeni kullanıcı hesapları için password gereklidir. hashFunction belirtilmişse şifre geçerli bir karma anahtar olmalıdır. Belirtilmemişse şifre açık metin biçiminde olmalı ve 8-100 ASCII karakteri arasında olmalıdır. Daha fazla bilgi için API Referansı'na bakın.
  • Google Workspace için esnek plan kullanan kullanıcılar için bu API kullanılarak oluşturulan kullanıcılar, parasal etkiye neden olur ve müşteri faturalandırma hesabınızdan ücret alınır. Daha fazla bilgi için API faturalandırma bilgileri başlıklı makaleyi inceleyin.
  • Google Workspace hesabınızda alanlarınızın tümü yer alabilir. Birden fazla alan içeren bir hesapta, bir alandaki kullanıcılar hizmetleri diğer hesap alanlarındaki kullanıcılarla paylaşabilir. Birden fazla alandaki kullanıcılar hakkında daha fazla bilgi için API multiple domain information (API ile birden fazla alan bilgisi) başlıklı makaleyi inceleyin.
  • Çakışan hesaplar olabilir. Eklemeyi planladığınız kişilerin zaten Google Hesapları olup olmadığını kontrol edin. Ardından, bu hesaplarla çakışma olmaması için ilgili adımları uygulayın. Çakışan hesapları bulma ve çözme başlıklı makaleyi inceleyin.
  • Ziyaretçi hesapları olabilir. Kullanıcılar, kuruluşunuzun dışından olup Google Hesabı olmayan kişileri Drive'da ortak çalışma yapmak için davet ederse bu kişiler visitor's_username@your_domain.com biçiminde ziyaretçi hesabı alır. Ziyaretçi hesabıyla aynı kullanıcı adına sahip bir kullanıcı eklerseniz hesap tam bir Google Workspace hesabına dönüştürülür. Hesap, mevcut Drive dosya izinlerini korur. Ziyaretçilerle doküman paylaşma başlıklı makaleyi inceleyin.

Başarılı bir yanıt, HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte yeni kullanıcı hesabının özelliklerini döndürür.

Kullanıcı hesabını güncelleme

Bir kullanıcı hesabını güncellemek için aşağıdaki PUT isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, benzersiz kullanıcı id veya kullanıcının takma ad e-posta adreslerinden biri olabilir.

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

Hem istek hem de yanıt metni, User öğesinin bir örneğini içerir. Ancak Directory API, yama semantiğini desteklediğinden isteğinizde yalnızca güncellenen alanları göndermeniz gerekir.

Örnek istek

Aşağıdaki örnekte, kullanıcı hesabı oluşturulurken kullanıcının givenName "Elizabeth" olarak ayarlanmış ve yalnızca iş e-posta adresi sağlanmıştır.

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

Aşağıdaki istek, givenName alanını "Elizabeth"ten "Liz"e günceller ve bir ev e-posta adresi ekler. Alan bir dizi olduğundan her iki e-posta adresinin de tam olarak sağlandığını unutmayın.

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

Başarılı bir yanıt, HTTP 200 durum kodu ve güncellenmiş alanlara sahip bir User kaynağı döndürür.

Kullanıcının hesap adını güncellerken aşağıdakilere dikkat edin:

  • Kullanıcı hesabını yeniden adlandırmak, kullanıcının birincil e-posta adresini ve bu kullanıcının bilgilerini alırken kullanılan alanı değiştirir. Kullanıcının adını değiştirmeden önce, kullanıcının tüm tarayıcı oturumlarının ve hizmetlerinin oturumunu kapatmanızı öneririz.
  • Kullanıcı hesabını yeniden adlandırma işleminin tüm hizmetlere yansıtılması 10 dakikayı bulabilir.
  • Bir kullanıcının adını değiştirdiğinizde, e-posta yönlendirme ayarları durumunda posta dağıtımının kesintisiz olmasını sağlamak için eski kullanıcı adı takma ad olarak tutulur ve yeni kullanıcı adı olarak kullanılamaz.
  • Genel olarak, e-posta adresi değişebileceğinden kullanıcı e-posta adresinin kalıcı veriler için anahtar olarak kullanılmamasını da öneririz.
  • Bir kullanıcının Google Workspace uygulamalarındaki adını değiştirmenin etkilerinin tam listesi için Yönetici Yardım Merkezi'ne bakın.

Bir kullanıcıyı yönetici yapma

Bir kullanıcıyı süper yönetici yapmak için aşağıdaki POST isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, benzersiz kullanıcı id veya kullanıcının diğer e-posta adreslerinden biri olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın. Süper yönetici hakkında daha fazla bilgi için Yönetim Yardım Merkezi'ne bakın.

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

Kullanıcı, süper yönetici yapılmadan önce mevcut olmalıdır. Bu işlem yalnızca bir hesabın süper yöneticisi tarafından gerçekleştirilebilir. Yetki verilmiş yöneticiler, kullanıcıları yönetici rollerine yükseltemez. Google Yönetici Konsolu'nu kullanarak bir yöneticinin rolünü değiştirme hakkında bilgi edinmek için Yönetim Yardım Merkezi'ne bakın.

JSON isteği

Bu örnekte, userKey değeri liz@example.com olan kullanıcı süper yönetici olmuştur:

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

Başarılı bir yanıt, HTTP 200 durum kodu döndürür.

Kullanıcı ilişkilerini yönetme

Directory API, kullanıcılar arasındaki farklı ilişki türlerini tanımlamak için relations alanını kullanır. İşletme ortamında bu alan genellikle yönetici-çalışan ve asistan ilişkileri için kullanılır ancak alan, başka birçok türü de destekler. İlişki, kartı destekleyen herhangi bir Google Workspace uygulamasında kullanıcının "İlgili kişiler" kartında gösterilir. Kartın göründüğü yerlerle ilgili örnekler için Kullanıcının Dizin profiline bilgi ekleme başlıklı makaleyi inceleyin.

Kullanıcılar arasında ilişki oluşturma

İlişkiyi yalnızca tek bir yönde tanımlayabilirsiniz. Bu işlem, kaydında relations alanı bulunan "sahip" kullanıcıdan başlar. type, diğer kişinin sahip kullanıcıyla ilişkisini açıklar. Örneğin, bir yönetici-çalışan ilişkisinde çalışan, sahip kullanıcıdır ve hesabına manager türünde bir relations alanı eklersiniz. İzin verilen türler için User nesne referansına bakın.

relations alanını içeren bir JSON istek gövdesiyle sahip kullanıcıyı oluşturarak veya güncelleyerek ilişkiyi ayarlayın. Tek bir istekte birden fazla ilişki oluşturabilirsiniz.

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

İlişkiyi güncelleme veya silme

Yalnızca relations alanını bir bütün olarak güncelleyebilirsiniz. İlişki türünü değiştirmek veya listeden kaldırmak için listedeki kişilere tek tek ulaşamazsınız. Yukarıdaki örnekte, mevcut yönetici ilişkisini kaldırmak ve noktalı çizgiyle belirtilen yöneticiyi sahipliğin ait olduğu kullanıcının yöneticisi yapmak için sahipliğin ait olduğu kullanıcının hesabını, artık istediğiniz şekilde tüm alan değerleriyle güncelleyin.

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

Sahip kullanıcının tüm ilişkilerini kaldırmak için relations değerini boş olarak ayarlayın:

{
  "relations": []
}

Kullanıcıyı alma

Bir kullanıcıyı almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, benzersiz kullanıcı id veya kullanıcının takma ad e-posta adreslerinden biri olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.

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

Bu örnek, birincil veya takma ad e-posta adresi liz@example.com olan kullanıcının kullanıcı hesabı özelliklerini döndürür:

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

JSON yanıtı

Başarılı bir yanıt, HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte kullanıcı hesabının özelliklerini döndürür.

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

Bir alandaki tüm kullanıcıları alma

Aynı alandaki tüm kullanıcıları almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. Okunabilirlik için bu örnekte satır sonları kullanılmıştır:

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*

İstek ve yanıt özellikleri için API Referansı'na bakın.

JSON yanıtı

Bu örnekte, example.com alanındaki tüm kullanıcılar yanıt sayfası başına en fazla 2 kullanıcı alanı olacak şekilde döndürülür. Bu yanıttaki kullanıcıların devam listesi için nextPageToken var. Varsayılan olarak sistem, kullanıcının e-posta adresinin alfabetik sırasına göre 100 kullanıcının listesini döndürür:

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

Başarılı bir yanıt, HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte example.com alanında 2 kullanıcı hesabı döndürür (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"
}

Tüm hesap kullanıcılarını alma

Birden fazla alandan oluşabilen bir hesaptaki tüm kullanıcıları almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. Okunabilirliği artırmak için bu örnekte satır sonları kullanılmıştır:

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
  • customer sorgu dizesi, my_customer veya customerId değeridir.
  • Hesabınızın customerId değerini temsil etmek için my_customer dizesini kullanın.
  • Bayi yöneticisi olarak, yeniden satılan müşterinin customerId'unu kullanın. customerId için Bir alandaki tüm kullanıcıları alma işleminin isteğinde hesabın birincil alan adını kullanın. Sonuçta elde edilen yanıt customerId değerine sahiptir.
  • İsteğe bağlı orderBy sorgu dizesi, listenin kullanıcının birincil e-posta adresine, soyadına veya adına göre sıralanıp sıralanmayacağını belirler. orderBy kullanırken sonuçları artan veya azalan düzende listelemek için sortOrder sorgu dizesini de kullanabilirsiniz.
  • İsteğe bağlı query sorgu dizesi, kullanıcı profilindeki birçok alanda (hem temel hem de özel alanlar dahil) arama yapılmasına olanak tanır. Örnekler için Kullanıcı Arama başlıklı makaleyi inceleyin.

İstek ve yanıt özellikleri için API Referansı'na bakın.

Bu örnekte, bir hesap yöneticisi, hesaptaki tüm kullanıcıların her yanıt sayfasında tek bir kullanıcı girişiyle döndürülmesini istiyor. nextPageToken, sonuçların devam sayfasına gider:

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

Bu örnekte, bir bayi yöneticisi, customerId değeri C03az79cb olan yeniden satılan bir hesaptaki tüm kullanıcıları istiyor.

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

JSON yanıtı

Başarılı bir yanıtta HTTP 200 durum kodu döndürülür. Yanıt, durum koduyla birlikte bu hesaptaki tüm kullanıcıları döndürür:

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

Yakın zamanda silinen kullanıcıları geri alma

Son 20 gün içinde bir hesaptan veya hesabın alanlarından birinden silinen tüm kullanıcıları almak için aşağıdaki GET isteklerini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. Bir kullanıcının silme işlemini geri almak için Kullanıcının silme işlemini geri alma başlıklı makaleyi inceleyin.

Son 20 gün içinde silinen kullanıcıları hesabın birincil alanından veya bir alt alanından almak için aşağıdaki GET isteğini kullanın. domain sorgu dizesi, alanın birincil alan adıdır. Kullanıcı isteği ve yanıt özellikleri için API Referansı'na bakın. Okunabilirlik için bu örnekte satır sonları kullanılmıştır:

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

Bir hesapta birden fazla alan varsa son 20 gün içinde silinen kullanıcıları hesabın tamamından almak için aşağıdaki GET isteğini kullanabilirsiniz. Okunabilirliği artırmak açısından bu örnekte satır sonları kullanılmıştır:

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
  • customer sorgu dizesi, my_customer veya customerId değeridir.
  • Hesap yöneticisi olarak, hesabınızın customerId değerini temsil etmek için my_customer dizesini kullanın.
  • Bayi yöneticisi olarak, yeniden satılan müşterinin customerId'unu kullanın. customerId için Bir alandaki tüm kullanıcıları alma işleminin isteğinde hesabın birincil alan adını kullanın. Sonuçta elde edilen yanıt customerId değerine sahiptir.

İstek ve yanıt özellikleri için API Referansı'na bakın.

Bu örnekte, bir hesap yöneticisi hesaptaki tüm silinmiş kullanıcıları istiyor:

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

JSON yanıtı

Başarılı bir yanıtta HTTP 200 durum kodu döndürülür. Yanıtta, durum koduyla birlikte son 20 gün içinde silinen tüm hesap kullanıcıları da döndürülür:

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

Kullanıcının fotoğrafını alma

API, en son Google profil fotoğrafı olan bir fotoğrafın küçük resmini alır. Kullanıcının en son fotoğrafını almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, kullanıcı id veya kullanıcının takma ad e-posta adreslerinden herhangi biri olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.

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

Bu örnekte, liz@example.com adlı kullanıcının en son fotoğrafı döndürülür:

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

JSON yanıtı

Başarılı bir yanıt, HTTP 200 durum kodu döndürür.

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

API'nin fotoğraflarınız için web'de güvenli Base64 kodlaması, RFC 4648 "base64url" ile benzerdir. Bunun anlamı şudur:

  • Eğik çizgi (/) karakteri, alt çizgi (_) karakteriyle değiştirilir.
  • Artı işareti (+) karakteri, tire (-) karakteriyle değiştirilir.
  • Eşittir işareti (=) karakteri, yıldız işareti (*) ile değiştirilir.
  • Doldurma için, doldurma amacıyla eşittir işaretini (=) kullanan RFC-4648 baseURL tanımı yerine nokta (.) karakteri kullanılır. Bu işlem, URL ayrıştırmayı basitleştirmek için yapılır.
  • Yüklenen fotoğrafın boyutu ne olursa olsun API, fotoğrafı orantılı olarak 96x96 piksel boyutuna küçültür.

JavaScript'ten uyumlu bağlantılar oluşturmanız gerekiyorsa Google Closure Library, Apache lisansı altında yayınlanan Base64 kodlama ve kod çözme işlevlerini içerir.

Kullanıcıyı yönetici olmayan bir kullanıcı olarak alma

Kullanıcı hesapları yalnızca yöneticiler tarafından değiştirilebilirken, alan adındaki tüm kullanıcılar kullanıcı profillerini okuyabilir. Yönetici olmayan bir kullanıcı, kullanıcının herkese açık profilini almak için viewType parametresi domain_public değerine eşit olan bir users.get veya users.list isteğinde bulunabilir. Kapsam https://www.googleapis.com/auth/admin.directory.user.readonly bu kullanım alanı için idealdir.

domain_public görünümü, yönetici olmayan bir kullanıcının temel alanların standart bir kümesine erişmesine izin verir. Özel bir alan için şemayı tanımlarken herkese açık mı yoksa özel mi olacağını seçebilirsiniz.

Kullanıcının fotoğrafını güncelleme

Kullanıcının fotoğrafını güncellemek için aşağıdaki PUT isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, kullanıcı id veya kullanıcı takma adlarının e-posta adreslerinden herhangi biri olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.

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

Bu örnekte, liz@example.com için fotoğraf güncellenir:

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

Fotoğraf güncellenirken height ve width, API tarafından yoksayılır.

JSON yanıtı

Başarılı bir yanıt, HTTP 200 durum kodu döndürür.

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

Kullanıcının fotoğrafını silme

Bir kullanıcının fotoğrafını silmek için aşağıdaki DELETE isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, kullanıcı id veya kullanıcı takma adlarının e-posta adreslerinden herhangi biri olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.

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

Silinen kullanıcı fotoğrafı gösterilmez. Kullanıcının fotoğrafının gerektiği her yerde bunun yerine siluet gösterilir.

Kullanıcı hesabını silme

Bir kullanıcı hesabını silmek için aşağıdaki DELETE isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, kullanıcının birincil e-posta adresi, benzersiz kullanıcı id veya kullanıcının takma ad e-posta adreslerinden biri olabilir. İstek ve yanıt özellikleri için API Referansı'na bakın.

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

Bu örnekte, liz@example.com kullanıcı hesabı siliniyor:

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

Başarılı bir yanıt, HTTP 200 durum kodu döndürür.

Bir kullanıcıyı silmeden önce aşağıdakileri göz önünde bulundurun:

  • Silinen kullanıcı artık oturum açamaz.
  • Kullanıcı hesabı silme hakkında daha fazla bilgi için Yönetim Yardım Merkezi'ne bakın.

Silinen kullanıcı hesabını geri alma

Son 20 gün içinde silinen bir kullanıcının hesabının geri yüklenebilmesi için belirli koşulları karşılaması gerekir.

Bir kullanıcı hesabının silinmesini geri almak için aşağıdaki POST isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi ekleyin. userKey, Son 20 gün içinde silinen kullanıcıları alma işleminin yanıtında bulunan benzersiz kullanıcı id'dır. Kullanıcının birincil e-posta adresi veya takma ad e-posta adreslerinden biri bu işlem için userKey içinde kullanılamaz. İstek ve yanıt özellikleri için API Referansı'na bakın.

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

Bu örnekte, liz@example.com kullanıcısının silme işlemi geri alınır. Bu kullanıcının önceki tüm hesap özellikleri geri yüklenir:

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

Başarılı bir yanıtta HTTP 204 durum kodu döndürülür. Silinmemiş kullanıcının hesabını görmek için Retrieve a user (Kullanıcıyı alma) işlemini kullanın.