目录 api returns 的 gsuite 服务帐户 http 400 错误:错误 request/Invalid 输入

gsuite service account for directory api returns http 400 errors: Bad request/Invalid input

我已经开始开发一些 apis 来在我的 G 套件目录中创建用户。 我跟着 service account tutorials along with the Directory tutorials 找到了 python。我的代码非常简单,只是为了测试它是如何工作的。

from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/admin.directory.user']
SERVICE_ACCOUNT_FILE = 'file'
creds = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
service = build('admin', 'directory_v1', credentials=creds)
results = service.users().list(customer='i am not sure what customer is', maxResults=10, orderBy='email').execute() 
#this line produces the error.
#Vscode also states the service has no member users. But I did install all #the libraries
users = results.get('users', [])
print(users)

文档对我来说大部分内容都不清楚。当我 运行 我得到

googleapiclient.errors.HttpError: <HttpError 400 when requesting https://www.googleapis.com/admin/directory/v1/users?customer=students&maxResults=10&orderBy=email&alt=json returned "Bad Request">

当我将客户从 my_customer 更改为其他客户时,我得到 Invalid Input。 关于可能导致此错误的原因以及最好如何通过服务帐户使用此 api 的任何建议? 现在我确实启用了 directory api 并创建了服务帐户并下载了服务帐户文件。我错过了一步吗? 我也希望有人能提供我找不到的更好的文档。

确保服务帐户已启用全域委派并具有适当的范围。

最后我通过在调用“service_account.Credentials.from_service_account_file”时设置另一个参数“subject”解决了这个问题。