【问题标题】:python ) google spread sheet : update api does not work with 403python ) google 电子表格:更新 api 不适用于 403
【发布时间】:2016-08-16 10:26:00
【问题描述】:

我正在关注这个官方链接中的教程:https://developers.google.com/sheets/quickstart/python

我确实执行了“quickstart.py”来进行身份验证。 之后,我再次运行“quickstart.py”,看到了本教程中“https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit#gid=0”中的数据。

我确实将电子表格 ID 更改为我自己的 ID,并通过以下方法从我的电子表格中获取数据:service.spreadsheets().values().get().execute()

但我的目标是向我的电子表格添加数据,所以我使用了以下方法“更新”:

rangeName = 'A2:D'
body['range'] = rangeName
body['majorDimension'] = 'ROWS'
body['values'] = ['test','test','test','test']
result = service.spreadsheets().values().update(
    spreadsheetId=spreadsheetId, range=rangeName, body=body).execute()
print('result:'+str(result))

然后我得到一个错误:

googleapiclient.errors.HttpError: https://sheets.googleapis.com/v4/spreadsheets/MY_SPREADSHEET_ID/values/A2%3AD?alt=json 返回“请求的身份验证范围不足。”

我不知道为什么在尝试更新我的工作表时会出现此错误,以及为什么尝试从我的工作表中获取数据时不会出现此错误。(如果是由身份验证引起的,则方法 'get' 应该会导致也是!)

谢谢。

【问题讨论】:

  • 请看this link
  • @Eugene 谢谢你的链接,但当然,我已经找到了那个帖子,它不是'gcloud',而是带有python的'google电子表格api'

标签: python excel google-sheets google-spreadsheet-api


【解决方案1】:

quickstart.py 示例将范围设置为:

https://www.googleapis.com/auth/spreadsheets.readonly

要更新电子表格,您需要将范围设置为:

https://www.googleapis.com/auth/spreadsheets

您可以通过首先删除 ~/.credentials 中的现有身份验证文件(即树莓上的位置)来执行此操作。它可能会被称为“sheets.googleapis.com-python-quickstart.json。

删除它后,您需要重新进行身份验证,这应该会在您重新运行脚本时自动发生。

【讨论】:

  • 与@LKM 有完全相同的问题,但如果我删除.credentials 中的json,并尝试执行相同的脚本,我会得到NameError: global name 'CLIENT_SECRET_FILE' is not defined。如果我在示例中定义常量: SCOPES = 'googleapis.com/auth/spreadsheets' CLIENT_SECRET_FILE = 'client_secret.json' APPLICATION_NAME = 'Google Sheets API Python Quickstart' 我得到ValueError: No JSON object could be decoded
  • 对于像我这样一无所知的其他人: 1. 转到您的 google 帐户。 API 管理器控制台和“RESET SECRET” 2. 下载新的 json 3. 重新运行脚本设置常量: SCOPES = 'googleapis.com/auth/spreadsheets'; CLIENT_SECRET_FILE = '您新下载的 json 文件' APPLICATION_NAME = 'Google Sheets API Python 快速入门'。然后,当您重新运行脚本时,流程函数将打开浏览器并要求登录。成功登录将在 ~/.credentials 处生成一个新的“sheets.googleapis.com-python-quickstart.json”文件,一切顺利。谢谢@Duppie。你为我指明了正确的方向。
  • 对我来说类似的解决方案,除了我删除了以前的“token.pickle”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 2014-07-04
  • 2020-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多