Hi, We have solved this issue.
As all of our clients link to our Adwords Account MCC, we always OAuth to our MCC. What we were doing is requesting a new OAuth refresh token every time we setup a new client in our system and saved this refresh token against this client - this meant that we were exceeding the 50 refresh tokens allowed to be issued so the older refresh tokens were becoming expired. We are now only saving one refresh token per a client is and email combination and using that to login into our MCC. Thanks Sanjay On Friday, September 28, 2018 at 9:43:03 PM UTC+1, Milind Sankeshware (AdWords API Team) wrote: > > Hi Sanjay, > > The "invalid_grant" error usually indicates that the access or refresh > token being passed in your request is incorrect or invalid. To verify that > your credentials are correct, you could also try the CURL request provided > below and see if you are able to generate the access tokens? If the > credentials are correct, you should get an access token for the below > request. > curl https://www.googleapis.com/oauth2/v4/token \ > -d refresh_token=your-refresh_token \ > -d client_id=your-client-id \ > -d client_secret=your-client-secret \ > -d grant_type=refresh_token > > If your credentials are incorrect and still facing an issue then could you > generate a new refresh token with the help of this guide > <https://developers.google.com/adwords/api/docs/guides/first-api-call#get_an_oauth2_refresh_token_and_configure_your_client> > and > retry your request? As per this guide > <https://developers.google.com/identity/protocols/OAuth2InstalledApp#offline>, > > you will need to create limited refresh token. When the user login exceeds > the number of refresh tokens that are generated, the older ones will be > invalidated. For instance, when you create the 51st refresh token for a > given set of credentials the very first refresh token will be invalidated > due to this limit. If you are using the client library > <https://developers.google.com/adwords/api/docs/clientlibraries> to make > the API call, you will need to store this refresh token in property file so > that client library will generate the access token automatically. Let me > know if you have any further questions. > > Thanks, > Milind, AdWords API Team > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog: https://googleadsdeveloper.blogspot.com/ =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To post to this group, send email to adwords-api@googlegroups.com To unsubscribe from this group, send email to adwords-api+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/adwords-api?hl=en --- You received this message because you are subscribed to the Google Groups "AdWords API and Google Ads API Forum" group. To unsubscribe from this group and stop receiving emails from it, send an email to adwords-api+unsubscr...@googlegroups.com. Visit this group at https://groups.google.com/group/adwords-api. To view this discussion on the web visit https://groups.google.com/d/msgid/adwords-api/1482a34f-edf3-4d5c-87ec-314b37fdc795%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.