📅  最后修改于: 2023-12-03 14:41:36.718000             🧑  作者: Mango
google-api-python-client
用于 Python 3 的 Google API 客户端库,可以方便地与 Google API 进行交互。该客户端库支持大多数 Google API 平台(包括 Google Drive、Google Calendar、Google Sheets 等),并提供用户友好的方法和类以及灵活的自定义功能。
可以使用 pip 在 Python 3 中安装 google-api-python-client
客户端库:
pip3 install google-api-python-client
要使用 Google API 客户端库,您需要进行身份验证。Google API 支持几种不同的身份验证方式,包括使用 OAuth 2.0 认证。Oauth 2.0 认证方式适用于需要与 Google API 进行交互但不需要用户参与授权的应用程序,如服务器端应用程序或自动化脚本。
以下是使用 OAuth 2.0 认证的示例代码:
from google.oauth2 import service_account
from googleapiclient.discovery import build
# 在 Google Cloud 平台创建服务帐号,并将 JSON 密钥文件下载到本地。
# 然后指定密钥文件路径和要使用的 API 的名称。
key_file_location = '/path/to/json/file'
api_name = 'calendar'
api_version = 'v3'
# 使用服务帐号的 JSON 密钥文件和 API 名称构建凭据。
credentials = service_account.Credentials.from_service_account_file(
key_file_location, scopes=['https://www.googleapis.com/auth/'+api_name])
# 使用凭据创建 API 客户端。
service = build(api_name, api_version, credentials=credentials)
客户端库提供了许多方便的方法和类,使您可以方便地与 Google API 进行交互。例如,通过以下代码可以列出 Google 日历中的所有事件:
from googleapiclient.errors import HttpError
try:
events_result = service.events().list(calendarId='primary', maxResults=20, singleEvents=True,
orderBy='startTime').execute()
events = events_result.get('items', [])
if not events:
print('No upcoming events found.')
for event in events:
start = event['start'].get('dateTime', event['start'].get('date'))
print(start, event['summary'])
except HttpError as error:
print('An error occurred: %s' % error)
如果您需要进行自定义操作,可以使用客户端库提供的原始 API 方法和请求对象。例如,以下代码介绍了如何使用计数器 API 的原始方法来增加两个数的总和:
from googleapiclient.errors import HttpError
from googleapiclient.discovery import build
# 凭据和 API 信息
api_key = 'YOUR_API_KEY'
api_service_name = 'compute'
api_version = 'v1'
api_method_name = 'instances.add'
num1 = 3
num2 = 5
# 创建计数器 API 客户端
service = build(api_service_name, api_version, developerKey=api_key)
# 定义请求体
request_body = {
'kind': 'compute#operation',
'name': 'add-instance',
'operationType': 'add-instance',
'operands': [
{
'type': 'int',
'value': num1
},
{
'type': 'int',
'value': num2
}
]
}
try:
# 调用原始 API 方法并打印结果
response = service.instances().add(body=request_body).execute()
print(response)
except HttpError as error:
print('An error occurred: %s' % error)
google-api-python-client
是 Python 3 中使用 Google API 的良好选择。它提供了丰富的功能和最佳实践,并高度深度结合 Google API 平台。在接下来的开发中,如果您要使用任何 Google API,则应该先考虑使用 google-api-python-client
客户端库。