Directory API, उपयोगकर्ताओं को बनाने, अपडेट करने, और मिटाने के लिए प्रोग्रामैटिक तरीके उपलब्ध कराता है. आपको उन उपयोगकर्ताओं या उपयोगकर्ताओं की सूचियों के बारे में भी जानकारी मिल सकती है जो तय की गई शर्तों को पूरा करते हैं. यहां उपयोगकर्ता के कुछ बुनियादी ऑपरेशनों के उदाहरण दिए गए हैं.
उपयोगकर्ता खाता बनाना
अपने Google Workspace खाते के किसी भी डोमेन में, उपयोगकर्ता खाता जोड़ा जा सकता है. उपयोगकर्ता खाता जोड़ने से पहले, डोमेन के मालिकाना हक की पुष्टि करें.
अगर आपने अपने निजी Gmail खाते को अपने डोमेन नाम से कारोबार के ईमेल खाते में अपग्रेड किया है, तो Google Workspace की अतिरिक्त सेटिंग अनलॉक किए बिना, नए उपयोगकर्ता खाते नहीं बनाए जा सकते. ज़्यादा जानकारी के लिए, Google Workspace के Business ईमेल खातों को अपडेट किया गया लेख पढ़ें.
अपने किसी डोमेन का इस्तेमाल करके उपयोगकर्ता खाता बनाने के लिए, यहां दिया गया POST अनुरोध इस्तेमाल करें. साथ ही, पुष्टि करने और अनुमति देने के बारे में जानें में बताई गई अनुमति को शामिल करें.
Directory API के लिए उपलब्ध स्कोप देखने के लिए, OAuth 2.0 स्कोप की सूची पर जाएं.
अनुरोध क्वेरी स्ट्रिंग प्रॉपर्टी के लिए, 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 की फ़ाइलों की मौजूदा अनुमतियां बनी रहती हैं. विज़िटर के साथ दस्तावेज़ शेयर करना लेख पढ़ें.
अनुरोध पूरा होने पर, एचटीटीपी 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
किसी उपयोगकर्ता को सुपर एडमिन बनाने से पहले, उसका खाता होना ज़रूरी है. यह कार्रवाई सिर्फ़ खाते का सुपर एडमिन कर सकता है. जिन एडमिन को यह ज़िम्मेदारी सौंपी गई है वे उपयोगकर्ताओं को एडमिन की भूमिकाएं नहीं दे सकते. एडमिन की भूमिका बदलने के लिए, Google Admin console का इस्तेमाल करने के बारे में जानकारी पाने के लिए, एडमिन सहायता केंद्र पर जाएं.
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क्वेरी स्ट्रिंग की मदद से, उपयोगकर्ता की प्रोफ़ाइल में मौजूद कई फ़ील्ड में खोज की जा सकती है. इनमें मुख्य और कस्टम फ़ील्ड, दोनों शामिल हैं. उदाहरणों के लिए, उपयोगकर्ताओं को खोजना लेख पढ़ें.
अनुरोध और रिस्पॉन्स प्रॉपर्टी के लिए, एपीआई के बारे में जानकारी देखें.
इस उदाहरण में, खाता एडमिन अनुरोध कर रहा है कि खाते में मौजूद सभी उपयोगकर्ताओं की जानकारी, हर जवाब पेज पर एक उपयोगकर्ता की एंट्री के साथ दिखाई जाए. 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 एन्कोडिंग, 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 का रिस्पॉन्स
अनुरोध पूरा होने पर, एचटीटीपी 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 स्टेटस कोड मिलता है. उपयोगकर्ता का वह खाता देखने के लिए जिसे नहीं मिटाया गया है, उपयोगकर्ता का डेटा वापस पाएं ऑपरेशन का इस्तेमाल करें.