توفّر Directory API طرقًا آلية لإنشاء المستخدمين وتعديلهم وحذفهم. يمكنك أيضًا الحصول على معلومات حول مستخدمين فرديين أو قوائم مستخدمين يستوفون معايير محدّدة. في ما يلي أمثلة على بعض عمليات المستخدم الأساسية.
إنشاء حساب مستخدم
يمكنك إضافة حساب مستخدم إلى أي من نطاقات حسابك على Google Workspace. قبل إضافة حساب مستخدم، عليك تأكيد ملكية النطاق.
إذا تمت ترقية حسابك الشخصي على Gmail إلى حساب بريد إلكتروني للنشاط التجاري باستخدام اسم النطاق الخاص بك، لن تتمكّن من إنشاء حسابات مستخدمين جديدة إلى أن تفتح إعدادات إضافية في Google Workspace. للاطّلاع على التفاصيل، راجِع تحديث حسابات البريد الإلكتروني للنشاط التجاري في G Suite إلى حسابات G Suite الأساسية.
لإنشاء حساب مستخدم باستخدام أحد نطاقاتك، استخدِم طلب POST التالي وأضِف التفويض الموضّح في التعرّف على المصادقة والتفويض. يمكنك الاطّلاع على النطاقات المتاحة لواجهة Directory API في قائمة نطاقات 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 }
إذا كان معدّل طلبات البحث لطلبات الإنشاء مرتفعًا جدًا، قد تتلقّى استجابات HTTP 503 من خادم واجهة برمجة التطبيقات تشير إلى أنّه تم تجاوز الحصة المسموح بها. إذا تلقّيت هذه الردود، استخدِم خوارزمية التراجع الأسي لإعادة محاولة طلباتك.
في ما يلي ملاحظات حول الحساب الجديد:
- إذا كان حساب Google قد اشترى تراخيص بريد، يتم تلقائيًا منح حساب المستخدم الجديد صندوق بريد. قد يستغرق إكمال عملية الربط وتفعيلها بضع دقائق.
- تتجاهل خدمة واجهة برمجة التطبيقات بصمت تعديل حقل للقراءة فقط في الطلب، مثل
isAdmin. - الحد الأقصى لعدد النطاقات المسموح بها في الحساب هو 600 نطاق (نطاق أساسي واحد + 599 نطاقًا إضافيًا).
- إذا لم يتم تعيين مستخدم لوحدة تنظيمية معيّنة عند إنشاء حساب المستخدم، يكون الحساب في الوحدة التنظيمية ذات المستوى الأعلى. تحدِّد الوحدة التنظيمية للمستخدم خدمات Google Workspace التي يمكنه الوصول إليها. في حال نقل المستخدم إلى مؤسسة جديدة، تتغيّر أذونات الوصول الخاصة به. لمزيد من المعلومات حول بنى المؤسسات، يُرجى الاطّلاع على مركز مساعدة المشرفين. لمزيد من المعلومات حول نقل مستخدم إلى مؤسسة مختلفة، يُرجى الاطّلاع على تعديل مستخدم.
- يجب توفير
passwordلحسابات المستخدمين الجدد. في حال تحديدhashFunction، يجب أن تكون كلمة المرور مفتاح تجزئة صالحًا. في حال عدم تحديدها، يجب أن تكون كلمة المرور نصًا عاديًا وأن تتراوح بين 8 و100 حرف ASCII. لمزيد من المعلومات، يُرجى الاطّلاع على مرجع واجهة برمجة التطبيقات. - بالنسبة إلى المستخدمين الذين لديهم خطة مرنة في Google Workspace، سيؤدي إنشاء مستخدمين باستخدام واجهة برمجة التطبيقات هذه إلى تأثير مالي، وسيؤدي إلى فرض رسوم على حساب الفوترة الخاص بالعميل. لمزيد من المعلومات، يُرجى الاطّلاع على معلومات فوترة واجهة برمجة التطبيقات.
- يمكن أن يتضمّن حساب Google Workspace أيًا من نطاقاتك. في حساب بنطاقات متعددة، يمكن للمستخدمين في أحد النطاقات مشاركة الخدمات مع المستخدمين في نطاقات الحساب الأخرى. لمزيد من المعلومات حول المستخدمين في نطاقات متعددة، يُرجى الاطّلاع على معلومات النطاقات المتعددة في واجهة برمجة التطبيقات.
- قد تكون هناك حسابات متضاربة. تحقَّق مما إذا كان أي شخص تخطط لإضافته لديه حساب Google أم لا. بعد ذلك، اتّبِع الخطوات لتجنُّب التعارض مع هذه الحسابات. راجِع العثور على الحسابات المتضاربة وحلّها.
- قد تكون هناك حسابات زوّار. إذا دعا المستخدمون أشخاصًا من خارج مؤسستك لا يملكون حسابات Google للتعاون في Drive، سيتلقّون حسابات ضيوف بالتنسيق 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 من "إليزابيث" إلى "ليز"،
ويضيف أيضًا عنوان بريد إلكتروني للمنزل. يُرجى العِلم أنّه يتم تقديم كلا عنوانَي البريد الإلكتروني بشكل كامل لأنّ الحقل عبارة عن مصفوفة.
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
}تعرض الاستجابة الناجحة رمز الحالة HTTP 200.
إدارة علاقات المستخدمين
تستخدم Directory API الحقل relations لتحديد أنواع مختلفة من العلاقات بين المستخدمين. في بيئة العمل، يستخدم الأشخاص عادةً هذا الحقل لتحديد علاقات المدير بالموظف والمساعد، ولكن يمكن استخدام الحقل لتحديد أنواع أخرى من العلاقات أيضًا. تظهر العلاقة في بطاقة "الأشخاص المرتبطون" الخاصة بالمستخدم في أي تطبيق من تطبيقات Google Workspace يتيح استخدام البطاقة. للاطّلاع على أمثلة على الأماكن التي تظهر فيها البطاقة، يُرجى الاطّلاع على مقالة إضافة معلومات إلى الملف الشخصي للمستخدم في الدليل.
إنشاء علاقة بين المستخدمين
يمكنك تحديد علاقة في اتجاه واحد فقط، بدءًا من المستخدم "المالك" الذي يتضمّن سجله الحقل relations. تصف السمة type
علاقة الشخص الآخر بالمستخدم المالك. على سبيل المثال، في علاقة بين مدير وموظف، يكون الموظف هو المستخدم المالك، وتضيف حقل relations إلى حسابه من النوع manager. للاطّلاع على الأنواع المسموح بها، راجِع مرجع عنصر 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
تعرض الاستجابة الناجحة رمز الحالة 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. - استخدِم السلسلة
my_customerلتمثيلcustomerIdحسابك. - بصفتك مشرفًا لدى مورِّد، استخدِم
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
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. - بصفتك مشرف حساب، استخدِم السلسلة
my_customerلتمثيلcustomerIdفي حسابك. - بصفتك مشرفًا لدى مورِّد، استخدِم
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 الذي يستخدم علامة المساواة (=) للمساحة المتروكة. يتم ذلك لتبسيط عملية تحليل عناوين URL.
- بغض النظر عن حجم الصورة التي يتم تحميلها، تقلّل واجهة برمجة التطبيقات حجمها بشكل متناسب إلى 96x96 بكسل.
إذا كنت بحاجة إلى إنشاء روابط متوافقة من JavaScript، تتضمّن مكتبة Google Closure وظائف ترميز وفك ترميز Base64 التي يتم إصدارها بموجب ترخيص Apache.
استرداد مستخدم كغير مشرف
في حين لا يمكن تعديل حسابات المستخدمين إلا من قِبل المشرفين، يمكن لأي مستخدم على النطاق قراءة ملفات تعريف المستخدمين. يمكن لمستخدم غير مشرف إرسال طلب users.get أو users.list مع ضبط المَعلمة viewType على domain_public لاسترداد الملف الشخصي العلني للمستخدم. يُعد النطاق
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
لا تعرض الاستجابة الناجحة سوى رمز الحالة HTTP 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
لا تعرض الاستجابة الناجحة سوى رمز الحالة HTTP 204. للاطّلاع على حساب المستخدم الذي لم يتم حذفه، استخدِم عملية استرداد مستخدم.