إدارة حسابات المستخدمين

توفّر Directory API طُرقًا آلية لإنشاء المستخدمين وتعديلهم وحذفهم. يمكنك أيضًا الحصول على معلومات عن مستخدمين فرديين أو قوائم بالمستخدمين الذين يستوفون معايير محدّدة. في ما يلي أمثلة على بعض العمليات الأساسية للمستخدمين.

إنشاء حساب مستخدم

يمكنك إضافة حساب مستخدم إلى أي من نطاقات حسابك على Google Workspace. قبل إضافة حساب مستخدم، عليك تأكيد ملكية النطاق .

إذا رقّيت حسابك الشخصي على Gmail إلى حساب بريد إلكتروني للعمل باستخدام اسم النطاق الخاص بك، لن تتمكّن من إنشاء حسابات مستخدمين جديدة إلى أن تفتح إعدادات إضافية في Google Workspace. لمعرفة التفاصيل، يُرجى الاطّلاع على حسابات البريد الإلكتروني للعمل في Google Workspace التي تم تعديلها.

لإنشاء حساب مستخدم باستخدام أحد نطاقاتك، استخدِم طلب 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، يجب أن تكون كلمة المرور مفتاح تجزئة صالحًا. إذا لم يتم تحديدها، يجب أن تكون كلمة المرور نصًا غير مرمّز وأن يتراوح عدد أحرف ASCII فيها بين 8 و100 حرف. لمزيد من المعلومات، يُرجى مراجعة مرجع واجهة برمجة التطبيقات.
  • بالنسبة إلى المستخدمين الذين يشتركون في خطة مرنة لـ 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 للمستخدم هو "Elizabeth" عند إنشاء حساب المستخدم، ولم يتم تقديم سوى عنوان بريد إلكتروني للعمل.

{
  "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" لتغيير دور المشرف، يُرجى مراجعة مركز مساعدة المشرف.

طلب 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 يتيح البطاقة. للاطّلاع على أمثلة عن الأماكن التي تظهر فيها البطاقة، يُرجى مراجعة إضافة معلومات إلى الملف الشخصي للمستخدم في "دليل 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",
   "suspensionTime": "2013-02-05T10:30:03.325Z",
   "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 الآمن على الويب لصورك في واجهة برمجة التطبيقات ترميز 'base64url' في RFC 4648. وهذا يعني ما يلي:

  • يتم استبدال الحرف المائل (/) بالحرف الشرطة السفلية (_).
  • يتم استبدال علامة الجمع (+) بالواصلة (-).
  • يتم استبدال علامة المساواة (=) بالنجمة (*).
  • بالنسبة إلى المساحة المتروكة، يتم استخدام النقطة (.) بدلاً من تعريف baseURL في RFC-4648 الذي يستخدم علامة المساواة (=) للمساحة المتروكة. يتم ذلك لتبسيط تحليل عناوين URL.
  • مهما كان حجم الصورة التي يتم تحميلها، تقلّل واجهة برمجة التطبيقات حجمها بشكل متناسب إلى 96 × 96 بكسل.

إذا كنت بحاجة إلى إنشاء روابط متوافقة من JavaScript، تتضمّن مكتبة Google Closure Library وظائف ترميز وفك ترميز 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. للاطّلاع على حساب المستخدم الذي تم استعادته ، استخدِم عملية استرداد مستخدم.