如何使用 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();
我想在成功登录后获取用户的电子邮件地址。 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();