使用 API 开发人员工作区
Consuming API Workspace for Developers
我正在尝试使用 Google 的工作区 APIs,但是我在创建我的第一个代码的文档方面遇到了极大的困难,按照第一步我做了以下
我在 Google 云中创建了一个项目
我启用了 Admin SDK API
我创建了一个服务帐户
我创建了一个 Json 格式的密钥
在跨域委派下的 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 此处的身份验证设置为使用已安装的应用程序。然而,其余代码应该向您展示如何使用客户端库,而不是像现在这样手动发送所有请求。
我正在尝试使用 Google 的工作区 APIs,但是我在创建我的第一个代码的文档方面遇到了极大的困难,按照第一步我做了以下
我在 Google 云中创建了一个项目
我启用了 Admin SDK API
我创建了一个服务帐户
我创建了一个 Json 格式的密钥
在跨域委派下的 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 此处的身份验证设置为使用已安装的应用程序。然而,其余代码应该向您展示如何使用客户端库,而不是像现在这样手动发送所有请求。