C# - People API не возвращает адрес электронной почты
Я пытаюсь получить адрес электронной почты и имя вошедшего в систему пользователя. Я вижу имя пользователя, но адрес электронной почты показывает ноль. Вот код, который я написал, чтобы получить оба значения:
using Google.Apis.Auth.OAuth2;
using Google.Apis.People.v1;
using System.Net;
using System.Threading;
using Google.Apis.Services;
using Google.Apis.People.v1.Data;
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "jfms2vr52dm9eghchabasa5.apps.googleusercontent.com",
ClientSecret = "xxxxxxxxxxxx"
},
new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly", "https://www.googleapis.com/auth/user.birthday.read", "https://www.googleapis.com/auth/userinfo.email" },
"me",
CancellationToken.None).Result;
// Create the service.
var service = new PeopleService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "M_Test1",
});
PeopleResource.GetRequest peopleRequest = service.People.Get("people/me");
peopleRequest.RequestMaskIncludeField = "person.names,person.emailAddresses,person.birthdays";
Person profile = peopleRequest.Execute();
h ttps:https://stackru.com/images/9e731fb4d0e905f8d1f153e91eccff32ec4b512c.png
1 ответ
Похоже, вы изменили свои области. Чтобы увидеть адрес электронной почты, пользователь должен предоставить вам доступ к области действия электронной почты. Учетные данные для пользователя, который вошел в систему, хранятся в%appdata% под именем me, которое вы дали ему в приведенном ниже коде.
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "jfms2vr52dm9eghchabasa5.apps.googleusercontent.com",
ClientSecret = "xxxxxxxxxxxx"
},
new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly", "https://www.googleapis.com/auth/user.birthday.read", "https://www.googleapis.com/auth/userinfo.email" },
"me", // change this to reset login
CancellationToken.None).Result;
Это просто строка, обозначающая пользователя. Вы можете изменить его на что-нибудь еще, и он предложит вам войти снова. Или вы можете просто удалить файл в%appdata%