I have the following Python code to connect to my a Google spreadsheet I own. The API credential is stored on a Dropbox folder which is synchronized to both my Windows machine and my mac. I have checked that the URLs for the folder are correct for each system.
if sys.platform == 'win32':
weight_folder = #path to Dropbox folder on my Windows machine
else:
weight_folder = #path to Dropbox folder on my Mac
client_id = 'redacted'
client_secret = 'redacted'
height = 182
flow = oauth2client.client.OAuth2WebServerFlow(client_id, client_secret, 'https://spreadsheets.google.com/feeds https://www.googleapis.com/auth/drive')
storage = oauth2client.file.Storage('credentials_weight.dat')
credentials = storage.get()
if credentials is None or credentials.invalid:
import argparse
flags = argparse.ArgumentParser(parents=[oauth2client.tools.argparser]).parse_args([])
credentials = oauth2client.tools.run_flow(flow, storage, flags)
gc = gspread.authorize(credentials)
This works totally fine when I run it on my windows machine. When I run it on my mac however, I get the message
Failed to start a local webserver listening on either port 8080 or port 8090. Please check your firewall settings and locally running programs that may be blocking or using those ports. Falling back to --noauth_local_webserver and continuing with authorization. Go to the following link in your browser:
Following the link gives me the following message
Error 400: invalid_request. You can't sign in to this app because it doesn't comply with Google's OAuth 2.0 policy for keeping apps secure.
I am not very skilled with Google's APIs, but I don't understand why the app would be authorized on Windows but not authorized on mac. It feels like the error message is not accurate.
What could cause this?