管理 Google 群組成員資格

群組建立後,您可以為其建立會員資格。本頁面說明如何使用 Cloud Identity Groups API 執行一些基本會員作業。如要瞭解如何建立 Google 群組,請參閱「建立及搜尋 Google 群組」一文。

事前準備

  • Enable the Cloud Identity API.

    Enable the API

  • 設定驗證機制並安裝用戶端程式庫。如要瞭解如何設定,請參閱「設定 Cloud Identity Groups API」。

新增 Google 群組成員

REST

使用 memberships.create 方法將成員加入群組。

使用任何要求資料之前,請先替換以下項目:

  • GROUP_ID:您要新增成員的群組數字 ID。如要找出單一群組的 ID,請使用 groups.lookup 方法。如要查看客戶或命名空間下的所有群組 ID,請使用 groups.list 方法。
  • MEMBER_ID:成員的 ID。如果是 Google 管理的實體,請使用成員的電子郵件地址。針對外部身分對應實體,請使用符合身分來源要求的字串。
  • ROLE_NAME:您要授予成員的角色名稱。請使用 OWNERMANAGERMEMBER
  • PROJECT_ID:您要用來提出要求的 Google Cloud 專案的英數 ID。

HTTP 方法和網址:

POST https://cloudidentity.googleapis.com/v1/groups/GROUP_ID/memberships

JSON 要求主體:

{
  "preferredMemberKey": {
    "id": "MEMBER_ID"
  },
  "roles": [
    {
      "name": "MEMBER"
    }
  ]
}

如要傳送要求,請展開以下其中一個選項:

回應中包含 Operation,指出要求的狀態。

已完成的作業包含已新增的會員資格。例如:

{
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.apps.cloudidentity.groups.v1.Membership",
    "name": "groups/GROUP_ID/memberships/123456789012345678901",
    "preferredMemberKey": {
      "id": "MEMBER_ID"
    },
    "roles": [
      {
        "name": "MEMBER"
      }
    ]
  }
}

您也可以使用 memberships.create 方法,將成員新增為群組的管理員或擁有者:

  • 如要將某人設為群組管理員,請按照將成員加入群組的程序操作,但使用以下要求主體:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "MANAGER"
        }
      ]
    }
  • 如要將某人設為群組擁有者,請按照將成員加入群組的程序操作,但使用下列要求主體:

    {
      "preferredMemberKey": {
        "id": "MEMBER_ID"
      },
      "roles": [
        {
          "name": "MEMBER"
        }
        {
          "name": "OWNER"
        }
      ]
    }

Python

以下程式碼說明如何為群組新增會員。expiryDetail 是可新增的選用欄位,可用於設定會員資格的到期日。preferredMemberKey 的值是會員的電子郵件地址。

def create_google_group_membership(service, identity_source_id, group_id, member_key):
  param = "&groupKey.id=" + group_id + "&groupKey.namespace=identitysources/" + identity_source_id
  try:
    lookupGroupNameRequest = service.groups().lookup()
    lookupGroupNameRequest.uri += param
    # Given a group ID and namespace, retrieve the ID for parent group
    lookupGroupNameResponse = lookupGroupNameRequest.execute()
    groupName = lookupGroupNameResponse.get("name")
    # Create a membership object with a memberKey and a single role of type MEMBER
    membership = {
      "preferredMemberKey": {"id": member_key},
      "roles" : {
        "name" : "MEMBER",
        "expiryDetail": {
          "expireTime": "2021-10-02T15:01:23Z"
        }
      }
    }
    # Create a membership using the ID for the parent group and a membership object
    response = service.groups().memberships().create(parent=groupName, body=membership).execute()
    print(response)
  except Exception as e:
    print(e)

列出 Google 群組的成員

REST

使用 memberships.list 方法列出群組成員。

使用任何要求資料之前,請先替換以下項目:

  • GROUP_ID:您要列出成員的群組數字 ID。如要找出單一群組的 ID,請使用 groups.lookup 方法。如要查看客戶或命名空間下的所有群組 ID,請使用 groups.list 方法。
  • PROJECT_ID:您要用來提出要求的 Google Cloud 專案的英數 ID。

HTTP 方法和網址:

GET https://cloudidentity.googleapis.com/v1/groups/GROUP_ID/memberships

如要傳送要求,請展開以下其中一個選項:

回應包含群組中所有成員及其角色的陣列。

Python

以下程式碼會列出群組的會員資格:

def list_google_group_memberships(service, group_id):
  param = "&groupKey.id=" + group_id
  try:
    lookup_group_name_request = service.groups().lookup()
    lookup_group_name_request.uri += param
    lookup_group_name_response = lookup_group_name_request.execute()
    group_name = lookup_group_name_response.get("name")
    # List memberships
    response = service.groups().memberships().list(parent=group_name).execute()
    print(response)
  except Exception as e:
    print(e)