Kullanıcı hesaplarını yönetme

Directory API, kullanıcı oluşturmak, güncellemek ve silmek için programatik yöntemler sunar. Ayrıca, tekil kullanıcılar veya belirtilen ölçütleri karşılayan kullanıcıların 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-posta hesabına yükselttiyseniz ek Google Workspace ayarlarının kilidini açana kadar yeni kullanıcı hesabı oluşturamazsınız. Ayrıntılar için G Suite iş e-postası hesapları G Suite Basic olarak 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 edinin bölümünde açıklanan yetkilendirmeyi ekleyin. Directory API için kullanılabilen 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ı, seçtiğiniz dildeki veri nesnelerini JSON veri biçimli nesnelere dönüştürür.

JSON isteği

Aşağıdaki JSON, kullanıcı oluşturma isteğinin bir örneğini 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 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 eksponansiyel geri yükleme algoritması kullanın.

Yeni hesapla ilgili dikkat edilmesi gereken noktalar:

  • Google hesabı için posta lisansı 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.
  • İstekteki salt okunur bir alanın (ör. isAdmin) düzenlenmesi, API hizmeti tarafından sessizce yoksayılır.
  • Bir hesapta izin verilen maksimum alan adı sayısı 600'tür (1 birincil alan adı + 599 ek alan adı).
  • Kullanıcı hesabı oluşturulurken belirli bir kuruluş birimine atanmamışsa hesap üst düzey kuruluş birimindedir. Kullanıcının hangi Google Workspace hizmetlerine erişebileceğini kullanıcının kuruluş birimi 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 merkezine göz atın. Kullanıcıları farklı bir kuruluşa taşıma hakkında daha fazla bilgi için Kullanıcıları 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 ve 8-100 ASCII karakter uzunluğunda olmalıdır. Daha fazla bilgi için API Referansı'na bakın.
  • Google Workspace'in esnek planını kullananlar için bu API'yi kullanarak kullanıcı oluşturmak maddi açıdan etkili olacak ve müşteri faturalandırma hesabınızdan ödeme alınmasına neden olacaktır. Daha fazla bilgi için API faturalandırma bilgileri başlıklı makaleyi inceleyin.
  • Google Workspace hesabı, alanlarınızdan herhangi birini içerebilir. Birden fazla alan içeren hesaplarda, bir alandaki kullanıcılar diğer hesap alanlarındaki kullanıcılarla hizmet paylaşabilir. Birden fazla alandaki kullanıcılar hakkında daha fazla bilgi için API'nin birden fazla alanla ilgili bilgileri inceleyin.
  • Çakışan hesaplar olabilir. Eklemeyi planladığınız kişilerin zaten bir Google Hesabı 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, Drive'da ortak çalışmak üzere kuruluşunuzun dışından Google Hesabı olmayan kişileri davet ederse bu kişilere ziyaretçi_kullanıcı_adı@alanınız.com biçiminde ziyaretçi hesapları verilir. 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ıtta HTTP 200 durum kodu döndürülü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 destekler. Bu nedenle, isteğinizde yalnızca güncellenen alanları göndermeniz gerekir.

Örnek istek

Aşağıdaki örnekte, kullanıcı hesabı oluşturulduğunda kullanıcının givenName değeri "Ece" 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 istek, givenName değerini "Elizabeth" yerine "Liz" olarak 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ş alanları içeren bir User kaynağı döndürür.

Kullanıcının hesap adını güncellerken aşağıdakileri göz önünde bulundurun:

  • Bir kullanıcı hesabını yeniden adlandırdığınızda kullanıcının birincil e-posta adresi ve bu kullanıcının bilgileri alınırken kullanılan alan adı değişir. Kullanıcıyı yeniden adlandırmadan önce kullanıcının tüm tarayıcı oturumlarından ve hizmetlerinden çıkış yapmasını öneririz.
  • Bir kullanıcı hesabının yeniden adlandırılma işleminin tüm hizmetlere dağıtılması 10 dakikayı bulabilir.
  • Bir kullanıcıyı yeniden adlandırdığınızda, e-posta yönlendirme ayarları söz konusu olduğunda 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ği için kullanıcı e-posta adresini kalıcı veriler için anahtar olarak kullanmamanızı da öneririz.
  • Bir kullanıcının adını Google Workspace uygulamalarında değiştirmenin etkilerinin tam listesi için Yönetici Yardım Merkezi'ne bakı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 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. Süper yönetici hakkında daha fazla bilgi 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 değeri liz@example.com olan kullanıcı süper yönetici oldu:

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

Başarılı bir yanıtta HTTP 200 durum kodu döndürülü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. İşletmeler bu alanı genellikle yönetici-çalışan ve asistan ilişkileri için kullanır ancak bu alan diğer birçok ilişki türünü de destekler. İlişki, kartı destekleyen tüm Google Workspace uygulamalarında kullanıcının "İlişkili kişiler" kartında gösterilir. Kartın göründüğü yerlere dair ö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

Bir ilişkiyi, relations alanını içeren "sahip" kullanıcıdan başlayarak yalnızca tek bir yönde tanımlayabilirsiniz. type, diğer kişinin sahip olan kullanıcıyla olan ilişkisini tanımlar. Örneğin, yönetici-çalışan ilişkisinde çalışan sahip kullanıcıdır ve hesabına manager türüne sahip bir relations alanı eklersiniz. İzin verilen türler için User nesnesi referansına bakın.

relations alanını içeren bir JSON istek gövdesi kullanarak 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şkileri güncelleme veya silme

relations alanı yalnızca bir bütün olarak güncellenebilir. İlişki türünü değiştirmek veya listedeki kişileri kaldırmak için tek tek kişileri ele alamazsınız. Yukarıdaki örnekte, mevcut yönetici ilişkisini kaldırmak ve noktalı çizgiyle gösterilen yöneticiyi sahip kullanıcının yöneticisi yapmak için sahip kullanıcının hesabını, alanın tüm değerlerini istediğiniz şekilde 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 örnekte, birincil veya takma e-posta adresi liz@example.com olan kullanıcının kullanıcı hesabı özellikleri döndürülür:

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

JSON yanıtı

Başarılı bir yanıtta HTTP 200 durum kodu döndürülü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. Okunabilirliği artırmak 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ıyla döndürülür. Bu yanıtta, takip eden kullanıcı listesi için bir nextPageToken vardır. Sistem varsayılan olarak, kullanıcının e-posta adresine göre alfabetik olarak sıralanmış 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ıtta HTTP 200 durum kodu döndürülür. Yanıt, durum koduyla birlikte example.com alanındaki 2 kullanıcı hesabını (maxResults=2) 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 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 adresini 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. Elde edilen yanıtta customerId değeri bulunur.
  • İsteğe bağlı orderBy sorgu dizesi, listenin kullanıcının birincil e-posta adresine, soyadına veya adları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, hem temel hem de özel alanlar dahil olmak üzere 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 devamı olan sayfaya 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 bir bayi hesabındaki 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"
}

Kısa süre önce silinen kullanıcıları 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 silinmesini geri almak için Kullanıcı silme işlemini 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ı 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. Okunabilirliği artırmak 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 hesabın 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 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&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 adresini 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. Elde edilen yanıtta customerId değeri bulunur.

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

Bu örnekte, hesap yöneticisi hesaptaki tüm silinmiş 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ıtta HTTP 200 durum kodu döndürülü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"
}

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

API, en son Google profil fotoğrafı olan bir fotoğraf küçük resmi 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, id kullanıcısı veya kullanıcının takma ad e-postalarından 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 kullanıcısı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ıtta HTTP 200 durum kodu döndürülü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 kullandığı 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şaretiyle (*) değiştirilir.
  • Dolgu için, dolgu amacıyla eşit işareti (=) kullanan RFC-4648 baseURL tanımı yerine nokta (.) karakteri kullanılır. Bu, URL ayrıştırmayı basitleştirmek için yapılır.
  • API, yüklenen fotoğrafın boyutu ne olursa olsun fotoğrafı orantılı olarak 96x96 piksele küçültür.

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

Yönetici olmayan bir kullanıcıyı alma

Kullanıcı hesapları yalnızca yöneticiler tarafından değiştirilebilir ancak alan adındaki tüm kullanıcılar kullanıcı profillerini okuyabilir. Yönetici olmayan bir kullanıcı, bir kullanıcının herkese açık profilini almak için viewType parametresi domain_public olan bir users.get veya users.list isteği gönderebilir. 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 bir kullanıcının standart bir temel alan grubuna erişmesine izin verir. Özel bir alan için şemayı tanımlarken alanın herkese açık mı yoksa gizli mi olacağını seçebilirsiniz.

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ı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 e-posta adresine ait 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ıtta HTTP 200 durum kodu döndürülü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 dahil edin. userKey, kullanıcının birincil e-posta adresi, id kullanıcısı 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ıların fotoğrafları gösterilmez. Kullanıcının fotoğrafının gerekli olduğu her yerde bunun 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 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ı silinmiştir:

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

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

Kullanıcıyı silmeden önce dikkate alınması gereken önemli noktalar:

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

Kullanıcı hesabını silmeyi 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ı al işleminin yanıtında bulunan tekil kullanıcı id'tı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 silinmesi geri alınır. Bu kullanıcının önceki hesap mülkleri de 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 kodunu döndürür. Silinen kullanıcının hesabını görmek için Kullanıcıyı alma işlemini kullanın.