I am trying to make an oauth2 access_token in a server-to-server JSON API scenario. But it failed with invalid_grant error, please help.
from oauth2client.client
I fixed it.
SERVICE_ACCOUNT_EMAIL = 'xxxxxx.apps.googleusercontent.com'
the above is client ID not Email, I fixed this and it's working now.
I have the same problem.
To solve the problem, you need to notice the following elements:
Did you use client_secrets.json in your program? If yes, check whether the name is the same as that in your current directory.
The "client_email
" or the "SERVICE_ACCOUNT_EMAIL
" is not your personal email or the client id. It is "client id's email". You can check that email in https://console.developers.google.com/project/ ==>credentials==>Service account==>email address
.
Basically, if your client id is:<clientid>.apps.googleusercontent.com
You client email here would be:<clientid>@developer.gserviceaccount.com
In my case the problem was with the .boto file. Try to configure it again with the credentials from the Service account.
For the ones using fallback: gcs_oauth2_boto_plugin.SetFallbackClientIdAndSecret(CLIENT_ID, CLIENT_SECRET)
use for the fallback any "Client ID for native application". This is not necessary as its said in: https://cloud.google.com/storage/docs/gspythonlibrary
but i couldn't find other way, it was throwing errors without it.