Google Admin API设置projection='full'未返回自定义架构问题排查
Google Admin Directory API设置
projection='full'后部分分页结果丢失自定义架构 我用Python的googleapiclient包编写脚本拉取Google用户数据,因为需要获取自定义架构,在API调用中设置了projection='full'。脚本原本运行正常,无代码变更的情况下,响应突然不再包含自定义架构,效果等同于设置projection='basic'。
服务账号与委派用户的权限未发生变更,使用委派用户登录管理控制台可正常查看和编辑自定义架构,更换其他委派账号结果一致。当前使用Python 3.11.5和google-api-python-client 2.115.0,相关代码如下:
from google.oauth2 import service_account from googleapiclient.discovery import build service_account_key = { "type": "service_account", "project_id": "<project_id>", "private_key_id": "<project_key_id>", "private_key": "-----BEGIN PRIVATE KEY-----<private_key>-----END PRIVATE KEY-----/n", "client_email": "<service_account@project_id.iam.gserviceaccount.com>", "client_id": "<client_id>", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_x509_cert_url": "<client_x509_cert_url>" } scopes = ['https://www.googleapis.com/auth/admin.directory.user'] delegate = '<user-sa@domain>' credentials = service_account.Credentials.from_service_account_info(service_account_key, scopes=scopes) credentials_delegated = credentials.with_subject(delegate) api_query = 'isSuspended=False' customer = '<customer>' max_results = 500 service = build('admin', 'directory_v1', credentials=credentials_delegated, cache_discovery=False) try: response = service.users().list(customer=customer, query=api_query, maxResults=max_results, projection='full').execute() print(response) except Exception as err: print(err)
后续发现:仅在测试时拉取部分分页结果时,自定义架构会消失;拉取全部分页结果时,自定义架构可正常获取。暂未明确分页响应结构导致该问题的具体原因。
内容的提问来源于stack exchange,提问作者Jonathan Saunders
相关产品推荐
相关产品推荐

