उपयोगकर्ता खाते प्रबंधित करें

Directory API, उपयोगकर्ताओं को बनाने, अपडेट करने, और मिटाने के लिए, प्रोग्राम के हिसाब से तरीके उपलब्ध कराता है. आपको अलग-अलग उपयोगकर्ताओं या तय की गई शर्तें पूरी करने वाले उपयोगकर्ताओं की सूचियों के बारे में भी जानकारी मिल सकती है. उपयोगकर्ता के कुछ बुनियादी कामों के उदाहरण यहां दिए गए हैं.

उपयोगकर्ता खाता बनाना

आपके पास अपने Google Workspace खाते के किसी भी डोमेन में उपयोगकर्ता खाता जोड़ने का विकल्प होता है. उपयोगकर्ता खाता जोड़ने से पहले, डोमेन के मालिकाना हक की पुष्टि करें.

अगर आपने अपने निजी Gmail खाते को अपने डोमेन नेम वाले कारोबार के ईमेल खाते में अपग्रेड किया है, तो Google Workspace की अन्य सेटिंग अनलॉक करने तक नए उपयोगकर्ता खाते नहीं बनाए जा सकते. ज़्यादा जानकारी के लिए, G Suite Business के ईमेल खातों को G Suite Basic पर अपडेट करना लेख पढ़ें.

अपने किसी डोमेन का इस्तेमाल करके उपयोगकर्ता खाता बनाने के लिए, यहां दिए गए POST अनुरोध का इस्तेमाल करें. साथ ही, पुष्टि और अनुमति के बारे में जानें में बताई गई अनुमति शामिल करें. OAuth 2.0 के स्कोप की सूची में, Directory API के लिए उपलब्ध स्कोप देखे जा सकते हैं. अनुरोध की क्वेरी स्ट्रिंग प्रॉपर्टी के लिए, users.insert() तरीका देखें.

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

किसी भी अनुरोध को पूरा करने के लिए, आपको उससे जुड़ी ज़रूरी जानकारी सबमिट करनी होगी. क्लाइंट लाइब्रेरी का इस्तेमाल करने पर, वे आपकी चुनी गई भाषा के डेटा ऑब्जेक्ट को JSON डेटा फ़ॉर्मैट वाले ऑब्जेक्ट में बदल देती हैं.

JSON अनुरोध

नीचे दिया गया JSON, उपयोगकर्ता बनाने के लिए अनुरोध का सैंपल दिखाता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी की पूरी सूची के लिए, एपीआई का रेफ़रंस देखें.

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

अगर कलेक्शन बनाने के अनुरोधों के लिए क्वेरी रेट बहुत ज़्यादा है, तो आपको एपीआई सर्वर से एचटीटीपी 503 रिस्पॉन्स मिल सकते हैं. इससे पता चलता है कि आपका कोटा पूरा हो गया है. अगर आपको ये जवाब मिलते हैं, तो अपने अनुरोधों को फिर से भेजने के लिए, एक्सपोनेंशियल बैक-ऑफ़ एल्गोरिदम का इस्तेमाल करें.

नए खाते के बारे में इन बातों का ध्यान रखें:

  • अगर Google खाते ने मेल के लाइसेंस खरीदे हैं, तो नए उपयोगकर्ता खाते को अपने-आप एक मेलबॉक्स असाइन हो जाता है. इस असाइनमेंट को पूरा होने और चालू होने में कुछ मिनट लग सकते हैं.
  • अनुरोध में रीड-ओनली फ़ील्ड, जैसे कि isAdmin में बदलाव करने पर, एपीआई सेवा इस बदलाव को अनदेखा कर देती है.
  • किसी खाते में ज़्यादा से ज़्यादा 600 डोमेन जोड़े जा सकते हैं. इसमें एक प्राइमरी डोमेन और 599 अन्य डोमेन शामिल हैं
  • अगर उपयोगकर्ता खाता बनाते समय, उपयोगकर्ता को किसी खास संगठन की इकाई में असाइन नहीं किया गया था, तो खाता संगठन की टॉप-लेवल इकाई में होता है. किसी उपयोगकर्ता की संगठन की इकाई तय करती है कि उसके पास Google Workspace की कौनसी सेवाओं का ऐक्सेस है. अगर उपयोगकर्ता को किसी नए संगठन में ले जाया जाता है, तो उपयोगकर्ता का ऐक्सेस बदल जाता है. संगठन के स्ट्रक्चर के बारे में ज़्यादा जानने के लिए, एडमिन से जुड़े सहायता केंद्र पर जाएं. किसी उपयोगकर्ता को किसी दूसरे संगठन में ले जाने के बारे में ज़्यादा जानकारी के लिए, उपयोगकर्ता की जानकारी अपडेट करना लेख पढ़ें.
  • नए उपयोगकर्ता खातों के लिए password की ज़रूरत होती है. अगर hashFunction दिया गया है, तो पासवर्ड एक मान्य हैश कुंजी होनी चाहिए. अगर इसकी जानकारी नहीं दी गई है, तो पासवर्ड साफ़ टेक्स्ट में होना चाहिए और इसमें 8 से 100 ASCII वर्ण होने चाहिए. ज़्यादा जानकारी के लिए, एपीआई रेफ़रंस देखें.
  • Google Workspace के फ़्लेक्सिबल प्लान का इस्तेमाल करने वाले उपयोगकर्ताओं के लिए, इस एपीआई का इस्तेमाल करके उपयोगकर्ता बनाने पर पैसों पर असर पड़ेगा. साथ ही, आपके ग्राहक के बिलिंग खाते से शुल्क लिया जाएगा. ज़्यादा जानकारी के लिए, एपीआई की बिलिंग की जानकारी देखें.
  • Google Workspace खाते में आपका कोई भी डोमेन शामिल हो सकता है. एक से ज़्यादा डोमेन वाले खाते में, एक डोमेन के उपयोगकर्ता दूसरे डोमेन के उपयोगकर्ताओं के साथ सेवाएं शेयर कर सकते हैं. एक से ज़्यादा डोमेन के उपयोगकर्ताओं के बारे में ज़्यादा जानने के लिए, एपीआई के एक से ज़्यादा डोमेन की जानकारी देखें.
  • ऐसा हो सकता है कि आपके पास दो खाते हों. देखें कि जिस व्यक्ति को जोड़ना है उसके पास पहले से Google खाता है या नहीं. इसके बाद, उन खातों से जुड़ी समस्याओं से बचने के लिए यह तरीका अपनाएं. एक ही नाम वाले खाते ढूंढना और उनका समाधान करना लेख पढ़ें.
  • इसमें ऐसे खाते भी शामिल हो सकते हैं जो आपके संगठन के सदस्यों के नहीं हैं. अगर उपयोगकर्ता, आपके संगठन से बाहर के ऐसे लोगों को Drive पर साथ मिलकर काम करने का न्योता भेजते हैं जिनके पास Google खाता नहीं है, तो उन्हें विज़िटर खाते मिलेंगे. इन खातों का फ़ॉर्मैट, visitor's_username@your_domain.com होगा. अगर आपने किसी उपयोगकर्ता को विज़िटर खाते के तौर पर उसी उपयोगकर्ता नाम से जोड़ा है जिसका इस्तेमाल वह अपने Google खाते में करता है, तो उस खाते को Google Workspace खाते में बदल दिया जाएगा. खाते के पास Drive की फ़ाइलों के लिए मौजूदा अनुमतियां बनी रहेंगी. विज़िटर के साथ दस्तावेज़ शेयर करना लेख पढ़ें.

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. स्टेटस कोड के साथ-साथ, रिस्पॉन्स में नए उपयोगकर्ता खाते की प्रॉपर्टी भी दिखती हैं.

उपयोगकर्ता खाता अपडेट करना

किसी उपयोगकर्ता खाते को अपडेट करने के लिए, नीचे दिए गए PUT अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताए गए अनुमति फ़ॉर्मैट का इस्तेमाल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, यूनीक उपयोगकर्ता id या उपयोगकर्ता का कोई उपनाम ईमेल पता हो सकता है.

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

अनुरोध और जवाब के मुख्य हिस्से, दोनों में User का एक इंस्टेंस होता है. हालांकि, Directory API में पैच सेमेंटेक्स की सुविधा काम करती है. इसलिए, आपको अपने अनुरोध में सिर्फ़ अपडेट किए गए फ़ील्ड सबमिट करने होंगे.

अनुरोध का सैंपल

नीचे दिए गए उदाहरण में, उपयोगकर्ता का givenName "एलिजाबेथ" था, जब उपयोगकर्ता का खाता बनाया गया था. साथ ही, सिर्फ़ काम से जुड़ा ईमेल पता दिया गया था.

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

नीचे दिए गए अनुरोध में, givenName का नाम "एलिजाबेथ" से बदलकर "लिज़" किया गया है. साथ ही, घर का ईमेल पता भी जोड़ा गया है. ध्यान दें कि दोनों ईमेल पते, फ़ील्ड के कलेक्शन के तौर पर दिए गए हैं.

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

सही तरीके से काम करने पर, जवाब के तौर पर HTTP 200 स्टेटस कोड और अपडेट किए गए फ़ील्ड वाला User संसाधन दिखता है.

किसी उपयोगकर्ता के खाते का नाम अपडेट करते समय, इन बातों का ध्यान रखें:

  • किसी उपयोगकर्ता खाते का नाम बदलने पर, उपयोगकर्ता का मुख्य ईमेल पता और उस उपयोगकर्ता की जानकारी पाने के लिए इस्तेमाल किया जाने वाला डोमेन बदल जाता है. हमारा सुझाव है कि किसी उपयोगकर्ता का नाम बदलने से पहले, उसे सभी ब्राउज़र सेशन और सेवाओं से साइन आउट कर दें.
  • किसी उपयोगकर्ता खाते का नाम बदलने के बाद, सभी सेवाओं में यह बदलाव दिखने में 10 मिनट लग सकते हैं.
  • किसी उपयोगकर्ता का नाम बदलने पर, उसका पुराना नाम उपनाम के तौर पर सेव रहता है. इससे, ईमेल फ़ॉरवर्ड करने की सेटिंग के मामले में, ईमेल की लगातार डिलीवरी की जा सकती है. साथ ही, यह नाम नए उपयोगकर्ता के नाम के तौर पर उपलब्ध नहीं होता.
  • आम तौर पर, हमारा सुझाव है कि उपयोगकर्ता के ईमेल पते को, हमेशा सेव रहने वाले डेटा के लिए कुंजी के तौर पर इस्तेमाल न करें. ऐसा इसलिए, क्योंकि ईमेल पता बदल सकता है.
  • Google Workspace के सभी ऐप्लिकेशन में किसी उपयोगकर्ता का नाम बदलने के असर की पूरी सूची के लिए, एडमिन सहायता केंद्र पर जाएं.

किसी उपयोगकर्ता को एडमिन बनाना

उपयोगकर्ता को सुपर एडमिन बनाने के लिए, यहां दिए गए POST अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, यूनीक उपयोगकर्ता id या उपयोगकर्ता का कोई दूसरा ईमेल पता हो सकता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी के लिए, एपीआई रेफ़रंस देखें. सुपर एडमिन के बारे में ज़्यादा जानकारी के लिए, एडमिन से जुड़े सहायता केंद्र पर जाएं.

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

JSON अनुरोध

इस उदाहरण में, जिस उपयोगकर्ता का userKey liz@example.com है वह सुपर एडमिन बन गया है:

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

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है.

उपयोगकर्ताओं के साथ संबंध मैनेज करना

Directory API, उपयोगकर्ताओं के बीच अलग-अलग तरह के संबंधों को तय करने के लिए relations फ़ील्ड का इस्तेमाल करता है. कारोबार की सेटिंग में, लोग आम तौर पर इस फ़ील्ड का इस्तेमाल, मैनेजर-कर्मचारी और सहायक के रिलेशनशिप के लिए करते हैं. हालांकि, इस फ़ील्ड में कई अन्य तरह के रिलेशनशिप भी जोड़े जा सकते हैं. यह संबंध, कार्ड के साथ काम करने वाले किसी भी Google Workspace ऐप्लिकेशन में, उपयोगकर्ता के "मिलते-जुलते लोग" कार्ड में दिखता है. कार्ड कहां दिखता है, इसके उदाहरणों के लिए, किसी उपयोगकर्ता की डायरेक्ट्री प्रोफ़ाइल में जानकारी जोड़ना लेख पढ़ें.

उपयोगकर्ताओं के बीच संबंध बनाना

रिलेशनशिप को सिर्फ़ एक दिशा में तय किया जा सकता है. इसके लिए, "मालिकाना हक" वाले उस उपयोगकर्ता से शुरू करें जिसके रिकॉर्ड में relations फ़ील्ड शामिल है. type से पता चलता है कि उस व्यक्ति का, मालिकाना हक रखने वाले उपयोगकर्ता से क्या संबंध है. उदाहरण के लिए, मैनेजर-कर्मचारी के संबंध में, कर्मचारी मालिकाना हक वाला उपयोगकर्ता होता है और आपने उसके खाते में manager टाइप के साथ relations फ़ील्ड जोड़ा है. अनुमति वाले टाइप के लिए, User ऑब्जेक्ट का रेफ़रंस देखें.

मालिकाना हक वाले उपयोगकर्ता को बनाकर या अपडेट करके रिलेशनशिप सेट अप करें. इसके लिए, relations फ़ील्ड वाला JSON अनुरोध बॉडी इस्तेमाल करें. एक अनुरोध में कई संबंध बनाए जा सकते हैं.

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

किसी संबंध की जानकारी अपडेट करना या मिटाना

relations फ़ील्ड को सिर्फ़ एक साथ अपडेट किया जा सकता है. आपके पास, सूची में शामिल किसी व्यक्ति के साथ संबंध का टाइप बदलने या उसे हटाने का विकल्प नहीं है. ऊपर दिए गए उदाहरण में, मौजूदा मैनेजर के संबंध को हटाने और बिंदु वाली लाइन वाले मैनेजर को मालिकाना हक वाले उपयोगकर्ता का मैनेजर बनाने के लिए, मालिकाना हक वाले उपयोगकर्ता के खाते को फ़ील्ड की सभी वैल्यू के साथ अपडेट करें.

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

मालिकाना हक वाले उपयोगकर्ता के सभी संबंधों को हटाने के लिए, relations को खाली पर सेट करें:

{
  "relations": []
}

किसी उपयोगकर्ता की जानकारी वापस पाना

किसी उपयोगकर्ता को वापस लाने के लिए, यहां दिए गए GET अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, यूनीक उपयोगकर्ता id या उपयोगकर्ता का कोई दूसरा ईमेल पता हो सकता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

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

यह उदाहरण, उस उपयोगकर्ता के लिए उपयोगकर्ता खाते की प्रॉपर्टी दिखाता है जिसका मुख्य या उपनाम वाला ईमेल पता liz@example.com है:

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

JSON का रिस्पॉन्स

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. स्टेटस कोड के साथ-साथ, रिस्पॉन्स में उपयोगकर्ता खाते की प्रॉपर्टी भी दिखती हैं.

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

किसी डोमेन के सभी उपयोगकर्ताओं की जानकारी पाना

एक ही डोमेन के सभी उपयोगकर्ताओं की जानकारी पाने के लिए, यहां दिए गए GET अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताए गए अनुमति फ़ॉर्मैट का इस्तेमाल करें. इस उदाहरण में, आसानी से पढ़ने के लिए लाइन रिटर्न का इस्तेमाल किया गया है:

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*

अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

JSON का रिस्पॉन्स

इस उदाहरण में, example.com डोमेन के सभी उपयोगकर्ताओं को हर रिस्पॉन्स पेज पर, ज़्यादा से ज़्यादा दो उपयोगकर्ता डोमेन के साथ दिखाया जाता है. इस रिस्पॉन्स में, उपयोगकर्ताओं की फ़ॉलो-अप सूची के लिए nextPageToken है. डिफ़ॉल्ट रूप से, सिस्टम 100 उपयोगकर्ताओं की सूची दिखाता है. यह सूची, उपयोगकर्ता के ईमेल पते के अंग्रेज़ी वर्णमाला के क्रम में होती है:

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

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. स्टेटस कोड के साथ-साथ, जवाब में example.com डोमेन (maxResults=2) में दो उपयोगकर्ता खाते दिखते हैं:

{
 "kind": "directory#users",
 "users": [
  {
   "kind": "directory#user",
   "id": "the unique user id",
   "primaryEmail": "liz@example.com",
   "name": {
    "givenName": "Liz",
    "familyName": "Smith",
    "fullName": "Liz Smith"
   },
   "isAdmin": true,
   "isDelegatedAdmin": false,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": false,
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "ims": [
    {
     "type": "work",
     "protocol": "gtalk",
     "im": "lizim@talk.example.com",
     "primary": true
    }
   ],
   "emails": [
    {
     "address": "liz@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "addresses": [
    {
     "type": "work",
     "customType": "",
     "streetAddress": "1600 Amphitheatre Parkway",
     "locality": "Mountain View",
     "region": "CA",
     "postalCode": "94043"
    }
   ],
   "externalIds": [
    {
     "value": "employee number",
     "type": "custom",
     "customType": "office"
    }
   ],
   "organizations": [
    {
     "name": "Google Inc.",
     "title": "SWE",
     "primary": true,
     "customType": "",
     "description": "Software engineer"
    }
   ],
   "phones": [
    {
     "value": "+1 nnn nnn nnnn",
     "type": "work"
    }
   ],
   "aliases": [
    "lizsmith@example.com",
    "lsmith@example.com"
   ],
   "nonEditableAliases": [
    "liz@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  },
  {
   "kind": "directory#user",
   "id": "user unique ID",
   "primaryEmail": "admin2@example.com",
   "name": {
    "givenName": "admin",
    "familyName": "two",
    "fullName": "admin two"
   },
   "isAdmin": true,
   "isDelegatedAdmin": true,
   "lastLoginTime": "2013-02-05T10:30:03.325Z",
   "creationTime": "2010-04-05T17:30:04.325Z",
   "agreedToTerms": true,
   "hashFunction": "SHA-1",
   "suspended": true,
   "suspensionReason": "ADMIN",
   "changePasswordAtNextLogin": false,
   "ipWhitelisted": false,
   "emails": [
    {
     "address": "admin2@example.com",
     "type": "work",
     "customType": "",
     "primary": true
    }
   ],
   "externalIds": [
    {
     "value": "contractor license number",
     "type": "custom",
     "customType": "work"
    }
   ],
   "aliases": [
    "second_admin@example.com"
   ],
   "nonEditableAliases": [
    "admin@test.com"
   ],
   "customerId": "C03az79cb",
   "orgUnitPath": "corp/engineering",
   "isMailboxSetup": true,
   "includeInGlobalAddressList": true
  }
 ],
 "nextPageToken": "next page token"
}

खाते के सभी उपयोगकर्ताओं की जानकारी पाना

एक से ज़्यादा डोमेन वाले खाते के सभी उपयोगकर्ताओं को वापस पाने के लिए, यहां दिए गए GET अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताए गए अनुमति फ़ॉर्मैट का इस्तेमाल करें. इस उदाहरण में, आसानी से पढ़ने के लिए लाइन रिटर्न का इस्तेमाल किया गया है:

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 क्वेरी स्ट्रिंग, my_customer या customerId वैल्यू होती है.
  • अपने खाते के customerId को दिखाने के लिए, स्ट्रिंग my_customer का इस्तेमाल करें.
  • रीसेलर एडमिन के तौर पर, फिर से बेचे गए ग्राहक के customerId का इस्तेमाल करें. customerId के लिए, किसी डोमेन के सभी उपयोगकर्ताओं की जानकारी पाएं ऑपरेशन के अनुरोध में, खाते के प्राइमरी डोमेन नेम का इस्तेमाल करें. रिस्पॉन्स में customerId वैल्यू दिखती है.
  • orderBy क्वेरी स्ट्रिंग (ज़रूरी नहीं) से यह तय होता है कि सूची को उपयोगकर्ता के मुख्य ईमेल पते, उपनाम या नाम के हिसाब से क्रम में लगाया जाए या नहीं. orderBy का इस्तेमाल करते समय, नतीजों को बढ़ते या घटते क्रम में दिखाने के लिए, sortOrder क्वेरी स्ट्रिंग का भी इस्तेमाल किया जा सकता है.
  • query क्वेरी स्ट्रिंग की मदद से, उपयोगकर्ता की प्रोफ़ाइल में कई फ़ील्ड में खोज की जा सकती है. इसमें मुख्य और कस्टम, दोनों फ़ील्ड शामिल हैं. हालांकि, query क्वेरी स्ट्रिंग का इस्तेमाल करना ज़रूरी नहीं है. उदाहरण के लिए, उपयोगकर्ताओं को खोजें देखें.

अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

इस उदाहरण में, खाते का एडमिन अनुरोध कर रहा है कि खाते के सभी उपयोगकर्ताओं की जानकारी, हर रिस्पॉन्स पेज पर एक उपयोगकर्ता की एंट्री के साथ दिखाई जाए. nextPageToken, नतीजों के फ़ॉलो-ऑन पेज पर ले जाता है:

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

इस उदाहरण में, रीसेलर एडमिन, फिर से बेचे गए उस खाते के सभी उपयोगकर्ताओं से अनुरोध कर रहा है जिसमें customerId की वैल्यू C03az79cb है.

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

JSON का रिस्पॉन्स

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. स्टेटस कोड के साथ-साथ, रिस्पॉन्स में इस खाते के सभी उपयोगकर्ताओं की जानकारी दिखती है:

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

हाल ही में मिटाए गए उपयोगकर्ताओं को वापस लाना

किसी खाते या उसके किसी डोमेन से, पिछले 20 दिनों में मिटाए गए सभी उपयोगकर्ताओं को वापस लाने के लिए, यहां दिए गए GET अनुरोधों का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. किसी उपयोगकर्ता को वापस लाने के लिए, किसी उपयोगकर्ता को वापस लाना लेख पढ़ें.

खाते के प्राइमरी डोमेन या सबडोमेन से पिछले 20 दिनों में मिटाए गए उपयोगकर्ताओं को वापस लाने के लिए, यहां दिए गए GET अनुरोध का इस्तेमाल करें. domain क्वेरी स्ट्रिंग, डोमेन का प्राइमरी डोमेन नेम है. उपयोगकर्ता के अनुरोध और रिस्पॉन्स प्रॉपर्टी के लिए, एपीआई का रेफ़रंस देखें. इस उदाहरण में, टेक्स्ट को आसानी से पढ़ने के लिए, लाइन रिटर्न का इस्तेमाल किया गया है:

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
अगर किसी खाते में एक से ज़्यादा डोमेन हैं, तो पूरे खाते से पिछले 20 दिनों में मिटाए गए उपयोगकर्ताओं को वापस लाया जा सकता है. इसके लिए, नीचे दिए गए GET अनुरोध का इस्तेमाल करें. इस उदाहरण में, आसानी से पढ़ने के लिए लाइन रिटर्न का इस्तेमाल किया गया है:
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 क्वेरी स्ट्रिंग, my_customer या customerId वैल्यू होती है.
  • खाते के एडमिन के तौर पर, अपने खाते के customerId को दिखाने के लिए स्ट्रिंग my_customer का इस्तेमाल करें.
  • रीसेलर एडमिन के तौर पर, फिर से बेचे गए ग्राहक के customerId का इस्तेमाल करें. customerId के लिए, किसी डोमेन के सभी उपयोगकर्ताओं की जानकारी पाएं ऑपरेशन के अनुरोध में, खाते के प्राइमरी डोमेन नेम का इस्तेमाल करें. रिस्पॉन्स में customerId वैल्यू दिखती है.

अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

इस उदाहरण में, खाते का एडमिन खाते से मिटाए गए सभी उपयोगकर्ताओं को वापस लाने का अनुरोध कर रहा है:

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

JSON का रिस्पॉन्स

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है. स्टेटस कोड के साथ-साथ, रिस्पॉन्स में पिछले 20 दिनों में मिटाए गए खाते के सभी उपयोगकर्ताओं की जानकारी दिखती है:

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

उपयोगकर्ता की फ़ोटो वापस लाना

एपीआई, Google की प्रोफ़ाइल फ़ोटो का थंबनेल दिखाता है. उपयोगकर्ता की सबसे नई फ़ोटो वापस पाने के लिए, यहां दिए गए GET अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, उपयोगकर्ता id या उपयोगकर्ता का कोई दूसरा ईमेल पता हो सकता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

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

इस उदाहरण में, liz@example.com की नई फ़ोटो दिख रही है:

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

JSON रिस्पॉन्स

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है.

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

एपीआई की मदद से, आपकी फ़ोटो को वेब के हिसाब से सुरक्षित तरीके से base64 कोड में बदलने की सुविधा, आरएफ़सी 4648 'base64url' से मिलती-जुलती है. इसका मतलब है:

  • स्लैश (/) वर्ण को अंडरस्कोर (_) वर्ण से बदल दिया जाता है.
  • प्लस साइन (+) वर्ण को हाइफ़न (-) वर्ण से बदल दिया जाता है.
  • बराबर के चिह्न (=) को तारे के निशान (*) से बदल दिया जाता है.
  • पैडिंग के लिए, RFC-4648 baseURL की परिभाषा के बजाय, पीरियड (.) वर्ण का इस्तेमाल किया जाता है. पैडिंग के लिए, बराबर के निशान (=) का इस्तेमाल किया जाता है. ऐसा यूआरएल-पार्सिंग को आसान बनाने के लिए किया जाता है.
  • अपलोड की जा रही फ़ोटो का साइज़ चाहे जो भी हो, एपीआई उसे 96x96 पिक्सल के हिसाब से छोटा कर देता है.

अगर आपको JavaScript से काम करने वाले लिंक बनाने हैं, तो Google Closure Library में Base64 कोड में बदलने और उसे डिकोड करने वाले फ़ंक्शन शामिल हैं. ये फ़ंक्शन, Apache लाइसेंस के तहत रिलीज़ किए गए हैं.

किसी उपयोगकर्ता को एडमिन के तौर पर वापस लाना

उपयोगकर्ता खातों में सिर्फ़ एडमिन बदलाव कर सकते हैं. हालांकि, डोमेन का कोई भी उपयोगकर्ता, उपयोगकर्ता प्रोफ़ाइलें पढ़ सकता है. एडमिन के अलावा कोई भी उपयोगकर्ता, किसी उपयोगकर्ता की सार्वजनिक प्रोफ़ाइल को फिर से पाने के लिए, viewType पैरामीटर को domain_public के बराबर रखकर, users.get या users.list अनुरोध कर सकता है. इस्तेमाल के इस उदाहरण के लिए, https://www.googleapis.com/auth/admin.directory.user.readonly का स्कोप सबसे सही है.

domain_public व्यू की मदद से, एडमिन के अलावा अन्य उपयोगकर्ता भी मुख्य फ़ील्ड का स्टैंडर्ड सेट ऐक्सेस कर सकते हैं. स्कीमा तय करते समय, कस्टम फ़ील्ड के लिए यह चुना जा सकता है कि उसे सार्वजनिक या निजी के तौर पर सेट किया जाए.

उपयोगकर्ता की फ़ोटो अपडेट करना

किसी उपयोगकर्ता की फ़ोटो अपडेट करने के लिए, यहां दिए गए PUT अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, उपयोगकर्ता id या उपयोगकर्ता के किसी भी उपनाम का ईमेल पता हो सकता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

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

इस उदाहरण में, liz@example.com की फ़ोटो अपडेट की गई है:

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

फ़ोटो अपडेट करते समय, एपीआई height और width को अनदेखा कर देता है.

JSON रिस्पॉन्स

अनुरोध पूरा होने पर, एचटीटीपी 200 स्टेटस कोड दिखता है.

{
 "kind": "directory#user#photo",
 "id": "the unique user id",
 "primaryEmail": "liz@example.com",
 "mimeType": "the photo mime type",
 "height": "the photo height in pixels",
 "width": "the photo width in pixels",
 "photoData": "web safe base64 encoded photo data"
}

किसी उपयोगकर्ता की फ़ोटो मिटाना

किसी उपयोगकर्ता की फ़ोटो मिटाने के लिए, नीचे दिए गए DELETE अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, उपयोगकर्ता id या उपयोगकर्ता के किसी भी उपनाम का ईमेल पता हो सकता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

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

फ़ोटो मिटाने के बाद, वह उपयोगकर्ता को नहीं दिखती. जहां भी उपयोगकर्ता की फ़ोटो ज़रूरी होगी वहां इसके बजाय सिलूएट दिखाया जाएगा.

किसी उपयोगकर्ता खाते को मिटाना

किसी उपयोगकर्ता खाते को मिटाने के लिए, यहां दिए गए DELETE अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, उपयोगकर्ता का मुख्य ईमेल पता, यूनीक उपयोगकर्ता id या उपयोगकर्ता का कोई दूसरा ईमेल पता हो सकता है. अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

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

इस उदाहरण में, liz@example.com उपयोगकर्ता खाता मिटा दिया गया है:

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

अनुरोध पूरा होने पर, सिर्फ़ एचटीटीपी 200 स्टेटस कोड दिखता है.

किसी उपयोगकर्ता को मिटाने से पहले, इन बातों का ध्यान रखें:

  • मिटाए गए उपयोगकर्ता के पास अब लॉग इन करने का विकल्प नहीं होगा.
  • उपयोगकर्ता खाता मिटाने के बारे में ज़्यादा जानकारी के लिए, कृपया एडमिन सहायता केंद्र पर जाएं.

किसी उपयोगकर्ता खाते को वापस लाना

पिछले 20 दिनों में मिटाए गए उपयोगकर्ता के खाते को वापस लाने के लिए, उपयोगकर्ता को कुछ शर्तें पूरी करनी होंगी.

किसी उपयोगकर्ता खाते को मिटाए जाने से पहले जैसा किया गया था उसे वापस लाने के लिए, नीचे दिए गए POST अनुरोध का इस्तेमाल करें. साथ ही, अनुरोधों को अनुमति दें में बताई गई अनुमति शामिल करें. userKey, पिछले 20 दिनों में मिटाए गए उपयोगकर्ताओं को वापस लाने वाले ऑपरेशन के जवाब में मिला यूनीक उपयोगकर्ता id है. इस कार्रवाई के लिए, userKey में उपयोगकर्ता के मुख्य ईमेल पते या उसके किसी उपनाम वाले ईमेल पते का इस्तेमाल नहीं किया जा सकता. अनुरोध और रिस्पॉन्स प्रॉपर्टी के बारे में जानने के लिए, एपीआई का रेफ़रंस देखें.

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

इस उदाहरण में, liz@example.com उपयोगकर्ता को वापस लाया गया है. इस उपयोगकर्ता के पुराने खाते की सभी प्रॉपर्टी वापस लाई जाती हैं:

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

सफल रिस्पॉन्स में सिर्फ़ एचटीटीपी 204 स्टेटस कोड दिखता है. जिस उपयोगकर्ता का खाता मिटाया नहीं गया है उसे देखने के लिए, उपयोगकर्ता को वापस लाना विकल्प का इस्तेमाल करें.