gspread 身份验证抛出权限不足
gspread authentication throwing insufficient permission
我们使用 developers.google.com 创建了 api 用户并将凭据下载为 json 文件。
现在在我的 macbook 上,gspread 身份验证在使用 credentials.json 时工作正常。当将相同的配置移动到 aws 上的 linux 服务器时,它给出 403 权限不足错误。
Pip 和 python 版本相同。
异常
gspread.v4.exceptions.APIError: {
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
基本代码
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)
sheet = client.open('MySheetName').sheet1
您似乎在使用服务帐户。为了让服务帐户访问您的 sperad sheet 它需要访问它。
确保您与服务帐户电子邮件地址共享 sheet 您可以通过 google 驱动器网页
尝试将您的 scope
变量更改为以下内容:
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
确保在 API 控制台中启用驱动器 API。
gspread 已升级,现在基于 API v4。它速度更快,但需要更新范围。
如果您在更新范围后仍无法访问,请在您的终端中尝试运行此命令:
sudo pip install 'gspread==0.6.2' --force-reinstall
我们使用 developers.google.com 创建了 api 用户并将凭据下载为 json 文件。 现在在我的 macbook 上,gspread 身份验证在使用 credentials.json 时工作正常。当将相同的配置移动到 aws 上的 linux 服务器时,它给出 403 权限不足错误。
Pip 和 python 版本相同。
异常
gspread.v4.exceptions.APIError: {
"error": {
"errors": [
{
"domain": "global",
"reason": "insufficientPermissions",
"message": "Insufficient Permission"
}
],
"code": 403,
"message": "Insufficient Permission"
}
}
基本代码
import gspread
from oauth2client.service_account import ServiceAccountCredentials
scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('credentials.json', scope)
client = gspread.authorize(creds)
sheet = client.open('MySheetName').sheet1
您似乎在使用服务帐户。为了让服务帐户访问您的 sperad sheet 它需要访问它。
确保您与服务帐户电子邮件地址共享 sheet 您可以通过 google 驱动器网页
尝试将您的 scope
变量更改为以下内容:
scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']
确保在 API 控制台中启用驱动器 API。
gspread 已升级,现在基于 API v4。它速度更快,但需要更新范围。
如果您在更新范围后仍无法访问,请在您的终端中尝试运行此命令:
sudo pip install 'gspread==0.6.2' --force-reinstall