我真的很难尝试使用服务帐户身份验证来使用 Google Directory API (Admin SDK)。
使用基于客户端的三足 OAuth 可以正常工作(在此处测试 - https://developers.google.com/admin-sdk/directory/v1/reference/members/insert),但是我的服务帐户的权限委托存在问题使用。在 Google Apps 管理下,我启用了使用 API 并按照指示将服务帐户添加到允许的 OAuth 客户端列表中。
这是代码:
import httplib2
import sys
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
credentials = SignedJwtAssertionCredentials(
'<KEY>@developer.gserviceaccount.com',
'<KEY DATA>',
scope='https://www.googleapis.com/auth/apps.groups.settings https://www.googleapis.com/auth/admin.directory.group https://www.googleapis.com/auth/admin.directory.group.member'
)
http = httplib2.Http()
http = credentials.authorize(http)
service = build("admin", "directory_v1", http=http)
groups = service.groups()
g = groups.get(groupKey="<GROUP NAME>").execute()
最终,我收到以下错误:
apiclient.errors.HttpError: <HttpError 403 when requesting https://www.googleapis.com/admin/directory/v1/groups/<GROUP NAME>?alt=json returned "Not Authorized to access this resource/api">
我也尝试使用以下 API:
service = build("groupssettings", "v1", http=http)
但这也会返回一个错误 - “后端错误”。