📜  google-api-python-client python 3 - Python (1)

📅  最后修改于: 2023-12-03 14:41:36.718000             🧑  作者: Mango

Google API Python Client for Python 3

概述

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)
调用 API

客户端库提供了许多方便的方法和类,使您可以方便地与 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 客户端库。