首页 > 解决方案 > 目录 api 的 gsuite 服务帐户返回 http 400 错误:错误请求/无效输入

问题描述

我已经开始开发一些 api 来在我的 G 套件目录中创建用户。我遵循了服务帐户教程以及 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并创建了服务帐户并下载了服务帐户文件。我错过了一步吗?如果有人有我找不到的更好的文档,我也更愿意。

标签: pythongoogle-apiservice-accountshttp-errorgoogle-directory-api

解决方案


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


推荐阅读