Область OAuth 2.0 для имен пользователей Google Apps с google-api-nodejs-client

Я пытаюсь использовать пакет Google 'google-api-nodejs-client' (https://github.com/google/google-api-nodejs-client) для обработки аутентификации OAuth 2.0.

Я изменил пример в examples/oauth2.js, чтобы в console.log отображался весь объект профиля.

Какую область можно использовать для правильного извлечения пользователей 'givenName' и 'familyName', если они проходят аутентификацию с использованием учетной записи Google Apps? Используя следующую область:

scope: [
  'https://www.googleapis.com/auth/plus.login',
  'https://www.googleapis.com/auth/plus.profile.emails.read'
]

после аутентификации возвращает следующий ответ:

{ kind: 'plus#person',
  etag: '"LONG STRING"',
  emails: [ { value: '[email protected]', type: 'account' } ],
  objectType: 'person',
  id: '123456',
  displayName: '',
  name: { familyName: '', givenName: '' },
  image:
   { url: 'https://lh3.googleusercontent.com/ etc etc',
     isDefault: false },
  isPlusUser: false,
  language: 'en_GB',
  circledByCount: 0,
  verified: false,
  domain: 'example.example' }

person neurotech    schedule 25.07.2014    source источник


Ответы (1)


Я попытался поэкспериментировать с API в API Explorer (https://developers.google.com/apis-explorer/#p/plus/v1/plus.people.get?userId=me), и для получения моих familyName и givenName.

Возможно, у пользователя, у которого вы запрашиваете данные, нет имени и фамилии?

person Ryan Seys    schedule 25.07.2014
comment
Он определенно установлен где-то, так как я использую свою учетную запись для тестирования. Когда я перехожу на страницу своего согласия, мое имя и фамилия отображаются в виджете «Выбор учетной записи» (не уверен, что это имеет значение). - person neurotech; 25.07.2014
comment
Хорошо. Я попробовал API Explorer, и он вернул правильную информацию об имени: displayName: Tim Douglas, name: {familyName: Douglas, namedName: Tim} - person neurotech; 25.07.2014
comment
Я нашел, откуда берутся эти значения. Обозреватель API позволяет использовать 'googleapis.com/auth/, который скоро станет устаревшим. область userinfo.profile, которая возвращает вышеупомянутый объект имени. - person neurotech; 25.07.2014
comment
Хорошо знать! Возможно, я уже авторизовал API Explorer с этой областью, поэтому он просто автоматически извлек эту информацию. Рад, что ты это понял :) - person Ryan Seys; 25.07.2014