Google API 对于 .NET - idatastore 用户 ID

Google API for .NET - idatastore userid

我是 Google API 的新手,并尝试在 Windows Phone.

上使用它的 .NET 客户端库

我正在使用 GoogleWebAuthorizationBroker 来授权用户。问题是它有一个 "userID" 参数。它是什么?是 Google 电子邮件帐户吗?我如何在应用程序第一次运行时知道用户的帐户?

https://developers.google.com/api-client-library/dotnet/reference/1.9.2/classGoogle_1_1Apis_1_1Auth_1_1OAuth2_1_1GoogleWebAuthorizationBroker#a95045cb55eeb08fadd27b33e0193327c

谢谢,

这将是一个很长的答案,我主要从我的教程中复制文本 Google .net – FileDatastore demystified

让我们看看 FileDataStore。以下代码验证时。将在执行代码的计算机上的 %AppData% 目录中创建一个名为 Drive.Auth.Store 的文件夹。

因此我们将有一个名为 %AppDatat%\Drive.Auth.Store 的新目录。当我检查我的机器时,我发现它在这里 C:\Users\lindaHP\AppData\Roaming\Drive.Auth.Store

UserCredential credential;
using (var stream = new FileStream(clientSecretsJsonFilePath
                                   ,FileMode.Open
                                   ,FileAccess.Read))
      {   
      credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
      GoogleClientSecrets.Load(stream).Secrets,
      new[] { DriveService.Scope.Drive,  DriveService.Scope.DriveFile },
      "LookIAmAUniqueUser",
       CancellationToken.None,
      new FileDataStore("Drive.Auth.Store")                               
      ).Result;
      }

假设用户在身份验证请求屏幕上单击接受,将在该目录中创建一个具有以下结构的新文件:

Google.Apis.Auth.OAuth2.Responses.TokenResponse-LookIAmAUniqueUser.TokenResponse-LookIAmAUniqueUser

答案:

Userid 是你想要的,它只是一个字符串。只是用来区分同一台机器上的多个用户保存认证。

当您想再次加载用户时,您传递该用户的用户 ID,客户端库将加载他或她的身份验证。这在 windows phone 上并不是真正需要的。应该只有一个用户。

如果您想加载不同的用户,您可以更改用户 ID,它将保存该用户的身份验证(或者如果相关用户已经对您的应用程序进行了身份验证,则加载它)