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

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 अनुरोध

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

{
"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 Workspace खाते में बदल दिया जाएगा. खाते के पास, Drive की फ़ाइलों के लिए मौजूदा अनुमतियां बनी रहेंगी. विज़िटर के साथ दस्तावेज़ शेयर करना लेख पढ़ें.

अनुरोध पूरा होने पर, HTTP 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 का नाम "Elizabeth" से बदलकर "Liz" कर दिया गया है. साथ ही, इसमें घर का ईमेल पता भी जोड़ा गया है. ध्यान दें कि दोनों ईमेल पते पूरी तरह से दिए गए हैं, क्योंकि फ़ील्ड एक ऐरे है.

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 अनुरोध

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

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

अनुरोध पूरा होने पर, HTTP 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 का रिस्पॉन्स

अनुरोध पूरा होने पर, HTTP 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

अनुरोध पूरा होने पर, HTTP 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 क्वेरी स्ट्रिंग का इस्तेमाल करना ज़रूरी नहीं है. इसकी मदद से, उपयोगकर्ता की प्रोफ़ाइल के कई फ़ील्ड में खोज की जा सकती है. इनमें मुख्य और कस्टम फ़ील्ड, दोनों शामिल हैं. उदाहरणों के लिए, उपयोगकर्ताओं को खोजना लेख पढ़ें.

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

इस उदाहरण में, खाता एडमिन अनुरोध कर रहा है कि खाते में मौजूद सभी उपयोगकर्ताओं की जानकारी, हर रिस्पॉन्स पेज पर एक उपयोगकर्ता की एंट्री के साथ दिखाई जाए. 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 का रिस्पॉन्स

अनुरोध पूरा होने पर, HTTP 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 का रिस्पॉन्स

अनुरोध पूरा होने पर, HTTP 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 रिस्पॉन्स

अनुरोध पूरा होने पर, HTTP 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 एन्कोडिंग, RFC 4648 'base64url' के जैसी होती है. इसका मतलब है कि:

  • स्लैश (/) वर्ण की जगह अंडरस्कोर (_) वर्ण का इस्तेमाल किया जाता है.
  • प्लस साइन (+) वर्ण की जगह हाइफ़न (-) वर्ण का इस्तेमाल किया जाता है.
  • बराबर के चिह्न (=) की जगह तारांकन (*) का इस्तेमाल किया जाता है.
  • पैडिंग के लिए, RFC-4648 baseURL की परिभाषा के बजाय, अवधि (.) वर्ण का इस्तेमाल किया जाता है. 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 रिस्पॉन्स

अनुरोध पूरा होने पर, HTTP 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, यूनीक उपयोगकर्ता id होता है. यह पिछले 20 दिनों में मिटाए गए उपयोगकर्ताओं को वापस लाएं ऑपरेशन के जवाब में मिलता है. इस कार्रवाई के लिए, उपयोगकर्ता के मुख्य ईमेल पते या उसके किसी उपनाम वाले ईमेल पते का इस्तेमाल नहीं किया जा सकता.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 स्टेटस कोड मिलता है. मिटाए गए उपयोगकर्ता के खाते को वापस लाने के लिए, उपयोगकर्ता का डेटा वापस पाएं ऑपरेशन का इस्तेमाल करें.