403 Nachricht: Die Legacy People-API wurde im Projekt nicht verwendet

14

Die Google-API ist aktiv, gibt jedoch einen Fehler aus. Die Legacy People-API wurde zuvor noch nicht im Projekt verwendet oder ist deaktiviert. Aktivieren Sie es, indem Sie https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= besuchen und es dann erneut versuchen. Wenn Sie diese API kürzlich aktiviert haben, warten Sie einige Minuten, bis die Aktion auf unsere Systeme übertragen wird, und wiederholen Sie den Vorgang.

Ömer ARGIN
quelle
Für die Anfrage ist Ihre Google-Kontonummer erforderlich. Andernfalls schlägt die Verbindung fehl.
JDWeng
Ich habe Ihre ID mit dem folgenden Codeformular ausgeführt und der Schlüssel ist ungültig: stackoverflow.com/questions/34597229/…
jdweng
Warum ? aber Client ID ist wahr
Ömer ARGIN
2
Ich habe genau den gleichen Fehler, er begann letzte Woche. Haben Sie einen Weg gefunden, dies zu beheben? Ich habe das Gefühl, dass bei Google mit meinem ClientId-Datensatz etwas schief gelaufen ist ... Vielleicht haben sie an etwas gearbeitet und wir haben den "Nebeneffekt"?
Axel186
2
Hat es jemand geschafft, eine Lösung für diesen Fehler zu finden? Ich versuche nur, Google Sign-In zu implementieren, und der Fehler tritt immer noch im Januar 2020 auf.
Regan

Antworten:

6

Sie müssen keine anderen APIs wie die Google Drive API, die Google Sheets API oder andere außer der Google+ API installieren.

Der Fehler tritt aufgrund von "passport-google-oauth" auf: "^ 1.0.0"

Ändern Sie einfach die Version "passport-google-oauth": "^ 1.0.0" in "passport-google-oauth": "^ 2.0.0" und entfernen Sie die Knotenknotenmodule und die Datei package.lock.json und führen Sie "npm i" aus.

Das ist es

Mohd Sahil
quelle
du rockst! Vielen Dank! Ich habe es tatsächlich verwendet [email protected], also habe ich es entfernt und die 2.0Version installiert, nachdem ich Ihre Antwort gelesen hatte, und es hat funktioniert.
Daniel
Danke Mann, es funktioniert, du bist Champion
Bhagvat Lande
2

Vor dem Herunterfahren der Google+ API am 7. März 2019 standen die Methoden people.get und people.getOpenIdConnect zum Anfordern des Profils einer Person zur Verfügung.

Um zu vermeiden, dass vorhandene Integrationen mit diesen Methoden, die die Anmeldung unterstützen, unterbrochen werden, gibt eine neue minimale Implementierung nur grundlegende Felder zurück, die für diese Funktionalität erforderlich sind, z. B. Name und E-Mail-Adresse, sofern dies vom Benutzer autorisiert wurde. In der Legacy People-API bleiben diese Methoden für vorhandene Anrufer an den vorhandenen HTTP-Endpunkten verfügbar.

Die Legacy People-API bietet eine eingeschränkte neue Implementierung der älteren Google+ API-Methoden people.get und people.getOpenIdConnect, die für die Aufrechterhaltung der Anmeldefunktionalität erforderlich sind. Es steht vorhandenen Anrufern der ursprünglichen Methoden zur Verfügung, die zum Zeitpunkt des Herunterfahrens der Google+ API nicht auf empfohlene Ersetzungen wie Google Sign-In oder Google People API migriert wurden .

Geben Sie hier die Linkbeschreibung ein

Vielen Dank

Ilan Laloum
quelle
1

In diesem Fall stehe ich vor dem gleichen Problem. Dies ist, was ich getan habe, um es zu beheben.

Situation:

  • NodeJS ver 8
  • "passport-google-oauth": "^ 1.0.0"
  • Verwenden der Google+ API als Google-Anmeldung

Was ist dann passiert, wenn ich die Apps starte und auf Bei Google anmelden klicke?

Wie löse ich es?

  • Gehen Sie zur Google-Konsole
  • Klicken Sie unter Social APIs auf Google+ API und dann auf Enable API
  • Klicken Sie unter G Suite auf Google Drive API und dann auf API aktivieren
  • Klicken Sie unter G Suite auf Google Sheets API und dann auf API aktivieren
  • Aktualisieren Sie "passport-google-oauth": "^ 1.0.0" auf "passport-google-oauth": "^ 2.0.0" in package.json
  • Entfernen Sie die Ordner package-lock.json und node_modules (um sicherzustellen, dass alles klar ist).
  • Führen Sie diesen Befehl aus: npm install
  • Es funktioniert jetzt!

Hinweis: In meinem vorherigen Code wird weiterhin profile._json.image.url verwendet, um das Profilbild abzurufen. Eigentlich war diese Antwort nicht mehr da. Also lösche ich diesen Code. Auf Wiedersehen Google+ Vielen Dank, dass Sie Google People API.

Bobby
quelle
Dies gibt mir einen Fehler:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B
Hast du die Schritte befolgt?
Bobby
0

Durch Aktivieren der Google Contacts-API und der Google+ API wurde dieses Problem für mich behoben.

Memuna
quelle
Hallo, diese Aktion muss zum Zeitpunkt Ihrer Ausführung gültig gewesen sein. Ab sofort (2020) wurde die Google+ API für neue Projekte vollständig außer Betrieb genommen.
avi.elkharrat
0

Hallo, ich bin kürzlich über das gleiche Thema gestolpert. Wie von Ilan Laloum erläutert, wurde die Google+ API für neue Projekte vollständig außer Betrieb genommen.

Ich habe festgestellt, dass die Google People-API auf ähnliche Weise funktioniert. Das folgende Beispiel basiert auf dem Bookshelf- Tutorial in GCP. Der Quellcode ist hier zu sehen: https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf (Zweigstelle 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()
}

Diese Methode benötigt einen Kontext und ein OAuth-Token, genau wie es die Google+ API gewohnt ist. Das peopleServicewird auf ähnliche Weise initialisiert.

Das peopleService.People.Get("people/me")bereitet eine Abfrage vor, die das Profil des verbundenen Benutzers abruft. Dann PersonFields("names,coverPhotos,emailAddresses")ist ein Filter für Profilfelder. Dieser Teil der Anfrage ist obligatorisch. Eventuell Do()wird die Anfrage ausgeführt.

avi.elkharrat
quelle
0

Dieses Problem kann mit dem behoben werden 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);
    }
}));
Suresh Mangs
quelle