我尝试按照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'})
答案 0 :(得分:2)
作为一种方法,请尝试以下修改。
删除https://spreadsheets.google.com/feeds
和https://www.googleapis.com/auth/drive.file
的范围。
使用电子表格ID代替电子表格名称。
来自
client.open("GetHookedTest").sheet1
收件人
client.open_by_key("SpreadsheetId").sheet1
https://www.googleapis.com/auth/spreasheets
是https://www.googleapis.com/auth/spreadsheets
。