Ошибка при попытке получить электронную почту аутентифицированного пользователя с помощью googleapis и node.js

Я реализую аутентификацию на своем веб-сайте с помощью googleapis. Функция plus.people.get не работает. Я видел, что он устарел на некоторых форумах, но он все еще задокументирован в Google, что меня смутило. Я получаю сообщение об ошибке: Legacy People API ранее не использовался в проекте 328985958128 или отключен. Включите его, посетив https://console.developers.google.com/apis/api/legacypeople.googleapis.com, затем повторите попытку. Если вы недавно включили этот API, подождите несколько минут, чтобы действие распространялось на наши системы, и повторите попытку. Веб-страница даже не загружается. Мой код

   if (!req.body.token) return res.status(500).json({ type: 'error', message: 'No access token provided.' })
   const OAuth2 = google.auth.OAuth2
   const oauth2Client = new google.auth.OAuth2(keys.client_id, keys.client_secret)
   google.options({ auth: oauth2Client });
   const plus = google.plus('v1')
   oauth2Client.setCredentials({
       access_token: req.body.token
   })
   plus.people.get({
       userId: 'me',
       auth: oauth2Client
   }, (error, response) => {
       if (error) 
       console.log(error)
       return res.status(500).json({ type: 'error',error })
       const emails = (response.data || {}).emails

person Alejandro Nieto    schedule 28.08.2020    source источник


Ответы (1)


Вы используете google.plus('v1'), который устарел

  • Вместо этого вы должны использовать

const service = google.people({version: 'v1', auth: oauth2Client})

для создания служебного объекта.

  • Для выполнения запроса больше не требуется дополнительная авторизация, поэтому:
service.people.get({
       userId: 'me'
   }, (error, response) => {
      ...
  })

Дальнейшая информация:

person ziganotschka    schedule 28.08.2020