2016-03-07 2 views
2

Я думаю, это должно быть просто, но не может найти пример.
Я использую основной пример входа в Google. с тегами заголовков (в том числе объем рождения):google api с javascript. получить день рождения и пол

<meta name="google-signin-scope" content="profile email https://www.googleapis.com/auth/user.birthday.read" /> 
<meta name="google-signin-client_id" content="xxx my id xxx" /> 
<script src="https://apis.google.com/js/platform.js" async defer></script> 

и кнопка Defualt входа в HTML теле:

<div id="gsignin" class="g-signin2" data-onsuccess="onSignIn" data-theme="dark"></div> 

и ЯШ:

function onSignIn(googleUser) { 
     var profile = googleUser.getBasicProfile(); 
     console.log(googleUser); 
     console.log("ID: " + profile.getId()); 
     console.log("Name: " + profile.getName()); 
     console.log("Image URL: " + profile.getImageUrl()); 
     console.log("Email: " + profile.getEmail()); 
     g_token = googleUser.getAuthResponse().id_token; 
    } 

Все это работает просто отлично, пользователь предлагается предоставить разрешения. и я получаю общую информацию о профиле. но я не уверен, как получить дату рождения, это как-то в возвращенном объекте? мне нужен еще один вызов api?
Я видел множество примеров об использовании областей, но не смог найти как читать данные (дата рождения) ... то же самое для пола, не думайте, что для этого есть особый масштаб, i думаю, это должно быть частью основной информации профиля
заранее спасибо

редактировать (?): просто уточнить, я знаю, я использую правильный масштаб. Я не знаю, как читать данные. например, после аутентификации пользователя - profile.getEmail() вернет электронное письмо. что вернет день рождения?

+2

День рождения не всегда доступен в JSON. Только пользователи, которые делятся с датой рождения, имеют свойство дня рождения. –

+0

Возможный дубликат [как указать область действия google api для получения дня рождения] (http://stackoverflow.com/questions/23896424/how-to-specify-the-scope-of-google-api-to-get день рождения) – DaImTo

+0

Ваш вопрос не спрашивает о сфере видимости, но ответ тот же. – DaImTo

ответ

1

GoogleUser.getBasicProfile() Получить основную информацию о профиле пользователя.


Объект gapi.auth2.BasicProfile. Вы можете получить свойства этого объекта со следующими методами:
BasicProfile.getId() BasicProfile.getName()
BasicProfile.getImageUrl()
BasicProfile.getEmail()

Этот метод не возвращает день рождения , Единственный способ узнать день рождения - использовать people.get из google + api.

+0

Мне нужно, чтобы создать другой/другой объект gapi, используя другую библиотеку? У меня есть «живой» объект gapi, я думаю, он создан с помощью включенного скрипта https://apis.google.com/js/platform.js, но если я попробую 'gapi.client.load ('plus', 'v1 ', function() {...}); 'i get js error" Невозможно прочитать свойство' load 'undefined " –

+1

Возможно, вам понадобится другая служба google + api service https://github.com/googleplus/gplus -quickstart-javascript/blob/master/index.html Я не эксперт javaScript, который нашел вас, хотя это официальный образец проекта. – DaImTo

+0

после добавления Google+ api в менеджере api и после добавления ссылки на https://apis.google.com/js/client.js Теперь я могу называть 'gapi.client.load ('plus', 'v1', function () {...}); ' , но я все еще не получаю день рождения в ответе, хотя я убедился, что он публичный (тестирование на моей собственной учетной записи). также странно, что теперь я использую как client.js, так и платформу.js, и я думаю, что есть 2 «живых» объекта gapi. не думайте, что это намеченная реализация ... –

Смежные вопросы