имя, имя и фамилия json свойства отсутствуют в google + api получить информацию о пользователе - PullRequest
0 голосов
/ 10 апреля 2019

Я создал приложение google api services и проверил, что область информации user.profile по умолчанию добавлена.

Аутентификация, токен и получение информации о пользователе работают нормально, однако в get не хватает нескольких полейИнформация о пользовательском интерфейсе API.

Я использую указанные ниже конечные точки для связи с Google API.


WebRequest request = WebRequest.Create(googleGetUrl + $"&access_token={accesstoken}");
request.Credentials = CredentialCache.DefaultCredentials;

using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
    using (Stream receiveStream = response.GetResponseStream())
    {
        using (StreamReader readStream = new StreamReader(receiveStream))
        {
            string responseFromServer = readStream.ReadToEnd();

            return JsonConvert.DeserializeObject<GoogleUser>(responseFromServer);
        }
    }
}

Я получаю ответ json, как указано ниже

{
  id: "xxxxxxxxxxxxx",
  email: "dummy@email.com",
  verified_email: true,
  picture: "https://validurl/photo.jpg",
  hd: "getting value"
}

Но что яхочу ожидать, как указано ниже Json

{
  id: "xxxxxxxxxxxxx",
  email: "dummy@email.com",
  verified_email: true,
  picture: "https://validurl/photo.jpg",
  hd: "getting value",
  name: "some value",
  family_name: "some value",
  given_name: "some value"
}

конфигурация области:

введите описание изображения здесь

Пожалуйста, дайте мне знать, если я пропустил любую конфигурацию,Ваша помощь будет высоко ценится.

С уважением, Мохсин

Ответы [ 2 ]

0 голосов
/ 10 апреля 2019

Мне не хватало параметра контекста в URL-адресе аутентификации, и использование нижеуказанного URL-адреса работает для меня.

return string.Format ("https://accounts.google.com/o/oauth2/auth?client_id={0}&redirect_uri={1}&response_type=code&scope={2}", ClientId, CallBackUrl," https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email");

С уважением, Мохсин Патан

0 голосов
/ 10 апреля 2019

Ответ от конечной точки userinfo не соответствует стандартам, все серверы oauth имеют свою собственную реализацию того, что они будут возвращать. Если вы хотите получить больше информации, попробуйте people api . Никто не должен возвращать электронную почту, если вы не запросите объем электронной почты. И Google прекратил возвращать Verified_email несколько лет назад, я думаю.

GET /v1/people/me HTTP/1.1
Host: people.googleapis.com
Content-length: 0
Authorization: Bearer aJxKQvzgCj5fa86EbB_AYqjt-
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...