尝试从python访问电子表格时发生RefreshError 注意:

问题描述

我尝试按照this教程从python访问电子表格GetHookedTest。 我已成功添加服务帐户,这是我的凭据。与 test@gethooked.iam.gserviceaccount.com

按工作表共享
{
  "type": "service_account","project_id": "gethooked","private_key_id": "aaaaaabbbbbaaaabbbbaaaaa","private_key": "Private Key here","client_email": "test@gethooked.iam.gserviceaccount.com","client_id": "454454554","auth_uri": "https://accounts.google.com/o/oauth2/auth","token_uri": "https://oauth2.googleapis.com/token","auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/orderplacer%test.iam.gserviceaccount.com"
}

import gspread
from oauth2client.service_account import ServiceAccountCredentials
import pprint

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

creds = ServiceAccountCredentials.from_json_keyfile_name("client_secret.json",scope)
client = gspread.authorize(creds)
sheet = client.open("GetHookedTest").sheet1

但是我收到了 RefreshError

six.raise_from(new_exc,caught_exc)
  File "<string>",line 3,in raise_from
google.auth.exceptions.RefreshError: ('No access token in response.',{'id_token': 'long string'})

解决方法

作为一种方法,请尝试以下修改。

  1. 删除https://spreadsheets.google.com/feedshttps://www.googleapis.com/auth/drive.file的范围。

  2. 使用电子表格ID代替电子表格名称。

    • 来自

        client.open("GetHookedTest").sheet1
      
    • 收件人

        client.open_by_key("SpreadsheetId").sheet1
      

注意:

  • your reply comment中,https://www.googleapis.com/auth/spreasheetshttps://www.googleapis.com/auth/spreadsheets

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...