///<summary>This is the required method for IHttpExecuteInterceptor.  This method allows us to hijack our own requests and add headers or other values to the context.
 ///Google assumes that this method will attach needed Authorization headers, which we must use a Bearer token for.</summary>
 public System.Threading.Tasks.Task InterceptAsync(HttpRequestMessage request, CancellationToken cancellationToken)
 {
     BearerToken.AuthorizationHeaderAccessMethod bearerTokenInterceptor = new BearerToken.AuthorizationHeaderAccessMethod();
     //Overwrite the Authorization header with a bearer token.
     bearerTokenInterceptor.Intercept(request, AccessToken);
     //We can't use Task.CompletedTask because we are not on .NET 4.6 at this time.  Simply run an empty task.
     return(System.Threading.Tasks.Task.Run(() => { }));
 }
            public async Task InterceptAsync(HttpRequestMessage request, CancellationToken taskCancellationToken)
            {
                var tokenResult = await _accessTokenProvider.RequestAccessToken(
                    new AccessTokenRequestOptions
                {
                    Scopes = new[] { "https://www.googleapis.com/auth/drive.appdata" }
                });

                if (tokenResult.TryGetToken(out AccessToken token))
                {
                    Console.WriteLine(
                        $"token:[ expires: {token.Expires} scopes: {string.Join("|", token.GrantedScopes)}");

                    _accessMethod.Intercept(request, token.Value);
                }
            }