我目前正在尝试通过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."
}
}
我不确定如何解决此问题。任何方向将不胜感激!
答案 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"]