I see some questions about this with solutions that seem to be deprecated in the Google APIs Node.js Client OAuth API (e.g., [this](https://stackoverflow.com/questions/19947663/how-to-use-the-refreshaccesstoken-method-to-generate-a-new-accesstoken-in-google) and [this](https://stackoverflow.com/questions/36578686/google-oauth2-api-refresh-tokens/36614855)).

There's no documentation I can see regarding using the refresh token to get a new access token ([docs section](https://github.com/google/google-api-nodejs-client#retrieve-access-token)). [In an issue from early 2017](https://github.com/google/google-api-nodejs-client/issues/673#issuecomment-279616392), someone mentions getting off the `oauth2Client.credentials` property, but it looks like that's within a call to one of the other APIs wrapped in the package.

In my use case, I'm querying the Google My Business (GMB) API, which is not wrapped in there, but I'm using the OAuth piece of this package to authenticate and get my tokens.

My request to the GMB API (using the `request-promise` module), looks something like this:

```
function getLocations () {
  return request({
    method: 'POST',
    uri: `${gmbApiRoot}/accounts/${acct}/locations:batchGet`,
    headers: {
      Authorization: `OAuth ${gmbAccessToken}`
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (err) {
    // ...
  });
}

```

I don't think I can pass the `oauth2Client` into the headers for authorization like in the issue response. Is there a way to directly request a new `access_token` given that I have my refresh token cached in my app?

**Update:** Solved! Thanks to Justin for the help. Here's what my working code is looking like:

```
oauth2Client.setCredentials({
  refresh_token: storedRefreshToken
});

return oauth2Client.refreshAccessToken()
.then(function (res) {
  if (!res.tokens && !res.credentials) {
    throw Error('No access token returned.');
  }

  const tokens = res.tokens || res.credentials;

  // Runs my project-level function to store the tokens.
  return setTokens(tokens);
});

```