使用 API 开发人员工作区

Consuming API Workspace for Developers

我正在尝试使用 Google 的工作区 APIs,但是我在创建我的第一个代码的文档方面遇到了极大的困难,按照第一步我做了以下

  1. 我在 Google 云中创建了一个项目

  2. 我启用了 Admin SDK API

  3. 我创建了一个服务帐户

  4. 我创建了一个 Json 格式的密钥

  5. 在跨域委派下的 Workspace 仪表板中,我添加了唯一 ID 和以下范围

    [ 'https://www.googleapis.com/auth/apps.order', 'https://www.googleapis.com/auth/siteverification', 'https://www.googleapis.com/auth/directory.readonly', 'https://www.googleapis.com/auth/admin.directory.user', 'https://www.googleapis.com/auth/admin.reports.usage.readonly', 'https://www.googleapis.com/auth/admin.reports.audit.readonly', 'https://www.googleapis.com/auth/gmail.send' ] 我想使用 link https://developers.google.com/admin-sdk/reports/reference/rest 中的文档来查询特定用户的活动,但我找不到示例代码来使用 API 使用 [=] 中的这些凭据48=] ,我是这个领域的新手,需要一些帮助。

生成一个令牌,当我尝试使用 api 它没有工作并且它是未经授权的,下面是我使用的代码

    import requests
url = "https://admin.googleapis.com/admin/reports/v1/activity/users/usuario@exemplo.com/applications/calendar"
payload = ""
headers = {"Authorization": "Bearer xptoz_exemple_test=PHQbcdddx3xxxxxxxxxxxxddddddddd"}
response = requests.request("GET", url, data=payload, headers=headers)
print(response.text)

您正在获得授权,因为服务帐户无权执行您正在尝试执行的操作。要获得权限,您需要使用正确的范围,服务帐户不仅需要拥有使用此范围的权限,而且必须已委托给域中有权访问数据的用户。

首先,您需要确保您的授权代码已委托给您域中的用户。

#!/usr/bin/python

from oauth2client.service_account import ServiceAccountCredentials
from httplib2 import Http
from apiclient.discovery import build


scopes = [            'https://www.googleapis.com/auth/admin.reports.usage.readonly'        ]

credentials = ServiceAccountCredentials.from_json_keyfile_name('/path/to/my/key.json', scopes)
delegated_credentials = credentials.create_delegated('me@mydomain.com')

http_auth = credentials.authorize(Http())

service = build('admin', 'directory_v1', credentials=creds)

那么您应该考虑看看 Python quickstart 此处的身份验证设置为使用已安装的应用程序。然而,其余代码应该向您展示如何使用客户端库,而不是像现在这样手动发送所有请求。