gpt4 book ai didi

c# - 使用适用于 .NET 的 Google API 访问用户信息

转载 作者:行者123 更新时间:2023-12-01 17:08:26 24 4
gpt4 key购买 nike

我正在使用 Google API 预览版 (1.7.0) 通过 OAuth2 向用户授权。我一直在关注sample MVC code 。这是我的 FlowMetadata 实现:

private static readonly IAuthorizationCodeFlow flow = ...; // Implementation of tokens

public static async Task<Google.Apis.Auth.OAuth2.Web.AuthorizationCodeWebApp.AuthResult> GetCredentials(Controller controller, CancellationToken cancellationToken) {
var result = await new AuthorizationCodeMvcApp(controller, new Models.Generic.AppFlowMetadata()).AuthorizeAsync(cancellationToken);
if (result.Credential != null)
{
// Struggling here. How do I make a request to get the e-mail address?
}
}

我现在拥有有效的 UserCredential 以及访问 token ,但我找不到任何用于访问用户信息的托管 API。我确实找到了this question ,但这似乎假设我只是发出原始请求,而不是使用官方库。

如何获取用户的电子邮件地址?

最佳答案

您应该执行以下操作:

  1. 除了 Google.Apis.Auth NuGet 软件包外,您还应该安装以下页面:https://www.nuget.org/packages/Google.Apis.Oauth2.v2

  2. Google.Apis.Oauth2.v2.Oauth2Service.Scope.UserinfoProfileGoogle.Apis.Oauth2.v2.Oauth2Service.Scope.UserinfoEmail 添加到范围列表(当您初始化 AppFlowMetadata 时)。

  3. 现在,添加以下代码:

if (result.Credential != null)
{
var oauthSerivce = new Google.Apis.Oauth2.v2.Oauth2Service(
new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "OAuth 2.0 Sample",
});

var userInfo = await oauthSerivce.Userinfo.Get().ExecuteAsync();
// You can use userInfo.Email, Gender, FamilyName, ...
}

关于c# - 使用适用于 .NET 的 Google API 访问用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21310307/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com