Не удалось получить пол из Google People API

У меня проблема с получением информации о поле из People API.

Я отправляю запрос на https://people.googleapis.com/v1/people/account_id, который не возвращает поле пола. Если я добавляю genders к personFields, это дает мне Requested entity was not found ошибку.

Похоже, получение этой информации запрещено. Есть ли шанс получить это поле?


person sszymk    schedule 30.11.2017    source источник
comment
Пользователь должен заполнить его и сделать общедоступным.   -  person DaImTo    schedule 30.11.2017
comment
@DalmTo Конечно, в обоих случаях   -  person sszymk    schedule 30.11.2017
comment
что, если вы используете люди / меня, а не идентификатор учетной записи?   -  person DaImTo    schedule 30.11.2017
comment
Я не думаю, что это возможно, потому что я использую этот API для входа пользователя на мою веб-страницу. Или я неправильно понял концепцию этого API?   -  person sszymk    schedule 01.12.2017
comment
Я думаю, вам следует изучить этот developers.google.com/identity/protocols/OpenIDConnect.   -  person DaImTo    schedule 01.12.2017
comment
Вероятно, нет возможности заменить мое решение на OpenID Connect. Мне удалось войти в систему и зарегистрировать клиентов с помощью моего текущего решения и получить их пол из учетных записей Google, которые были созданы несколько месяцев назад. Не работает только с новыми аккаунтами.   -  person sszymk    schedule 01.12.2017
comment
Google people API предназначен для доступа к данным о контактах людей в Google. Это не имеет ничего общего с аутентификацией пользователя на вашем сайте.   -  person DaImTo    schedule 01.12.2017
comment
Я вижу здесь: ссылка есть поле personField genders. Почему я не могу получить эту информацию даже с цитируемого сайта?   -  person sszymk    schedule 01.12.2017
comment
Скорее всего, это связано с тем, что @DaImTo предположил, что пол НЕ является общедоступным. Как сказано в stackoverflow.com/questions/43324890/, если пол НЕ является общедоступным, вы его не получите. Новые пользователи, которые регистрируются, очень редко публикуют пол. Как вы уверены, что этот пол установлен в открытом доступе? Вы должны предложить пользователю посетить aboutme.google.com и убедиться, что пол открыт для всех.   -  person Amos Yuen    schedule 01.12.2017
comment
Google People API не имеет ничего общего с процессом входа в систему. Он предназначен только для получения пользовательских данных. Таким образом, использование people/me должно быть правильным, если пользователь вошел в систему. Если пользователь не вошел в систему, вы не можете использовать его, и он будет получать только общедоступные данные. Если вы не вошли в систему, вы должны увидеть developers.google.com. /identity/sign-in/web   -  person Amos Yuen    schedule 01.12.2017


Ответы (1)


Существует два способа использования API Google People.

Первый предполагает, что вы использовали Oauth2 для аутентификации вашего пользователя.

ПОЛУЧИТЬ https://people.googleapis.com/v1/people/me

возвращает информацию о текущем аутентифицированном пользователе.

Второй — публичный вызов API. вы можете использовать ключ API или Oauth2.

ПОЛУЧИТЬ https://people.googleapis.com/v1/people/117200475532672775346

Это вернет информацию о конкретном пользователе {117200475532672775346}, но это будет зависеть от того, что этот пользователь сделал общедоступным. Вышеупомянутый номер — это мой личный аккаунт g+, следующий — гендерный ответ.

"genders": [
    {
      "metadata": {
        "primary": true,
        "source": {
          "type": "PROFILE",
          "id": "117200475532672775346"
        }
      },
      "value": "female",
      "formattedValue": "Female"
    }

Я понятия не имею, где вы получаете идентификатор своей учетной записи, это идентификатор пользователя Google. Информация должна быть заполнена в Google, плюс я предлагаю вам проверить учетную запись пользователя google+, чтобы увидеть, что они сделали общедоступными https://plus.google.com/u/0/117200475532672775346. Примечание. Неважно, является ли это текущим аутентифицированным пользователем, если у него нет общедоступной информации, которую вы не можете увидеть в своем приложении.

Совет: если вы хотите видеть только пол, вы можете использовать параметр fields, чтобы запросить именно это.

?поля=гендеры

person DaImTo    schedule 01.12.2017