如何使用 Google Oauth .NET 库获取用户的电子邮件地址

How to get email address of a user using Google Oauth .NET library

我想在成功登录后获取用户的电子邮件地址。 Google Plus API 将按 Google 折旧。还有其他方法可以仅访问用户的电子邮件地址吗?使用下面的代码,我将获得用户的访问令牌和 id_token。

UserCredential credential =
                GoogleWebAuthorizationBroker.AuthorizeAsync(
                    new ClientSecrets { ClientId = clientId, ClientSecret = clientSecret }
                    , scopes
                    , userName
                    , CancellationToken.None
                    , new FileDataStore(fileDataStorePath)).Result;

更新:以下代码有效。

           var gmailService = new Google.Apis.Gmail.v1.GmailService(new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                ApplicationName = "App name"
            });

            var gmailProfile = gmailService.Users.GetProfile("me").Execute();
            string EmailAddress = gmailProfile.EmailAddress;

确保您已将“电子邮件”范围作为范围的一部分。

创建一个服务对象。

var service = new PeopleService(new BaseClientService.Initializer()
   {
    HttpClientInitializer = credential,
    ApplicationName = "Peopleservice Oauth2 Authentication Sample"
    });

然后向人提出要求api。

var results = service.People.Get("person/me").ExecuteAsync();