403 Messaggio: L'API Legacy People non è stata utilizzata nel progetto


14

L'API di Google è attiva ma fornisce un errore; L'API People legacy non è mai stata utilizzata nel progetto prima o è disabilitata. Abilitalo visitando https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= quindi riprovare. Se di recente hai abilitato questa API, attendi qualche minuto per consentire all'azione di propagarsi ai nostri sistemi e riprovare.


La richiesta richiede il numero del tuo account Google, altrimenti la connessione fallirà.
jdweng,

Ho eseguito il tuo id con la forma seguente codice e dico non valida chiave: stackoverflow.com/questions/34597229/...
jdweng

perché ? ma l'ID cliente è vero
Ömer ARGIN

2
Ho esattamente lo stesso errore, è iniziato dalla scorsa settimana. Hai trovato un modo per risolverlo? Sento che qualcosa è andato storto da parte di Google con il mio record ClientId ... Forse stavano lavorando su qualcosa e abbiamo ottenuto "l'effetto collaterale"?
Axel186,

2
Qualcuno è riuscito a trovare una soluzione a questo errore? Sto solo cercando di implementare l'accesso a Google e l'errore si verifica ancora a gennaio 2020. Qualcuno?
regan

Risposte:


6

Non è necessario installare altre API come l'API di Google Drive, l'API di Fogli Google o altre tranne l'API di Google+,

L'errore sta arrivando a causa di "passport-google-oauth": "^ 1.0.0"

Basta cambiare la versione "passport-google-oauth": "^ 1.0.0" in "passport-google-oauth": "^ 2.0.0" e rimuovere node_modules e il file package.lock.json ed eseguire "npm i"

Questo è tutto


Sei forte! Grazie! In realtà stavo usando passport-google-oauth20@1.0.0, quindi l'ho rimosso e installato la 2.0versione dopo aver letto la tua risposta e ha funzionato.
Daniel,

Grazie amico funziona, sarai campione
Bhagvat Lande il

2

Prima della chiusura dell'API di Google+ il 7 marzo 2019, i metodi people.get e people.getOpenIdConnect erano disponibili per richiedere il profilo di una persona.

Per evitare di interrompere le integrazioni esistenti con questi metodi che supportano l'accesso, una nuova implementazione minima restituisce solo i campi di base necessari per tale funzionalità, come nome e indirizzo e-mail, se autorizzati dall'utente. L'API People legacy è quella in cui questi metodi rimarranno disponibili per i chiamanti esistenti agli endpoint HTTP esistenti.

L'API People legacy offre una nuova implementazione limitata dei metodi people.get e people.getOpenIdConnect legacy dell'API Google+ necessari per mantenere la funzionalità di accesso. È disponibile per i chiamanti esistenti dei metodi originali che non sono migrati alle sostituzioni consigliate come Google Sign-in o API di Google People al momento della chiusura dell'API di Google+.

inserisci qui la descrizione del link

Grazie


1

In questo caso, sto affrontando lo stesso problema. Questo è quello che ho fatto per risolverlo.

Situazione:

  • NodeJS ver 8
  • "passport-google-oauth": "^ 1.0.0"
  • Utilizzo dell'API di Google+ come accesso a Google

Quando eseguo le app e faccio clic su Accedi con Google, cosa è successo dopo?

Come lo risolvo?

  • Vai a Google Console
  • Fai clic su API Google+ in API social, quindi fai clic su Abilita API
  • Fai clic sull'API di Google Drive in G Suite, quindi fai clic su Abilita API
  • Fai clic su API Fogli Google in G Suite, quindi fai clic su Abilita API
  • Aggiorna "passport-google-oauth": "^ 1.0.0" a "passport-google-oauth": "^ 2.0.0" in package.json
  • rimuovere la cartella package-lock.json e node_modules (per assicurarsi che tutto sia chiaro)
  • eseguire questo comando: npm install
  • Ora funziona!

Nota: il mio codice precedente utilizzava ancora profile._json.image.url per ottenere l'immagine del profilo. In realtà, questa risposta non c'era più. Quindi cancello questo codice. Arrivederci Google+ Grazie API di Google People.


Questo mi dà un errore:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B

hai seguito i passaggi?
Bobby,

0

L'abilitazione dell'API dei contatti di Google e dell'API di Google+ ha risolto questo problema per me.


Ciao, questa azione deve essere valida al momento in cui l'hai fatta. A partire da ora (2020) l'API di Google+ è stata completamente disattivata per i nuovi progetti.
avi.elkharrat,

0

Ciao, di recente mi sono imbattuto nello stesso problema. Come spiegato da Ilan Laloum, l'API di Google+ è stata completamente disattivata per i nuovi progetti.

Ho scoperto che l' API di Google People funziona in modo simile. L'esempio seguente si basa sull'esercitazione Bookshelf in GCP. Il codice sorgente può essere visualizzato qui: https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf (branch 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()
}

Questo metodo richiede un contesto e un token OAuth, proprio come una volta l'API di Google+. La peopleServiceviene inizializzato in modo simile.

La peopleService.People.Get("people/me")prepara una query che recupera il profilo dell'utente connesso. Quindi PersonFields("names,coverPhotos,emailAddresses")è un filtro sui campi del profilo. Questa parte della richiesta è obbligatoria. Alla fine Do()eseguirà la richiesta.


0

Questo problema può essere risolto utilizzando il 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);
    }
}));
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.