Hi Adam I "think" I might've solved my own issue with the solution I presented where the refresh token is set to the OAuth2 object, which is then passed to the AdWordsSessionBuilder. Based on this, I assume when you use the returned AdWordsSession object to make API calls (containing the refresh token via OAuth2), the API knows to automatically refresh the access token with the given refresh token, so you don't get API call errors due to expired access token.
Although my solution is a bit different, reading the README at https://github.com/googleads/googleads-php-lib and if you're not using adsapi_php.ini, have a look at OAuth2TokenBuilder.php <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/Common/OAuth2TokenBuilder.php>, where you can build using withClientId(), withClientSecret() and withRefreshToken(), which I assume is then passed to AdWordsSessionBuilder.php <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/AdWords/AdWordsSessionBuilder.php> via withOAuth2Credential() that you just created. With some pseudo code, I'm guessing, $oauth2 =(new OAuth2TokenBuilder()) ->withClientId('client_id') // replace with real values ->withClientSecret('client_secret') // replace with real values ->withRefreshToken('refresh_token') // replace with real values ->withScopes('scopes_urls') // replace with real values ->build(); $session = (new AdWordsSessionBuilder()) ->withOAuth2Credential($oauth2) ->withDeveloperToken('dev_token') // replace with real values ->build(); // make API calls with $session based on https://github.com/googleads/googleads-php-lib#basic-usage The reason why I'm not using the adsapi_php.ini file is because I'm using the web application flow (not installed app). On Thursday, 9 February 2017 21:35:46 UTC-8, Adam Haining wrote: > > I've tried all of this as well, and if I try to force renewing the token > before it expires, it just gives me the current token. Then after it > expires, I just always get the message: > invalid_grant > Token has been expired or revoked. > > Specific examples on how to do this would be greatly appreciated. I've > attempted using OAuth2TokenRefresher.php as well, no luck. Thanks! > > On Thursday, February 9, 2017 at 2:16:37 PM UTC-7, Shwetha Vastrad > (AdWords API Team) wrote: >> >> Hi Danny, >> >> You can check if the access token is about to expire and then refresh >> this token as needed. The OAuth2TokenRefresher.php >> <https://github.com/googleads/googleads-php-lib/blob/master/src/Google/AdsApi/Common/Util/OAuth2TokenRefresher.php> >> provides >> functionality to retrieve OAuth2 access tokens and handling refreshing the >> token if it is going to expire. By default, the client libraries >> automatically refresh expired access tokens. >> >> Regards, >> Shwetha, AdWords API Team. >> > -- -- =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ Also find us on our blog and Google+: https://googleadsdeveloper.blogspot.com/ https://plus.google.com/+GoogleAdsDevelopers/posts =~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~ You received this message because you are subscribed to the Google Groups "AdWords 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 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/ddf31586-7610-41bf-ae68-e746542450c9%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.