使用刷新令牌的C#sharp身份验证的Google.api客户端
我正在使用新的.NET测试版Google API客户端库来加载多个用户的任务列表。它被归类为“已安装应用程序”(根据谷歌开发控制台),拥有多个授权用户帐户。对一个用户进行身份验证(使用google.api)非常简单,但我不知道如何使用刷新令牌进行身份验证,以及如何使用此令牌获取服务对象 示例代码:使用刷新令牌的C#sharp身份验证的Google.api客户端,c#,oauth-2.0,google-api,google-api-dotnet-client,C#,Oauth 2.0,Google Api,Google Api Dotnet Client,我正在使用新的.NET测试版Google API客户端库来加载多个用户的任务列表。它被归类为“已安装应用程序”(根据谷歌开发控制台),拥有多个授权用户帐户。对一个用户进行身份验证(使用google.api)非常简单,但我不知道如何使用刷新令牌进行身份验证,以及如何使用此令牌获取服务对象 示例代码: var credential = GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(G
var credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
GoogleClientSecrets.Load(GoogleTools.GenerateStreamFromString(GoogleTools.Cred)).Secrets,
new[] { TasksService.Scope.Tasks },
"user", CancellationToken.None, new FileDataStore("Tasks.Auth.Store")).Result;
// Create the service.
service = new TasksService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "Tasks API Sample",
});
我想使用刷新令牌构造对象
凭证
,但我真的迷路了,找不到任何合适的文档。我已经在以下线程中回答了这个问题:
希望它也能对您有所帮助。您可以检查当前令牌是否过期,并使用以下代码刷新:
if (credential.Token.IsExpired(Google.Apis.Util.SystemClock.Default))
{
var refreshResult = credential.RefreshTokenAsync(CancellationToken.None).Result;
}
在此之后,凭证将具有
credential.Token.AccessToken
和credential.Token.refreshtToken
刷新的此凭证的可能副本是否会更新FileDataStore对象?与其他答案相比,您的建议似乎非常简单。GoogleCredential.FromAccessToken
没有RefreshTokenAsync