Graham Chiu
Graham Chiu

Reputation: 4886

Invalid_grant error on trying to get access token googleapi

I'm following the steps here . I've got the authorization code in the browser, but get a:

** Access error: protocol error: "Server error: HTTP/1.0 400 Bad Request"

when I generate my request to try and obtain my token. I changed the target to http so that I could trace the http request in wireshark and I get this with line wrap added:

POST /oauth2/v3/token HTTP/1.0
Accept: */*
Accept-Charset: utf-8
Host: www.googleapis.com
User-Agent: REBOL
Content-Type: application/x-www-form-urlencoded
Content-Length: 251

code=url-encoded-my-authorisation-code&
client_id=my-client-id.apps.googleusercontent.com&
client_secret=my-client-secret&
redirect_uri=urn-blah-blah&
grant_type=authorization_code

which looks good to me.

When I use the http instead, I get this message

{"error":"internal_failure","error_description":"SSL is required to perform this operation."}

but unfortunately it's not telling me if my request is otherwise off to help me with the ssl request.

PS: I've progressed further. I removed the URL encoding from the redirect_uri and now I get an invalid_grant error. Before this it complained of a missing scheme for the redirect_uri.

On one occasion I did success in obtaining an access token but I've not been able to reproduce this. I saw my app listed in those I've granted access tokens. I removed my app and tried to grant again but keep failing.

My clock is correct so that's not the issue. The oauth2 playground works fine and as far as i can tell I'm doing the same but without success.

Mine is an installed app so I can't provide my credentials to the playground as a way to trust their redirect_uri is not provided and I get an error.

Upvotes: 3

Views: 2320

Answers (2)

Sergiy Voytovych
Sergiy Voytovych

Reputation: 497

Try change url to get info about token from Google use https://www.googleapis.com/oauth2/v3/tokeninfo?access_token={accessToken}

Be careful vith version api

Upvotes: 0

Graham Chiu
Graham Chiu

Reputation: 4886

It seems that there is a limit on refresh_tokens and although removing the app from those with authority to access my calendar did not work, deleting my project from the https://console.developers.google.com/ and recreating them worked. My code then ran successfully without any changes.

Upvotes: 0

Related Questions