我正在使用新的测试版Google API Client Library for .NET来加载多个用户的任务列表。它被归类为"已安装的应用程序" (根据谷歌开发者控制台)有多个授权用户帐户。验证一个用户(使用google.apis)非常简单,但我无法弄清楚,如何使用刷新令牌执行相同操作,以及如何使用此令牌获取服务对象。
示例代码:
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",
});
我想使用刷新令牌构建对象credential
,但我真的丢失了,找不到任何合适的文档。
答案 0 :(得分:0)
我已经在以下主题中回答了那个问题: .NET Google api 1.7 beta authenticating with refresh token
希望它对你也有帮助。
答案 1 :(得分:0)
您可以使用以下代码检查当前令牌是否已过期并刷新:
if (credential.Token.IsExpired(Google.Apis.Util.SystemClock.Default))
{
var refreshResult = credential.RefreshTokenAsync(CancellationToken.None).Result;
}
此后,凭证已刷新credential.Token.AccessToken
和credential.Token.RefreshToken