我试图使用OAuth2和gspread来使用Python来操作Google表格。但是,我一直遇到这个错误:
invalid_scope:https://spreadsheets.google.com/feeds不是有效的受众群体字符串。
最初,我将范围作为列表,但是,我在StackOverflow上看到另一个答案,说范围应该是以空格分隔的字符串。我尝试将其更改但错误仍然存在。
这是我的代码:
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ' '.join(['https://spreadsheets.google.com/feeds', 'https://googleapis.com/auth/drive'])
credentials = ServiceAccountCredentials.from_json_keyfile_name("SpreadsheetExample-bec536232207.json", 'https://spreadsheets.google.com/feeds https://googleapis.com/auth/drive')
gc = gspread.authorize(credentials)
wks = gc.open("test").sheet1
print(wks.get_all_records())`
答案 0 :(得分:1)
错误非常明确:spreadsheets.google.com/feeds
不是API范围。
如果您要请求访问Google表格文件的权限,请使用表格REST API文档中列出的一个或多个API范围: https://developers.google.com/sheets/api/guides/authorizing#OAuth2Authorizing
这些很好地列在那里:
范围含义
https://www.googleapis.com/auth/spreadsheets.readonly
允许对用户的工作表及其属性进行只读访问https://www.googleapis.com/auth/spreadsheets
允许对用户的工作表及其属性进行读/写访问https://www.googleapis.com/auth/drive.readonly
允许对用户的文件元数据和文件内容进行只读访问https://www.googleapis.com/auth/drive.file
对应用创建或打开的文件的每个文件访问权限https://www.googleapis.com/auth/drive
访问所有用户文件的完整,允许的范围。仅在严格必要时才请求此范围。