2

I am trying to use the Python Google API, and encounter an issue when using Google's quickstart example from https://developers.google.com/people/quickstart/python#configure_the_sample, as-is. When I run this example the first time, it opens up the Web browser, allows me to authenticate, and it works perfectly fine. But then, if I run the script again, instead of authenticating, it tries to use the token that was saved in token.json and this fails with:

Traceback (most recent call last):
  File "/home/thomas/test.py", line 58, in <module>
    main()
  File "/home/thomas/test.py", line 24, in main
    creds = Credentials.from_authorized_user_file('token.json', SCOPES)
  File "/home/thomas/.local/lib/python3.10/site-packages/google/oauth2/credentials.py", line 440, in from_authorized_user_file
    return cls.from_authorized_user_info(data, scopes)
  File "/home/thomas/.local/lib/python3.10/site-packages/google/oauth2/credentials.py", line 390, in from_authorized_user_info
    raise ValueError(
ValueError: Authorized user info was not in the expected format, missing fields refresh_token.

What am I missing?

Thomas Petazzoni
  • 5,636
  • 17
  • 25

2 Answers2

2

I found my issue: my OAuth key in the Google Cloud console was configured as a "web application" OAuth key, while it should have been a "desktop application" key. With that fixed, it all works perfectly well.

Thomas Petazzoni
  • 5,636
  • 17
  • 25
0

I managed to resolve it using the answer on this question. Check this out Not receiving Google OAuth refresh token

Realizt30
  • 173
  • 2
  • 12