Python的Google API客户端

2025 年 3 月 4 日 | 阅读 6 分钟

这个 Python 客户端库非常通用,允许开发者将其尽可能多的 Google 服务集成到他们的 Python 应用程序中。如果你需要与 Google Drive、Gmail、Google Sheets 或 YouTube 等服务交互,这个客户端提供了成功验证用户、发送请求和处理 Google API 响应的功能。

Google 的服务在我们的工作和日常生活中扮演着重要角色,包括 Google Drive 中的文档、Google Sheets 中的电子表格以及 Gmail 中的电子邮件。这些服务在应用程序中实现时,会利用 Google API 客户端提供这些服务的自动化和集成,而无需开发者花费时间自行管理HTTP 请求或身份验证过程。

该库支持许多 Google API,并内置了 OAuth 2.0 支持,可进行安全身份验证,并提供一次发送多个请求以加快数据处理和管理错误条件的功能,以获得用户友好的体验。它能够提供基础集成到全面的大规模集成解决方案。

核心上,Google API 客户端库简化了

  • 身份验证和授权:根据当前文献,最常见的两种 Web 服务访问机制是 OAuth 2.0 支持。
  • 服务访问:Google 的一些 API 包括 Drive、Sheets、YouTube 和 Gmail。
  • API 发现:可以通过更改设置与不同的 API 协同工作,而无需重新编程机器人。

这个 Python 客户端库通过通用的 HTTP 请求和响应与 Google REST API 进行通信,但为开发者提供了相当大的抽象层。

安装

在 Python 中开始使用 API 客户端库之前,必须先安装它。你可以使用 pip 进行安装。

此外,根据使用的服务,你可能需要 google-auth、google-auth-oauthlib 和 google-auth-httplib2 来处理凭证和身份验证。如下安装它们:

使用 Google API 进行身份验证

Google 使用 OAuth 2.0 来授予 API 访问权限。这意味着在使用该应用程序访问用户信息之前,必须对该应用程序进行身份验证。以下是设置身份验证的简单分步指南:

设置你的 Google Cloud 项目

  • 要了解这些资源,你可以前往 Google Cloud Console。
  • 目前,必须遵循的主要步骤是:打开一个项目并启用你想要的 API(例如,Google Drive API)。
  • 开发 OAuth 凭证,包括客户端 ID 和客户端密钥。
  • 下载 credentials.json 文件。

Python 中的 OAuth 流:要做到这一点,你需要利用 OAuth2。也就是说,需要有 0 凭证才能获得访问令牌。以下是如何实现此目标的示例。你可以按照下面的方法进行操作。

输出

Google API Client for Python

使用 Google Drive API

Google Drive API 提供了一个接口,用户可以通过该接口管理 Google Drive 中的文件。初始化会话后,你可以创建、读取、更新和删除文件。

输出

 
Files:
Document 1 (1rJNQb-uF2mZZPVZtDfVRkzo74g)
Document 2 (1fReDNopwJvCVJPPVU9DDDf3KO7)
Image.png (1oxKPKdfjgdfKJJF8ow-FK4d-owO)   

输出将列出 Google Drive 中的文件以及分配给 Google Drive 中每个文件的文件 ID。此示例使用 Google Drive API 的 list() 方法来获取文件详细信息。

Google Sheets API

Google Sheets API 提供了在 Google Sheets 中读取、写入和修改数据的能力。这方便了数据处理过程,例如将数据导出为电子表格格式或拉取当前数据。

从 Google Sheet 读取数据

首先,我们需要在 Google Cloud Console 中启用 Google Sheets API,并使用以下范围进行授权:

以下是如何从 Google Sheet 读取数据:

输出

 
['Name', 'Age', 'Gender', 'Occupation']
['Alice', '30', 'F', 'Engineer']
['Bob', '25', 'M', 'Designer']
['Eve', '35', 'F', 'Manager']   

将数据写入 Google Sheet

要将数据写回 Google Sheet,你可以使用 update() 方法。

输出

 
8 cells updated.   

Gmail API

Gmail API 提供了一种发送或接收电子邮件的方法,以及执行所有与电子邮件相关的任务。例如,它允许你设置你的 Python 应用程序自动发送电子邮件警报。

发送电子邮件

输出

 
Message Id: 17a8cc4e8d3d0a2b   

批量请求

批量请求允许你在单个 HTTP 请求中运行多个请求,从而优化你的 API 调用。当你需要同时处理不同的对象时,例如读取文件、发送邮件或打开特定页面,这特别有用。

输出

 
Request 1 complete: {'id': 'file_id_1', 'name': 'Document 1'}
Request 2 complete: {'id': 'file_id_2', 'name': 'Document 2'}   

以下是使用 Google Drive API 发送批量请求的示例:

错误处理和调试

在使用 Google API 客户端(Python)时,必须了解如何在应用程序中处理诸如令牌过期、速率限制和其他 API 错误之类的错误。

处理 API 错误

Google API 调用和响应中也包含错误消息,以防 API 请求出现问题。可以使用 Python 的 try-except 语句来处理这些错误。

以下是访问 Google Drive 时进行错误处理的示例:

输出

 
An error occurred: <HttpError 404 when requesting https://www.googleapis.com/drive/v3/files/invalid_file_id returned "File not found".>
File not found.   

结论

Google API 客户端(Python)是使用 Google 服务(如 Drive、Sheets 和 Gmail)在 Python 环境中的有效且高效的方式。它包含安全身份验证以防止未经授权的访问,批量处理以处理大量数据,以及错误处理,在自动化组织的业务流程和数据处理方面非常有效。无论项目规模大小,从小型应用程序到大规模使用,该客户端都使开发者能够轻松访问 API 并创建有效且稳固的 Google 结构。