I have run into this same problem. I followed google's documentation and the sample code fails to auth and complains about missing items in the json it just had me create and download.
the token.json is in the same dir as my gmail_test.py (which is an exact copy/paste from their sample code)