I\'ve successfully built an application that fetches an access and refresh token.
In my script I check if the access token is valid and if not I then use the refresh
"invalid_grant" can be due to an expired/invalid refresh token. In my case, it had an extra space too much at the end.
In the OAuth2 spec, "invalid_grant" is sort of a catch-all for all errors related to invalid/expired/revoked tokens (auth grant or refresh token).
There's a lot potential causes for the problems, here's a checklist:
I've written a short article summarizing each item with some debugging guidance to help find the culprit. We spent days hunting this down, hope it may help others turn those days into hours.
The reason of the "Invalid grant" error may be due to the refresh token not working. This could be because When the number of refresh tokens exceeds the limit, older tokens become invalid. If the application attempts to use an invalidated refresh token, an invalid_grant error response is returned.Here is the link for more documentation.
my issues is authorization_code just to exchange access token, you cannot reuse it. just renew authorization_code to get new access token
As everyone is telling you as far as I know that error could be caused by 2 reasons:
I had that issue before (same error message) and turns out my Refresh Token got expired.
Google now has a dedicated page in their API guide for this error where it says there are only 2 reasons for this...
The limit for each unique pair of OAuth 2.0 client and Google Analytics account is 25 refresh tokens. If the application continues to request refresh tokens for the same Client/Account pair, once the 26th token is issued, the 1st refresh token that was previously issued will become invalid.