Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google Server to Server OAuth Error

I'm trying to connect my server to Google's API but I keep getting the following error.

google.auth.exceptions.RefreshError: ('invalid_scope: h is not a valid audience string.', u'{\n "error" : "invalid_scope",\n "error_description" : "h is not a valid audience string."\n}')

I've looked around but I just can't seem to get why google's supplied code is giving me that error. I think it's a problem with my service.json, but I can't pinpoint what it is.

This is the code, which is pretty much swiped from Google with very limited changes.

from google.oauth2 import service_account
import googleapiclient.discovery

SCOPES = 'https://www.googleapis.com/auth/drive.metadata.readonly'
SERVICE_ACCOUNT_FILE = 'service.json'

credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)
drive = googleapiclient.discovery.build('drive', 'v3',     credentials=credentials)
response = drive.files().list(
    pageSize=10,fields="nextPageToken, files(id, name)").execute()

print(response)

What I'm looking to do is automatically download a spreadsheet to local using Google's API maybe once an hour without user verification.

like image 244
Daniel Kang Avatar asked Jan 29 '23 20:01

Daniel Kang


1 Answers

I'm having this error.

It looks like scopes is expected to be iterable, so when a single string is given, the library processes each letter separately (the first being 'h').

Try changing line 4 to add brackets:

SCOPES = ['https://www.googleapis.com/auth/drive.metadata.readonly']

like image 60
fuzzyTew Avatar answered Feb 04 '23 11:02

fuzzyTew