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 ö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 bir 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ı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 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 istekleri için isteği karşılamak üzere gereken bilgileri göndermeniz gerekir. İstemci kitaplıklarını kullanıyorsanız bu kitaplıklar, seçtiğiniz dildeki veri nesnelerini biçimlendirilmiş JSON veri nesnelerine dönüştürür.

JSON isteği

Aşağıdaki JSON'da kullanıcı oluşturmaya yönelik ö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 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 hesapla ilgili dikkat edilmesi gereken noktalar:

  • 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 yoksayılır.
  • Bir hesapta izin verilen maksimum alan adı sayısı 600'dü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. 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önetici Yardım Merkezi'ne bakın. Bir kullanıcıyı 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 gerekir. 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 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. Çok alanlı 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 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 yapmaya davet ederse bu kişiler, ziyaretçi_kullanıcı_adı@alan_adınız.com 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, 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 de 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 bir 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ında yeniden adlandırılmasının 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 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 için yönetim yardım merkezine bakın.

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

JSON isteği

Bu örnekte, userKey adresi 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

Yalnızca bir yönde ilişki tanımlayabilirsiniz. Bu ilişki, kaydında relations alanı bulunan "sahip" kullanıcıdan başlar. type diğer kişinin sahip olan kullanıcıyla ilişkisini açıklar. Örneğin, yönetici-çalışan ilişkisinde çalışan, sahip olan 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 olan 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ı bir bütün olarak güncellenebilir. İlişki türünü değiştirmek veya kişileri kaldırmak için listedeki her bir kullanıcıya ayrı ayrı erişemezsiniz. Yukarıdaki örnekte, mevcut yönetici ilişkisini kaldırmak ve noktalı çizgiyle belirtilen 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 ö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 de 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 dahil edin. 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
?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 takip listesi için nextPageToken bulunmaktadır. 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",
   "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 alan adından 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 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
&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ın değeri customerId olur.
  • İ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, hem temel hem de özel alanlar dahil olmak üzere bir kullanıcı profilindeki birçok alanda 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ıt 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ı geri alma

Bir hesaptan veya hesabın alanlarından birinden son 20 gün içinde 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. Silinen bir kullanıcıyı geri yüklemek için Silinen bir kullanıcıyı geri yükleme başlıklı makaleyi inceleyin.

Son 20 gün içinde hesabın birincil alanından veya bir alt alanından 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 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'ını 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ın değeri customerId olur.

İ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ıt 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"
}

Kullanıcı 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 adresinin 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 kullandığı 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 (+) karakterinin yerini tire (-) karakteri alır.
  • 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, 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ı kapsamı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, alandaki herhangi bir kullanıcı kullanıcı profillerini okuyabilir. Yönetici olmayan bir kullanıcı, viewType parametresi domain_public değerine eşit olan bir users.get veya users.list isteğinde bulunarak kullanıcının herkese açık profilini alabilir. Bu kullanım alanı için https://www.googleapis.com/auth/admin.directory.user.readonly kapsamı idealdir.

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

Kullanıcı 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 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 API, height ve width değerlerini yoksayar.

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 dahil edin. 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ıların fotoğrafları gösterilmez. Kullanıcının fotoğrafının gerekli olduğu her yerde bunun yerine bir 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 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ı silinir:

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 dikkat edilmesi gereken önemli noktalar:

  • Silinen kullanıcı artık giriş yapamaz.
  • Kullanıcı hesabı silme hakkında daha fazla bilgi için lütfen yönetim yardım merkezine 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ıt yalnızca HTTP 204 durum kodunu döndürür. Silinmemiş kullanıcının hesabını görmek için Kullanıcıyı alma işlemini kullanın.