ユーザー アカウントを管理する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

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 サービスによって暗黙のうちに無視されます。
  • 1 つのアカウントで許可されるドメインの最大数は 600 です(プライマリ ドメイン 1 個 + 追加ドメイン 599 個)
  • ユーザー アカウントの作成時に特定の組織部門に割り当てられていない場合、そのアカウントは最上位の組織部門に属します。ユーザーがアクセスできる Google Workspace サービスは、ユーザーの組織部門によって決定されます。ユーザーが新しい組織に移動すると、ユーザーのアクセス権が変更されます。組織構造について詳しくは、管理者向けヘルプセンターをご覧ください。ユーザーを別の組織に移動する方法について詳しくは、ユーザーの更新をご覧ください。
  • 新しいユーザー アカウントには password が必要です。hashFunction を指定する場合、パスワードは有効なハッシュキーでなければなりません。指定しない場合、パスワードはクリアテキストで、8 ~ 100 の ASCII 文字で指定する必要があります。詳細については、API リファレンスをご覧ください。
  • Google Workspace のフレキシブル プランのユーザーである場合、この API を使用して作成すると金銭的な影響が生じ、顧客の請求先アカウントに請求されます。詳しくは、API のお支払い情報をご覧ください。
  • Google Workspace アカウントには、どのドメインでも含めることができます。複数のドメイン アカウントの場合、1 つのドメインのユーザーは他のアカウント ドメインのユーザーとサービスを共有できます。複数のドメインのユーザーについて詳しくは、API の複数ドメイン情報をご覧ください。
  • 競合するアカウントが存在する可能性があります。追加する予定のユーザーがすでに Google アカウントを持っていないかどうかを確認してください。その後、既存アカウントとの競合を回避する操作を行います。詳しくは、競合するアカウントを特定して解決するをご覧ください。
  • ビジター アカウントがある可能性があります。Google アカウントを持っていない組織外のユーザーをドライブに招待すると、ビジターには [ユーザー名]@[ドメイン名].com の形式のビジター アカウントが付与されます。ビジター アカウントと同じユーザー名でユーザーを追加した場合、そのアカウントは完全な Google Workspace アカウントに変換されます。アカウントのドライブ ファイルに対する現在の権限は維持されます。ドキュメントをビジターと共有するをご覧ください。

成功すると、レスポンスとして 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、ユーザーのエイリアス メールアドレスのいずれかを指定できます。リクエストとレスポンスのプロパティについては、API リファレンスをご覧ください。特権管理者について詳しくは、管理者向けヘルプセンターをご覧ください。

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 は、別のユーザーとそのオーナーとの関係を記述します。たとえば、マネージャーと従業員との関係では、その従業員がオーナーであり、manager タイプのアカウントに relations フィールドを追加します。使用できるタイプについては、User オブジェクト リファレンスをご覧ください。

関係を設定するには、relations フィールドを含む JSON リクエスト本文で所有権を持つユーザーを作成または更新します。1 つのリクエストで複数の関係を作成できます。

{
  "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 のステータス コードが返されます。レスポンスでは、ステータス コードとともに、example.com ドメインの 2 つのユーザー アカウントが返されます(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 リファレンスをご覧ください。

この例では、アカウント管理者は、アカウント内のすべてのユーザーを、レスポンス ページごとに 1 つのユーザー エントリで返すようにリクエストしています。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 によって、最新の Gmail Chat のプロフィール写真の写真のサムネイルが 1 つ取得されます。ユーザーの最新の写真を取得するには、次の 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 Response

成功すると、レスポンスとして 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"
}

この API におけるウェブセーフな base64 エンコードの写真は、RFC 4648 の「base64url」に類似したものです。これは次のことを意味します。

  • スラッシュ(/)はアンダースコア(_)に置き換えられます。
  • プラス記号(+)はハイフン(-)に置き換えられます。
  • 等号(=)はアスタリスク(*)に置き換えられます。
  • パディングについては、パディングに等号(=)を使用する RFC-4648 の baseURL の定義の代わりに、ピリオド(.)が使用されます。これは、URL の解析をシンプルにするために行われます。
  • アップロードする写真のサイズにかかわらず、API は写真のサイズを 96x96 ピクセルに比例して縮小します。

JavaScript から互換性のあるリンクを作成する必要がある場合、Google Closure Library には、Apache ライセンスでリリースされている Base64 のエンコード関数とデコード関数が含まれています。

管理者以外のユーザーを取得する

ユーザー アカウントを変更できるのは管理者だけですが、ドメインのすべてのユーザーはユーザー プロフィールを読み取ることができます。管理者以外のユーザーは、viewType パラメータを domain_public と同じに設定して users.get または users.list リクエストを作成すると、ユーザーの公開プロフィールを取得できます。スコープ 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"
}

写真を更新するとき、この API では heightwidth が無視されます。

JSON Response

成功すると、レスポンスとして 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 は、過去 20 日以内に削除されたユーザーを取得するの操作に対するレスポンスに含まれる一意のユーザー id です。この操作の 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 のステータス コードのみが返されます。復元されたユーザーのアカウントを確認するには、ユーザーを取得するの操作を使用します。