Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

google.oauth2 'No access token in response' error while trying to open spreadsheet

I'm trying to open google spreadsheet via gspread, but my code fails with error:

Traceback (most recent call last):
  File "/home/memcpy/.local/lib/python3.6/site-packages/google/oauth2/_client.py", line 156, in jwt_grant
    access_token = response_data["access_token"]
KeyError: 'access_token'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "email_sender.py", line 20, in <module>
    fetch_users()
  File "email_sender.py", line 16, in fetch_users
    sheet = client.open('some')

  some more tracebacks....

  File "/home/memcpy/.local/lib/python3.6/site-packages/google/auth/transport/requests.py", line 444, in request
    self.credentials.before_request(auth_request, method, url, request_headers)
  File "/home/memcpy/.local/lib/python3.6/site-packages/google/auth/credentials.py", line 133, in before_request
    self.refresh(request)
  File "/home/memcpy/.local/lib/python3.6/site-packages/google/oauth2/service_account.py", line 359, in refresh
    access_token, expiry, _ = _client.jwt_grant(request, self._token_uri, assertion)
  File "/home/memcpy/.local/lib/python3.6/site-packages/google/oauth2/_client.py", line 159, in jwt_grant
    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': 'there was some token so I hided it'})

I tried to google the error, but did not found anything about it. This is my code:

import gspread
from google.oauth2.service_account import Credentials

scope = [
    'https://googleapis.com/auth/drive',
    'https://googleapis.com/auth/spreadsheets'
]

creds = Credentials.from_service_account_file('creds.json', scopes=scope)
client = gspread.authorize(creds)
sheet = client.open('some')
like image 872
strncmp Avatar asked Sep 19 '25 17:09

strncmp


1 Answers

I followed this tutorial linked here: https://www.youtube.com/watch?v=cnPlKLEGR7E&list=PLdu6wGxXWFgX9XlahY9gHEMdZ7CL5CHMY&index=5&ab_channel=TechWithTim

Make sure the scope variable is defined properly and as a list like here:

scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]
like image 171
Jade Olayy Avatar answered Sep 21 '25 05:09

Jade Olayy