مدیریت حساب های کاربری

Directory API روش های برنامه نویسی را برای ایجاد، به روز رسانی و حذف کاربران ارائه می دهد. شما همچنین می توانید اطلاعاتی در مورد کاربران فردی یا لیست کاربرانی که معیارهای مشخص شده را دارند به دست آورید. در زیر نمونه هایی از برخی از عملیات اساسی کاربر آورده شده است.

یک حساب کاربری ایجاد کنید

می توانید یک حساب کاربری به هر یک از دامنه های حساب Google Workspace خود اضافه کنید. قبل از افزودن حساب کاربری، مالکیت دامنه را تأیید کنید.

اگر حساب Gmail شخصی خود را به یک حساب ایمیل تجاری با نام دامنه خود ارتقا دهید، تا زمانی که تنظیمات اضافی Google Workspace را باز نکنید، نمی توانید حساب های کاربری جدیدی ایجاد کنید. برای جزئیات، به حساب‌های ایمیل تجاری G Suite به‌روزرسانی شده به G Suite Basic مراجعه کنید.

برای ایجاد یک حساب کاربری با استفاده از یکی از دامنه های خود، از درخواست POST زیر استفاده کنید و مجوز شرح داده شده در اطلاعات مربوط به احراز هویت و مجوز را اضافه کنید. می‌توانید دامنه‌های موجود برای Directory API را در فهرست دامنه‌های OAuth 2.0 مشاهده کنید. برای خواص رشته درخواست درخواست، به متد users.insert() مراجعه کنید.

POST https://admin.googleapis.com/admin/directory/v1/users

همه درخواست‌های ایجاد نیاز دارند که اطلاعات مورد نیاز برای انجام درخواست را ارسال کنید. اگر از کتابخانه های سرویس گیرنده استفاده می کنید، آنها اشیاء داده را از زبان انتخابی شما به اشیایی با فرمت داده JSON تبدیل می کنند.

درخواست JSON

JSON زیر یک درخواست نمونه برای ایجاد یک کاربر را نشان می دهد. برای فهرست کامل ویژگی‌های درخواست و پاسخ، به مرجع API مراجعه کنید.

{
"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 ، بی‌صدا توسط سرویس API نادیده گرفته می‌شود.
  • حداکثر تعداد دامنه های مجاز در یک حساب 600 (1 دامنه اصلی + 599 دامنه اضافی) است.
  • اگر کاربر در هنگام ایجاد حساب کاربری به واحد سازمانی خاصی اختصاص داده نشده باشد، حساب در واحد سازمانی سطح بالا قرار دارد. واحد سازمانی کاربر تعیین می‌کند که کاربر به کدام سرویس‌های Google Workspace دسترسی داشته باشد. اگر کاربر به یک سازمان جدید منتقل شود، دسترسی کاربر تغییر می کند. برای اطلاعات بیشتر درباره ساختارهای سازمانی، به مرکز راهنمایی مدیریت مراجعه کنید. برای اطلاعات بیشتر در مورد انتقال کاربر به سازمانی دیگر، به روز رسانی یک کاربر را ببینید.
  • password برای حساب های کاربری جدید مورد نیاز است. اگر یک hashFunction مشخص شده باشد، رمز عبور باید یک کلید هش معتبر باشد. اگر مشخص نشده باشد، رمز عبور باید به صورت متن واضح و بین 8 تا 100 کاراکتر اسکی باشد. برای اطلاعات بیشتر، به مرجع API مراجعه کنید.
  • برای کاربرانی که دارای یک طرح انعطاف‌پذیر برای Google Workspace هستند، ایجاد کاربران با استفاده از این API تأثیر پولی خواهد داشت و منجر به کسر هزینه از حساب صورت‌حساب مشتری شما می‌شود. برای اطلاعات بیشتر، به اطلاعات صورتحساب API مراجعه کنید.
  • حساب Google Workspace می‌تواند شامل هر یک از دامنه‌های شما باشد. در یک حساب دامنه چندگانه، کاربران در یک دامنه می توانند خدمات را با کاربران در دامنه های حساب دیگر به اشتراک بگذارند. برای اطلاعات بیشتر درباره کاربران در چندین دامنه، به اطلاعات دامنه چندگانه API مراجعه کنید.
  • ممکن است حساب های متناقضی وجود داشته باشد. بررسی کنید که آیا فردی که قصد اضافه کردن آن را دارید قبلاً یک حساب 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، به مرکز راهنمای Admin مراجعه کنید.

یک کاربر را مدیر کنید

برای تبدیل کاربر به یک سرپرست فوق‌العاده، از درخواست POST زیر استفاده کنید و مجوز شرح داده شده در درخواست‌های مجوز را وارد کنید. userKey می تواند آدرس ایمیل اصلی کاربر، id کاربری منحصر به فرد یا یکی از آدرس های ایمیل مستعار کاربر باشد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید. برای اطلاعات بیشتر در مورد یک سرپرست فوق العاده، به مرکز راهنمایی مدیریت مراجعه کنید.

POST https://admin.googleapis.com/admin/directory/v1/users/userKey/makeAdmin

درخواست JSON

در این مثال، کاربری که userKey آن liz@example.com است تبدیل به یک super administrator شده است:

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 کاربری منحصر به فرد یا یکی از آدرس های ایمیل مستعار کاربر باشد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

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*

برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

پاسخ JSON

در این مثال، همه کاربران در دامنه example.com با حداکثر 2 دامنه کاربر در هر صفحه پاسخ بازگردانده می شوند. یک nextPageToken برای لیست بعدی کاربران در این پاسخ وجود دارد. به طور پیش فرض، سیستم لیستی از 100 کاربر را به ترتیب حروف الفبا آدرس ایمیل کاربر برمی گرداند:

GET https://admin.googleapis.com/admin/directory/v1/users?domain=example.com&maxResults=2

یک پاسخ موفق یک کد وضعیت HTTP 200 را برمی گرداند. به همراه کد وضعیت، پاسخ 2 حساب کاربری را در دامنه 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 و جو اختیاری امکان جستجو در بسیاری از فیلدها در نمایه کاربر، از جمله فیلدهای اصلی و سفارشی را می دهد. برای مثال به جستجوی کاربران مراجعه کنید.

برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

در این مثال، یک مدیر حساب از همه کاربران در حساب درخواست می کند که با یک ورودی کاربر در هر صفحه پاسخ بازگردانده شوند. 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 ، نام دامنه اصلی دامنه است. برای مشخصات درخواست و پاسخ کاربر، به مرجع API مراجعه کنید. و برای خوانایی، این مثال از بازگشت خط استفاده می کند:

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 است.

برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

در این مثال، یک مدیر حساب از همه کاربران حذف شده در حساب درخواست می کند:

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"
}

بازیابی عکس کاربر

API یک عکس کوچک، آخرین عکس نمایه Google را بازیابی می کند. برای بازیابی آخرین عکس کاربر، از درخواست GET زیر استفاده کنید و مجوز شرح داده شده در درخواست‌های مجوز را وارد کنید. userKey می تواند آدرس ایمیل اصلی کاربر، id کاربری یا هر یک از ایمیل های مستعار کاربر باشد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

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 API برای عکس‌های شما مشابه RFC 4648 'base64url' است. این یعنی:

  • کاراکتر اسلش (/) با کاراکتر زیرخط (_) جایگزین می شود.
  • کاراکتر علامت مثبت (+) با کاراکتر خط فاصله (-) جایگزین می شود.
  • علامت مساوی (=) با ستاره (*) جایگزین می شود.
  • برای padding، از کاراکتر نقطه (.) به جای تعریف RFC-4648 baseURL استفاده می شود که از علامت تساوی (=) برای padding استفاده می کند. این کار برای ساده کردن تجزیه URL انجام می شود.
  • اندازه عکسی که آپلود می‌شود هرچه باشد، API آن را به 96x96 پیکسل کاهش می‌دهد.

اگر نیاز به ایجاد پیوندهای سازگار از جاوا اسکریپت دارید، کتابخانه بسته Google شامل توابع رمزگذاری و رمزگشایی Base64 است که تحت مجوز آپاچی منتشر شده است.

یک کاربر را به عنوان یک غیر سرپرست بازیابی کنید

در حالی که حساب‌های کاربری را فقط مدیران می‌توانند تغییر دهند، هر کاربری در دامنه می‌تواند نمایه‌های کاربر را بخواند. یک کاربر غیر ادمین می‌تواند یک درخواست users.get یا users.list با پارامتر viewType برابر domain_public برای بازیابی نمایه عمومی کاربر ارسال کند. محدوده https://www.googleapis.com/auth/admin.directory.user.readonly برای این مورد استفاده ایده آل است.

نمای domain_public به کاربر غیر ادمین اجازه دسترسی به مجموعه استانداردی از فیلدهای اصلی را می دهد. برای یک فیلد سفارشی، می‌توانید انتخاب کنید که در هنگام تعریف طرح، عمومی یا خصوصی باشد.

به روز رسانی عکس کاربر

برای به‌روزرسانی عکس کاربر، از درخواست PUT زیر استفاده کنید و مجوز شرح داده شده در درخواست‌های مجوز را اضافه کنید. userKey می تواند آدرس ایمیل اصلی کاربر، id کاربری یا هر یک از ایمیل های نام مستعار کاربر باشد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

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 توسط API نادیده گرفته می شود.

پاسخ 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 کاربری یا هر یک از ایمیل های نام مستعار کاربر باشد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

DELETE https://admin.googleapis.com/admin/directory/v1/users/userKey/photos/thumbnail

پس از حذف، عکس کاربر نشان داده نمی شود. هر جا که عکس کاربر مورد نیاز باشد، به جای آن یک شبح نمایش داده می شود.

یک حساب کاربری را حذف کنید

برای حذف یک حساب کاربری، از درخواست DELETE زیر استفاده کنید و مجوز شرح داده شده در درخواست‌های مجوز را وارد کنید. userKey می تواند آدرس ایمیل اصلی کاربر، id کاربری منحصر به فرد یا یکی از آدرس های ایمیل مستعار کاربر باشد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

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 برای این عملیات استفاده کرد. برای خواص درخواست و پاسخ، به مرجع API مراجعه کنید.

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 را برمی گرداند. برای مشاهده حساب کاربری حذف نشده، از عملیات بازیابی کاربر استفاده کنید.