使用Python访问Google Sheets Api

时间:2019-05-10 20:05:57

标签: python google-sheets-api

我目前正在尝试通过python更新Google表格,但遇到权限方面的一些问题。

我一直在遵循Twilio指南中的说明:https://www.twilio.com/blog/2017/02/an-easy-way-to-read-and-write-to-a-google-spreadsheet-in-python.html

我正在Jupyter中完成所有这些工作,并且确实将JSON文件保存到正确的代码目录中。我没有定义范围,信誉和客户的问题。

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_id.json', scope)
client = gspread.authorize(creds)

sheet = client.open("MixIQ Tracker").sheet1

我已经完成了将两者链接的所有步骤,但是最后一行却出现了此API错误。

APIError: {
"error": {
  "errors": [{
      "domain": "global",
      "reason": "insufficientPermissions",
      "message": "Insufficient Permission: Request had insufficient authentication scopes."
    }],
  "code": 403,
  "message": "Insufficient Permission: Request had insufficient authentication scopes."
 }
}

我不确定如何解决此问题。任何方向将不胜感激!

4 个答案:

答案 0 :(得分:1)

我认为Google驱动器API端点必须包含在您的范围内。我正在将数据从Mailchimp API写入Google表格。

查看以下内容:https://www.youtube.com/watch?v=7I2s81TsCnc>这对我很有帮助。

scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive']

答案 1 :(得分:0)

如果您查看google API scopes documentation,则在任何地方都不会引用您正在使用的范围url。这可能是问题所在。尝试将范围网址更改为https://www.googleapis.com/auth/spreadsheets

此外,请确保在Google开发者控制台中的项目中正确启用了电子表格API。

或者,您可以尝试Sheetfu library(我是作者),它可以为您处理范围。

答案 2 :(得分:0)

使用它作为您的范围:

scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']

调用“ ServiceAccountCredentials”之前

您需要在“ console.cloud.google”和表格API中启用Google Drive API。

答案 3 :(得分:0)

您只需要此作用域

scope = ["https://www.googleapis.com/auth/drive"]