توفر واجهة برمجة التطبيقات للدليل طرقًا برمجية لإنشاء المستخدمين وتحديثهم وحذفهم. يمكنك أيضًا الحصول على معلومات حول المستخدمين الفرديين أو قوائم المستخدمين الذين يستوفون معايير محدّدة. في ما يلي أمثلة لبعض عمليات المستخدمين الأساسية.
إنشاء حساب مستخدم
يمكنك إضافة حساب مستخدم إلى أي من نطاقات حسابك على Google Workspace. قبل إضافة حساب مستخدم، أكِّد ملكية النطاق.
في حال ترقية حسابك الشخصي على Gmail إلى حساب بريد إلكتروني للنشاط التجاري باستخدام اسم نطاقك الخاص، لا يمكنك إنشاء حسابات مستخدمين جديدة حتى يتم فتح قفل إعدادات Google Workspace الإضافية. لمعرفة التفاصيل، يُرجى الاطِّلاع على حسابات البريد الإلكتروني للنشاط التجاري على G Suite التي تم تحديثها إلى "G Suite الأساسية".
لإنشاء حساب مستخدم باستخدام أحد نطاقاتك، استخدم طلب POST
التالي وأدرِج التفويض الموضح في معلومات عن المصادقة والتفويض. يمكنك عرض النطاقات المتاحة لواجهة برمجة تطبيقات الدليل في قائمة نطاقات OAuth 2.0. بالنسبة إلى خصائص سلسلة طلب البحث، راجِع طريقة users.insert()
.
POST https://admin.googleapis.com/admin/directory/v1/users
تتطلب منك جميع طلبات الإنشاء إرسال المعلومات اللازمة لتنفيذ الطلب. إذا كنت تستخدم مكتبات العملاء، فإنها تحوّل كائنات البيانات من اللغة التي اخترتها إلى كائنات JSON بتنسيق البيانات 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
من خادم واجهة برمجة التطبيقات (API) مما يشير إلى تجاوز حصتك. إذا تلقّيت هذه الردود، استخدِم خوارزمية التراجع الأسي لإعادة محاولة تقديم الطلبات.
في ما يلي بعض الملاحظات حول الحساب الجديد:
- إذا اشترى حساب Google تراخيص البريد، فسيتم تعيين صندوق بريد لحساب المستخدم الجديد تلقائيًا. قد يستغرق إكمال هذه المهمة الدراسية وتفعيلها بضع دقائق.
- تتجاهل خدمة واجهة برمجة التطبيقات عملية تعديل حقل للقراءة فقط في أحد الطلبات، مثل
isAdmin
. - الحد الأقصى لعدد النطاقات المسموح بها في الحساب هو 600 نطاق (نطاق أساسي واحد + 599 نطاقًا إضافيًا)
- إذا لم يتم تعيين مستخدم إلى وحدة تنظيمية محددة عند إنشاء حساب المستخدم، يكون الحساب في الوحدة التنظيمية ذات المستوى الأعلى. تحدِّد الوحدة التنظيمية للمستخدم خدمات Google Workspace التي يمكن للمستخدم الوصول إليها. إذا تم نقل المستخدم إلى مؤسسة جديدة، فسيتغير حق وصول المستخدم. لمزيد من المعلومات حول بنى المؤسسات، راجع مركز المساعدة الإدارية. لمزيد من المعلومات حول نقل مستخدم إلى مؤسسة مختلفة، راجع تحديث مستخدم.
- يلزم وجود
password
لحسابات المستخدمين الجديدة. في حال تحديدhashFunction
، يجب أن تكون كلمة المرور مفتاح تجزئة صالحًا. وفي حال لم يتم تحديد كلمة المرور، يجب أن تكون كلمة المرور بنص واضح وأن يتراوح عدد أحرفها بين 8 أحرف و100 حرف ASCII. لمزيد من المعلومات، راجع مرجع واجهة برمجة التطبيقات. - بالنسبة إلى المستخدمين المشتركين في خطة مرنة لـ Google Workspace، سيكون لإنشاء حسابات مستخدمين باستخدام واجهة برمجة التطبيقات هذه تأثير مالي، وسيؤدي إلى تحصيل رسوم من حساب فوترة العميل. لمزيد من المعلومات، راجع معلومات فوترة واجهة برمجة التطبيقات.
- يمكن أن يتضمّن حساب Google Workspace أيًا من نطاقاتك. في حساب متعدد النطاقات، يمكن للمستخدمين في نطاق واحد مشاركة الخدمات مع المستخدمين في نطاقات الحساب الأخرى. لمزيد من المعلومات عن المستخدمين في نطاقات متعددة، راجع معلومات عن نطاقات متعددة لواجهة برمجة التطبيقات.
- قد تكون هناك حسابات متضاربة. تحقق لمعرفة ما إذا كان أي شخص تخطط لإضافته لديه حساب Google أم لا. ثم اتبع الخطوات لتجنب التعارض مع هذه الحسابات. يُرجى الاطِّلاع على العثور على الحسابات المتضاربة وحلّها.
- قد يكون هناك حسابات زائرين. إذا دعا المستخدمون أشخاصًا من خارج مؤسستك ليس لديهم حسابات على Google للتعاون في Drive، سيحصلون على حسابات الزوّار بالتنسيق " .ser@username@your_domain.com". وفي حال أضفت مستخدمًا يحمل اسم المستخدم نفسه المستخدَم في حساب الزائر، سيتم تحويل الحساب إلى حساب كامل في Google Workspace. وسيحتفظ الحساب بأذوناته الحالية لملف Drive. راجع مشاركة المستندات مع الزوّار.
تعرض الاستجابة الناجحة رمز حالة HTTP 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
من "إليزابيث" إلى "ليز"، كما تتم إضافة عنوان بريد إلكتروني للمنزل. لاحظ أن كلا عنواني البريد الإلكتروني يتم تقديمهما بالكامل
لأن الحقل مصفوفة.
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.
إدارة علاقات المستخدمين
تستخدم "واجهة برمجة تطبيقات الدليل" الحقل 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إذا كان الحساب يحتوي على عدة نطاقات، يمكنك استرداد المستخدمين الذين تم حذفهم خلال فترة الـ 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
. - بصفتك مشرفًا للحساب، استخدِم السلسلة
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'. وفي ما يلي تأثير ذلك عليك:
- ويتم استبدال الشرطة المائلة (/) بحرف الشرطة السفلية (_).
- يتم استبدال حرف علامة الجمع (+) بحرف الواصلة (-).
- يتم استبدال علامة يساوي (=) بعلامة النجمة (*).
- بالنسبة إلى المساحة المتروكة، يتم استخدام حرف النقطة (.) بدلاً من تعريف baseURL لـ RFC-4648 الذي يستخدم علامة يساوي (=) للمساحة المتروكة. ويتم ذلك لتبسيط تحليل عنوان URL.
- وأيًا كان حجم الصورة التي يتم تحميلها، تعمل واجهة برمجة التطبيقات على تقليل حجمها بالتناسب إلى 96×96 بكسل.
إذا كنت تريد إنشاء روابط متوافقة من 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. للاطلاع على حساب المستخدم الذي لم يتم حذفه، استخدم عملية استرداد مستخدم.