Google 工作表 API 和 Python 中的用户身份验证如何工作?

How does user authentication work in the Google Sheets API with Python?

我是一个相当新的开发者。我没有 OAuth2 经验,每次我尝试阅读它的解释时,我似乎无法弄清楚它在实际意义上的含义。

这就是我想要完成的。我正在 Python 中编写一个应用程序,我希望能够读取任意 Google sheet 并操作数据。我已经按照 Google 的官方指南 here 设置了 quickstart.py 示例。它工作正常,我已经能够毫无问题地扩展它来做其他事情——维护了在快速入门指南中创建的特定文件设置。

这就是我感到困惑的地方。假设我希望其他人现在能够通过他们自己的 spreadsheets 和 Google 帐户使用我的应用程序。应用程序运行不需要 client_secret.json 文件吗?但它(顾名思义)难道不应该保密吗?他们需要创建自己的凭据,对吗?但是您不需要 client_secret.json 文件来首先创建凭据吗?这一切是如何运作的?

某人能够 运行 Python 脚本并通过他们的帐户连接到第一个点差 sheet 需要什么?除了我自己的 Google 帐户和指南中描述的设置之外,我个人只是不明白在这种特殊情况下应该如何应用 OAuth2。

也许这个问题似乎范围太广了。如果是这样,底线是:我如何采用 link here 中概述的 Python 快速入门示例并使其成为任何人都可以 运行 他们计算机上的脚本有效果吗? (指导他们完成所有需要的设置,就像任何需要访问其 Google 帐户的普通应用程序一样)

也许有些混淆源于 client_secret 中的 "client" 一词。客户端是您的应用程序。是的,它的详细信息应该保密,因为任何拥有 client_secret 的人都可以冒充您的应用程序。除了麻烦之外,这种模拟的影响很小,因为它不会扩展到 Eve 能够访问 Alice 的数据。

您的应用的每个用户都需要通过 OAuth 流程才能授予应用访问其数据的权限。这个权限体现在一个Refresh Token和Access Token中,也是每个用户需要保密的。

如果您确实分发 client_secret,请考虑使用牺牲(即假)Google 帐户。这样,任何滥用行为都不会影响您的主要 Google 帐户。

要考虑的替代方法是向您的用户提供有关如何在开发控制台上注册他们自己的应用程序的说明,从而生成他们自己的 client_secret。