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

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

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

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

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

अपने किसी डोमेन का इस्तेमाल करके उपयोगकर्ता खाता बनाने के लिए, नीचे दिए गए POST अनुरोध का इस्तेमाल करें. साथ ही, पुष्टि करने और अनुमति देने के बारे में जानें में दी गई अनुमति को शामिल करें. OAuth 2.0 स्कोप सूची में, डायरेक्ट्री एपीआई के लिए उपलब्ध स्कोप देखे जा सकते हैं. अनुरोध वाली क्वेरी स्ट्रिंग प्रॉपर्टी के लिए, 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 खाता नहीं है, तो उन्हें विज़िटर खाते का फ़ॉर्मैट s_username@your_domain.com मिलेगा. अगर आपने उसी उपयोगकर्ता नाम वाला कोई उपयोगकर्ता जोड़ा है जो विज़िटर खाता है, तो खाते को पूरे Google Workspace खाते में बदल दिया जाएगा. यह खाता, Drive में मौजूद फ़ाइलों की मौजूदा अनुमतियां बनाए रखेगा. वेबसाइट पर आने वाले लोगों के साथ दस्तावेज़ शेयर करना देखें.

सही जवाब एचटीटीपी 200 स्टेटस कोड दिखाता है. स्टेटस कोड के साथ, रिस्पॉन्स नए उपयोगकर्ता खाते के लिए प्रॉपर्टी दिखाता है.

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

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

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

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

अनुरोध का नमूना

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

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

नीचे दिया गया अनुरोध, givenName को "एलिज़ाबेथ" से बदलकर "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 अनुरोध

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

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

सही जवाब एचटीटीपी 200 स्टेटस कोड दिखाता है.

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

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

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

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

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

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

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

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

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

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

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

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

उपयोगकर्ता खातों में सिर्फ़ एडमिन बदलाव कर सकते हैं. हालांकि, डोमेन का कोई भी उपयोगकर्ता, उपयोगकर्ताओं की प्रोफ़ाइल पढ़ सकता है. जो उपयोगकर्ता एडमिन नहीं है वह किसी उपयोगकर्ता की सार्वजनिक प्रोफ़ाइल को वापस पाने के लिए, domain_public के बराबर viewType पैरामीटर के साथ 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

इस उदाहरण में, lila@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, यूनीक उपयोगकर्ता 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 स्टेटस कोड दिखाता है. मिटाए गए उपयोगकर्ता का खाता देखने के लिए, उपयोगकर्ता को वापस पाएं कार्रवाई का इस्तेमाल करें.