403 Повідомлення: Legacy People API не використовувався в проекті


14

API Google активний, але дає помилку; Legacy People API раніше не використовувався в проекті або його відключали. Увімкніть це, відвідавши https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project=, а потім повторіть спробу. Якщо ви нещодавно ввімкнули цей API, зачекайте кілька хвилин, щоб дія розповсюдилася в наші системи та повторіть спробу.


У запиті потрібен номер вашого облікового запису Google, інакше з’єднання не вдасться.
jdweng

Я побіг свій ідентифікатор з формою коди , наступної і сказати ключ, що не відбувся: stackoverflow.com/questions/34597229 / ...
jdweng

чому? але ідентифікатор клієнта справжній
Ömer ARGIN

2
У мене точно така ж помилка, вона почалася з минулого тижня. Ви знайшли спосіб це виправити? Я відчуваю, що з моїм записом ClientId щось пішло не так ... Можливо, вони над чимось працювали, і ми отримали "побічний ефект"?
Axel186

2
Хтось встиг знайти рішення цієї помилки? Я просто намагаюся реалізувати вхід у Google, і помилка все ж виникає січня 2020 року. Хтось?
реган

Відповіді:


6

Вам не потрібно встановлювати інші API, такі як API Google Drive, API Google Sheets або інші, крім API Google+,

Помилка надходить через "passport-google-oauth": "^ 1.0.0"

Просто змініть версію "passport-google-oauth": "^ 1.0.0" на "passport-google-oauth": "^ 2.0.0" та видаліть node_modules та package.lock.json файл та запустіть "npm i"

Це воно


ти рок! Дякую! Я насправді використовував passport-google-oauth20@1.0.0, тому я видалив її та встановив 2.0версію, прочитавши вашу відповідь, і вона спрацювала.
Даніель

Спасибі, це працює, ви
Бхагват Ланде

2

До закриття API Google+ 7 березня 2019 року для запиту профілю людини були доступні методи people.get та people.getOpenIdConnect.

Щоб уникнути порушення існуючих інтеграцій за допомогою цих методів, що підтримують вхід, нова мінімальна реалізація повертає лише базові поля, необхідні для цієї функціональності, такі як ім'я та адресу електронної пошти, якщо авторизовані користувачем. Legacy People API - це те, де ці методи залишатимуться доступними для існуючих абонентів у існуючих кінцевих точках HTTP.

Legacy People API надає обмежену нову реалізацію застарілих методів Google+ API people.get та people.getOpenIdConnect, необхідних для підтримки функціональності входу. Він доступний для існуючих абонентів оригінальних методів, які не перейшли на рекомендовані заміни, такі як вхід в Google або API Google People під час відключення API Google+.

введіть опис посилання тут

Дякую


1

У цьому випадку я стикаюся з тим же питанням. Це я зробив, щоб виправити це.

Ситуація:

  • NodeJS ver 8
  • "passport-google-oauth": "^ 1.0.0"
  • Використання API Google+ як входу в Google

Коли я запускаю програми та натискаю Увійти через Google, що тоді сталося?

Як я це вирішую?

  • Перейдіть на консоль Google
  • Клацніть API Google+ у розділі API соціальних програм, а потім натисніть Увімкнути API
  • Клацніть API Google Диска під G Suite, а потім натисніть Увімкнути API
  • Клацніть API Google Sheets під G Suite, а потім натисніть Увімкнути API
  • Оновіть "passport-google-oauth": "^ 1.0.0" на "passport-google-oauth": "^ 2.0.0" в package.json
  • видаліть папку package-lock.json та node_modules (щоб усе було зрозуміло)
  • запустіть цю команду: npm install
  • Це працює зараз!

Примітка. Мій попередній код досі використовує profile._json.image.url, щоб отримати зображення профілю. Власне, такої відповіді вже не було. Тому я видаляю цей код. До побачення Google+ Дякуємо API Google People.


Це дає мені помилку:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B

чи дотримувалися ви кроків?
Боббі

0

Увімкнення API контактів Google та API Google+ вирішило цю проблему для мене.


Привіт, ця дія, мабуть, була дійсною до того часу, як ви це зробили. На даний момент (2020) API Google+ повністю вийшов з експлуатації для нових проектів.
avi.elkharrat

0

Привіт, я нещодавно натрапив на те саме питання. Як пояснив Ілан Лалум, API Google+ повністю вийшов з експлуатації для нових проектів.

Я виявив, що Google People API працює аналогічно. Наступний приклад ґрунтується на підручнику " Книжкові полиці" в GCP. Вихідний код можна побачити тут: https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf (відділення appengine/go111/cloudsql)

import people "google.golang.org/api/people/v1"

...

// retrieves the profile of the user associated with the provided OAuth token
func fetchProfile(ctx context.Context, tok *oauth2.Token) (*people.Person, error) {
peopleService, err := people.NewService(ctx, option.WithTokenSource(bookshelf.OAuthConfig.TokenSource(ctx, tok)))
if err != nil {
    return nil, err
}

return peopleService.People.Get("people/me").
    PersonFields("names,coverPhotos,emailAddresses").
    Do()
}

Для цього методу потрібен контекст і маркер OAuth, як і API API раніше. peopleServiceІніціалізується аналогічним чином.

peopleService.People.Get("people/me")Готує запит , який витягує профіль підключеного користувача. Потім PersonFields("names,coverPhotos,emailAddresses")проводиться фільтр по профільних полях. Ця частина запиту є обов'язковою. Врешті-решт Do()виконаємо запит.


0

Цю проблему можна вирішити за допомогою passport-google-token

npm install passport-google-token

const GoogleStrategy = require('passport-google-token').Strategy;

// Google OAuth Strategy
passport.use('googleToken', new GoogleStrategy({
    clientID: CLIENT_ID,
    clientSecret: CLIENT_SECRET
}, async (accessToken, refreshToken, profile, done) => {
    try {
        console.log('creating a new user')
        const newUser = new User({
            google: {
                id: profile.id,
                email: profile.emails[0].value
            }
        });

        await newUser.save();
        done(null, newUser);
    } catch (error) {
        done(error, false, error.message);
    }
}));
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.