首页 > 解决方案 > makeAdmin 谷歌 API Gsuite SDK 错误

问题描述

我正在关注这篇文章以使用户成为 gsuite 的管理员: https ://developers.google.com/admin-sdk/directory/v1/reference/users/makeAdmin

我正在使用 python 这样做,我的代码是:

        SCOPES = ['https://www.googleapis.com/auth/admin.directory.user', 'https://www.googleapis.com/auth/admin.directory.group', 'https://www.googleapis.com/auth/spreadsheets']
        SERVICE_ACCOUNT_FILE = 'SA.json'

        credentials = service_account.Credentials.from_service_account_file(
            SERVICE_ACCOUNT_FILE, scopes=SCOPES)

        self.delegated_credentials = credentials.with_subject('my_admin_user@domain.com')

        self.service = googleapiclient.discovery.build('admin', 'directory_v1', credentials=self.delegated_credentials)
        self.service.users().makeAdmin(userKey="user.email@domain.com").execute()

但不幸的是,我收到了这个错误:

> googleapiclient.errors.HttpError: <HttpError 400 when requesting
> https://www.googleapis.com/admin/directory/v1/users/user.email@domain.com/makeAdmin?
> returned "Missing required field: is_admin">

如果我尝试列出以下用户:

users = self.service.users().list(customer='my_customer').execute()

它工作正常。

is_admin错误所指的参数是什么?我在文档中看不到任何有关它的信息。

谢谢

标签: pythongoogle-apigoogle-admin-sdkgoogle-workspacegoogle-api-python-client

解决方案


Makeadmin方法也有一个 body 参数,它需要一个布尔

{
  "status": boolean
}

我认为这是您缺少的 is_admin 字段。

self.service.users().makeAdmin(userKey="user.email@domain.com", { "status": True }).execute()

推荐阅读