In python, is it possible to edit a publicy shared google sheet, without an auth code?
我设置了一个Google工作表,以便任何人都可以编辑。
我注意到在
1 | sht1 = gc.open_by_key('1wj9L7Hn779GKP0s4MblkU1wHcqaVcG_E2YKAo1vdof0') |
由于任何人都可以编辑,因此无需提供用于访问的身份验证代码。但是,似乎总是需要使用auth代码对其进行初始化。
是否有一种无需任何身份验证代码即可编辑Google表格的方法?
这可能与本文的重复部分相混淆。使用gspread无需登录即可从Google云端硬盘电子表格中读取内容,但是解决方案是让客户端提供其身份验证代码,或直接下载文件,但不能选择编辑文件。
- 您要编辑Google Spreadsheet,而无需登录Google来获取授权码。
- 您想通过gspread和python实现此目的。
- 您已经能够使用Sheets API获取和放置Google Spreadsheet的值。
如果我的理解是正确的,该解决方法如何?请认为这只是几种解决方法之一。
解决方法:
在此替代方法中,将使用服务帐户。使用服务帐户时,无需使用gspread登录Google帐户即可获取和放置Google Spreadsheet的值。
为了使用服务帐户访问Google Spreadsheet,请执行以下流程。
- 您可以在下载的JSON文件中查看电子邮件地址。
示例脚本:
将
1 2 3 4 5 6 7 | import gspread from oauth2client.service_account import ServiceAccountCredentials scope = ['https://www.googleapis.com/auth/spreadsheets'] credentials = ServiceAccountCredentials.from_json_keyfile_name('### downloaded JSON file ###', scope) gc = gspread.authorize(credentials) sht1 = gc.open_by_key('1wj9L7Hn779GKP0s4MblkU1wHcqaVcG_E2YKAo1vdof0') |
-
请设置
### downloaded JSON file ### 。
参考:
- 使用OAuth 2.0进行服务器到服务器的应用程序
- 创建一个G Suite服务帐户
不幸的是,如果没有身份验证,您将无法满足您的需求。是必须的。
最后,如果您查看
还有其他通过API进行身份验证的方法,但是真诚的我不知道
因此您可以使用您提到的问题中提出的一些解决方法。