Устаревание Google Plus - PullRequest
       12

Устаревание Google Plus

0 голосов
/ 03 февраля 2019

Я получил электронное письмо от Google, в котором говорилось, что использование всех API Google+ отключено.В настоящее время я использую googleAPI.google.plus, чтобы подписывать людей, использующих Google.Собирается ли этот плагин добавить обновление для поддержки нового способа авторизации пользователей с помощью Google?

Подробности среды: ОС: Mac OS X Версия Node.js: v 10.8.0 npm версия: v6.5.0 версия googleapis: 33

const googleAPI = require('googleapis');

const plus = googleAPI.google.plus({
            version: 'v1',
            auth: configs.googleAPIKey // specify your API key here
        });

 // Check if Google tokens are valid
        plus.people.get({
            userId: googleUserId,
            fields: 'displayName,emails,name,image',
            access_token: googleAccessToken
        })
            .then((user) => {
                logger.debug('From google: ' + util.inspect(user.data));
                logger.debug('First Name: ' + user.data.name.givenName);
                logger.debug('Last Name: ' + user.data.name.familyName);
            })

1 Ответ

0 голосов
/ 03 февраля 2019

Вы не показываете, как используете этот объект для входа, поэтому ответить на него немного сложно.

Однако пакет googleapis уже поддерживает знак- с клиентом OAuth2 , который вы можете создать с помощью чего-то вроде

const {google} = require('googleapis');

const oauth2Client = new google.auth.OAuth2(
  YOUR_CLIENT_ID,
  YOUR_CLIENT_SECRET,
  YOUR_REDIRECT_URL
);

Затем вы можете получить URL-адрес для перенаправления на него, чтобы они могли войти с помощью чего-то вроде

const url = oauth2Client.generateAuthUrl({
  // If you only need one scope you can pass it as a string
  scope: scopes
});

и затем перенаправить их на url.Как только они войдут в этот URL, они будут перенаправлены на URL, указанный вами как YOUR_REDIRECT_URL, который будет включать параметр с именем code.Этот код понадобится вам для обмена учетными данными, включая токен авторизации

const {tokens} = await oauth2Client.getToken(code)
oauth2Client.setCredentials(tokens);

Если вам просто нужно использовать ключ API (на что намекает ваш пример),тогда вам просто нужно включить ключ так же, как вы сейчас делаете для вызовов API, которые вам нужно сделать.Но это не относится к авторизации.

Поскольку похоже, что вы хотите получить информацию о профиле, вы можете использовать что-то вроде userinfo или People API и выбирать, какие поля вы хотите использовать дляпользователь.

Использование userinfo может выглядеть примерно так:

oauth2client.userinfo.get().then( profile => {
  // Handle profile info here
});

Метод people.get дает вам немного больше контроля и может выглядеть примерно так:

const people = google.people({
  version: "v1"
});
const fields = [
  "names",
  "emailAddresses",
  "photos"
];
people.people.get({
  resourceName: "people/me",
  personFields: fields.join(',')
})
.then( user => {
  // Handle the user results here
});
...