Golang OAuth client and refresh token
<p>I have configured Go with OAuth against Google. I am then using the access token to do requests against gmail api, contacts api, drive api etc etc. These need the string that is the actual access token, as opposed to the object <code>*oauth2.Token</code>.</p>

<p>Everything works while the access token is valid. Once its not valid, I can't access the data. This makes sense as I need to use the refresh token to get a new access token, before doing the queries against the services.</p>

<p>My understanding is the <code>*http.Client</code> that you create from the OAuth token will do the refresh for a new access token if its necessary, automatically.</p>

<p>However what I am not sure about is how to get the latest access token out of the client to then use as part of the <code>GET</code> request against Google APIs to auth the service.</p>

<p>So to summarize:</p>

<pre><code>//generate client
//get accessToken.AccessToken from client
//do HTTP GET request to get a users image from contact api (or something)
//pass as either a GET parameter, or as a header the access token
</code></pre>

<p>If the client handles refreshing the token, then I need to use the client to get the access token so its valid. 
How do you do that? I've looked into using <code>config.TokenSource(ctx, tok)</code> and then i can call TokenSource on that, but that doesn't need the client and therefore the token is not refreshed as far as I can tell.</p>