Kullanıcı hesaplarını yönetme

Directory API, kullanıcıları oluşturmak, güncellemek ve silmek için programatik yöntemler sunar. Ayrıca, bireysel kullanıcılar veya belirli ölçütlere uyan kullanıcı listeleri hakkında bilgi edinebilirsiniz. Aşağıda, bazı temel kullanıcı işlemlerine ö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ıza sahip bir iş e-postası hesabına yükselttiyseniz ek Google Workspace ayarlarının kilidini açana kadar yeni kullanıcı hesapları oluşturamazsınız. Ayrıntılar için, G Suite iş e-postası hesapları G Suite Basic olarak güncellendi başlıklı makaleye göz atın.

Alanlarınızdan birini kullanarak bir kullanıcı hesabı oluşturmak için aşağıdaki POST isteğini kullanın ve Kimlik doğrulama ve yetkilendirme hakkında daha fazla bilgi başlıklı makalede açıklanan yetkilendirmeyi dahil edin. Directory API için kullanılabilecek kapsamları OAuth 2.0 kapsamları listesinde görebilirsiniz. İstek sorgu 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 yerine getirmek için gereken bilgileri göndermeniz gerekir. İstemci kitaplıkları kullanıyorsanız bu kitaplıklar, seçtiğiniz dildeki veri nesnelerini JSON veri biçimlendirilmiş nesnelere dönüştürür.

JSON isteği

Aşağıdaki JSON'da, kullanıcı oluşturmak için örnek bir istek gösterilmektedir. İ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 oranı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 üstel geri çekilme algoritması kullanın.

Yeni bir hesapla ilgili göz önünde bulundurulması gereken noktalar şunlardır:

  • Google hesabı posta lisansları satın aldıysa yeni kullanıcı hesabına otomatik olarak bir posta kutusu atanır. Bu ödevin tamamlanması ve etkinleştirilmesi birkaç dakika sürebilir.
  • İstekteki salt okunur bir alanın (ör. isAdmin) düzenlenmesi, API hizmeti tarafından sessizce yoksayılır.
  • Bir hesapta izin verilen maksimum alan sayısı 600'dür (1 birincil alan + 599 ek alan adı)
  • Kullanıcı, kullanıcı hesabı oluşturulduğunda belirli bir kuruluş birimine atanmadıysa hesap en ü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 kullanıcının erişimi değişir. Kuruluş yapıları hakkında daha fazla bilgi edinmek için yönetim yardım merkezine göz atın. Kullanıcıyı farklı bir kuruluşa taşıma hakkında daha fazla bilgi edinmek için Kullanıcı güncelleme başlıklı makaleyi inceleyin.
  • Yeni kullanıcı hesapları için password gereklidir. Bir hashFunction belirtilirse şifrenin geçerli bir karma anahtarı olması gerekir. Belirtilmezse şifre, düz metinden oluşmalı ve 8-100 ASCII karakter uzunluğunda olmalıdır. Daha fazla bilgi için API Referansı'na bakın.
  • Google Workspace'te esnek plan kullanan kullanıcılar için bu API'yi kullanarak kullanıcı oluşturmanın maddi etkisi olur ve müşteri faturalandırma hesapları için ücret alınmasına neden olur. Daha fazla bilgi için API faturalandırma bilgilerini inceleyin.
  • Bir Google Workspace hesabı, alanlarınızın herhangi birini içerebilir. Birden fazla alan adı hesabında, bir alan adındaki kullanıcılar hizmetleri başka hesap alan adlarındaki kullanıcılarla paylaşabilir. Birden fazla alandaki kullanıcılar hakkında daha fazla bilgi edinmek için API çoklu alan bilgileri başlıklı makaleyi inceleyin.
  • Çakışan hesaplar olabilir. Eklemeyi planladığınız kişilerin zaten Google Hesabı olup olmadığını kontrol edin. Ardından, bu hesaplarla çakışma olmaması için adımları uygulayın. Çakışan hesapları bulma ve çözme başlıklı makaleyi inceleyin.
  • Ziyaretçi hesapları olabilir. Kullanıcılar Drive'da ortak çalışmak için Google Hesabı olmayan kuruluşunuz dışındaki kişileri davet ederse bu kişiler ziyaretçi_adı@alan_adiniz.com.tr biçiminde ziyaretçi hesapları alır. Ziyaretçi hesabıyla aynı kullanıcı adına sahip bir kullanıcı eklerseniz hesap tam Google Workspace hesabına dönüştürülür. Hesap, geçerli Drive dosya izinlerini korur. Ziyaretçilerle doküman paylaşma başlıklı makaleyi inceleyin.

Başarılı bir yanıt, bir HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte yeni kullanıcı hesabına ilişkin özellikleri 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 dahil edin. 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 gövdesi, User öğesinin bir örneğini içerir. Ancak Directory API, yama semantiğini desteklediğinden isteğinizde yalnızca güncellenmiş alanları göndermeniz gerekir.

Örnek istek

Aşağıdaki örnekte, kullanıcı hesabı oluşturulduğunda kullanıcının givenName adresi "Elif" idi ve yalnızca bir iş e-posta adresi sağlanmıştı.

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

Aşağıdaki istekte "Elizabeth" olan givenName değeri "Liz" olarak güncellenir ve ev e-posta adresi de eklenir. 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, güncellenmiş alanlara sahip bir HTTP 200 durum kodu ve User kaynağı döndürür.

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

  • Bir kullanıcı hesabını yeniden adlandırmak, kullanıcının birincil e-posta adresini ve bilgilerini alırken kullanılan alan adını değiştirir. Bir kullanıcıyı yeniden adlandırmadan önce, kullanıcının tüm tarayıcı oturumlarını ve hizmetlerini kapatmanızı öneririz.
  • Bir kullanıcı hesabını yeniden adlandırma işleminin tüm hizmetlere yayılması 10 dakika kadar sürebilir.
  • Bir kullanıcıyı yeniden adlandırdığınızda, e-posta yönlendirme ayarlarında sürekli posta dağıtımının yapılmasını sağlamak için eski kullanıcı adı takma ad olarak korunur ve yeni bir kullanıcı adı olarak kullanılamaz.
  • E-posta adresi değişebileceğinden, genel olarak kullanıcı e-posta adresinin kalıcı veriler için anahtar olarak kullanılmamasını öneririz.
  • Bir kullanıcıyı Google Workspace uygulamalarında yeniden adlandırmanın etkilerinin tam listesi için Yönetici yardım merkezine göz atın.

Bir kullanıcıyı yönetici yapma

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 dahil edin. 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. Süper yönetici hakkında daha fazla bilgi edinmek için yönetim yardım merkezine göz atın.

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

JSON isteği

Bu örnekte, userKey numarası 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, bir HTTP 200 durum kodu döndürür.

Kullanıcı ilişkilerini yönetme

Directory API, kullanıcılar arasında farklı ilişki türlerini tanımlamak için relations alanını kullanır. İşletme ortamında, kullanıcılar bu alanı yönetici-çalışan ve asistan ilişkileri için genellikle kullanır. Ancak alan, diğer birçok türü de desteklemektedir. İ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üğü yerlere ilişkin örnekler için Kullanıcının Dizin profiline bilgi ekleme başlıklı makaleye bakın.

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

Kaydı relations alanını içeren "sahip" kullanıcıdan başlayarak yalnızca tek yönlü bir ilişki tanımlayabilirsiniz. type, diğer kişinin sahip kullanıcıyla olan ilişkisini açıklar. Örneğin, 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.

Sahip kullanıcıyı, relations alanını içeren bir JSON istek gövdesiyle oluşturarak veya güncelleyerek ilişkiyi kurun. Tek bir istekte birden çok 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

relations alanını yalnızca bir bütün olarak güncelleyebilirsiniz. İlişki türünü değiştirmek veya kaldırmak için listelenen kişilere tek tek hitap edemezsiniz. Yukarıdaki örnekte, mevcut yönetici ilişkisini kaldırmak ve noktalı çizgili yöneticiyi sahip kullanıcının yöneticisi yapmak için sahip kullanıcının hesabını, alanın tüm değerleriyle artık istediğiniz gibi güncelleyin.

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

Sahibi kullanıcının tüm ilişkilerini kaldırmak için relations öğesini boş olarak ayarlayın:

{
  "relations": []
}

Bir 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 dahil edin. 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, bir HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte kullanıcı hesabına ilişkin özellikleri 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ı geri almak için aşağıdaki GET isteğini kullanın ve İstekleri yetkilendirme bölümünde açıklanan yetkilendirmeyi dahil edin. Okunabilirlik için bu örnekte satır sonuçları kullanılmaktadı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 adıyla döndürülür. Bu yanıttaki takip edilecek kullanıcı listesi için bir nextPageToken mevcut. Varsayılan olarak, sistem 100 kullanıcının listesini kullanıcının e-posta adresine göre alfabetik sırada döndürür:

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

Başarılı bir yanıt, bir HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte example.com alanında (maxResults=2) 2 kullanıcı hesabı döndürür:

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

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 dahil edin. Okunabilirlik için bu örnekte satır sonuçları kullanılmaktadı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 dizesini temsil etmek için my_customer dizesini kullanın.
  • Bayi yöneticisi olarak, yeniden satış yapılan müşterinin customerId özelliğini kullanın. customerId için, Bir alan adındaki 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, aile adına veya verilen 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, temel ve özel alanlar da dahil olmak üzere bir kullanıcı profilindeki birçok alanda arama yapılmasına olanak tanır. Örnekler için Kullanıcı Arama bölümüne bakın.

İ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 bir kullanıcı girişiyle döndürülmesini istemektedir. nextPageToken, sonuçların takip 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ışı yapılmış bir hesaptaki tüm kullanıcıları istemektedir.

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

JSON yanıtı

Başarılı bir yanıt, bir HTTP 200 durum kodu döndürü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ı al

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

Hesabın birincil alanından veya alt alan adından son 20 gün içinde silinen kullanıcıları geri 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 açısından bu örnekte satır sonları kullanılmaktadı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ı tüm hesaptan geri alabilirsiniz. Bunun için aşağıdaki GET isteğini kullanın. Okunabilirlik için şu örnekte satır sonuçları kullanılmaktadı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 dizesini temsil etmek için my_customer dizesini kullanın.
  • Bayi yöneticisi olarak, yeniden satış yapılan müşterinin customerId özelliğini kullanın. customerId için, Bir alan adındaki 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 silinmiş tüm kullanıcıları istemektedir:

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

JSON yanıtı

Başarılı bir yanıt, bir HTTP 200 durum kodu döndürür. Yanıt, durum koduyla birlikte son 20 gün içinde silinen tüm hesap kullanıcılarını döndürü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"
}

Bir kullanıcının fotoğrafını alma

API bir fotoğraf küçük resmi, en son Google profil fotoğrafı 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 dahil edin. userKey; kullanıcının birincil e-posta adresi, id kullanıcısı veya kullanıcının takma ad e-postalarından 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, bir 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"
}

Fotoğraflarınızı API'nin web 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, kısa çizgi (-) karakteriyle değiştirilir.
  • Eşittir işareti (=) karakteri yıldız (*) ile değiştirilir.
  • Dolgu için, dolgu için eşittir işareti (=) kullanan RFC-4648 temel URL tanımı yerine nokta (.) karakteri kullanılır. Bunun amacı URL ayrıştırmayı basitleştirmektir.
  • Yüklenen fotoğrafın boyutu ne olursa olsun API, fotoğrafı 96x96 piksele orantılı olarak küçültür.

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

Bir kullanıcıyı yönetici olmayan kullanıcı olarak alma

Kullanıcı hesapları yalnızca yöneticiler tarafından değiştirilebilir. Ancak, alandaki 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. https://www.googleapis.com/auth/admin.directory.user.readonly kapsamı bu kullanım alanı için idealdir.

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

Bir kullanıcının fotoğrafını güncelleme

Bir 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, id kullanıcısı veya kullanıcı takma adlarından herhangi biri e-posta adresi 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 adlı kullanıcının 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"
}

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

JSON Yanıtı

Başarılı bir yanıt, bir 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"
}

Bir 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, id kullanıcısı veya kullanıcı takma adlarından herhangi biri e-posta adresi 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ının fotoğrafı gösterilmez. Kullanıcının fotoğrafı gereken her yerde, profil resmi yerine bir silüet 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 dahil edin. 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ı silinmiştir:

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

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

Bir kullanıcıyı silmeden önce dikkat etmeniz gereken önemli noktalar:

  • Silinen kullanıcı artık giriş yapamaz.
  • Kullanıcı hesabı silme hakkında daha fazla bilgi edinmek için lütfen yönetim yardım merkezine bakın.

Kullanıcı hesabını silme işlemini 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 dahil edin. userKey, Son 20 gün içinde silinen kullanıcıları al işleminin yanıtında bulunan benzersiz id kullanıcısıdır. Kullanıcının birincil e-posta adresi veya kullanıcının 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 adlı kullanıcıyı silme işlemi geri alındı. Bu kullanıcının önceki hesap mülklerinin tümü geri yüklenir:

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

Başarılı bir yanıt yalnızca HTTP 204 durum kodu döndürür. Silme işlemi geri alınan kullanıcı hesabını görmek için Kullanıcı alma işlemini kullanın.