“代表”机器人与用户访问之间的区别

时间:2020-08-06 19:03:10

标签: python google-sheets oauth google-sheets-api service-accounts

我正在开发一个使用gspread在python中访问Google表格的程序。

在gspread文档中,他们提到:

要通过Google Sheets API访问电子表格,您需要进行身份验证和授权。

  • 如果您打算代表漫游器帐户访问电子表格,请使用服务帐户。
  • 如果您想代表最终用户(包括您自己)访问电子表格 ,请使用OAuth客户端ID。

我的理解是,我正在创建一个“机器人”来访问自己的帐户并更改工作表,因此我将使用OAuth。

还有其他一些Google服务,机器人在其中拥有自己的Google工作表,因此访问这些工作表将“代表”机器人进行访问吗?如果没有,那么这些身份验证选项之间有什么区别?

编辑:

文档似乎进一步回答了该问题的一部分:

服务帐户是一种特殊的Google帐户,旨在代表需要认证并有权访问Google API中数据的非人类用户。

由于它是一个单独的帐户,因此默认情况下,在您与此帐户共享之前,它无法访问任何电子表格。就像其他任何Google帐户一样。

问题的第二部分仍然存在-如果我仅从一位Google用户访问工作表,为什么我要使用bot选项,有什么区别?

1 个答案:

答案 0 :(得分:0)

服务帐户是指

  • 用于服务器到服务器的交互
  • 属于您的应用
  • 使用简化的2条腿oauth流(或jwt流),而不是典型的3条腿流
  • 不用于访问最终用户数据,而用于访问您的应用程序特定数据

如果创建android或python应用程序,则可以使用服务帐户(在托管服务器上)代表该应用程序运行。这可以与服务帐户拥有/共享的Google表格(另一个服务器)进行交互。这是有道理的,因为如果您使用自己的帐户,则应用程序的最终用户将有权访问所有Google表格和其他凭据。通过使用服务帐户,它只能访问与其共享/自己拥有的数据。

参考文献:

相关问题