Message 403: L'API Legacy People n'a pas été utilisée dans le projet


14

L'API Google est active mais donne une erreur; L'API Legacy People n'a pas été utilisée dans le projet auparavant ou elle est désactivée. Activez-le en visitant https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= puis réessayez. Si vous avez activé cette API récemment, attendez quelques minutes que l'action se propage à nos systèmes et réessayez.


La demande nécessite votre numéro de compte Google, sinon la connexion échouera.
jdweng

J'ai exécuté votre identifiant avec le code suivant et il dit que la clé
n'est

Pourquoi ? mais l'ID client est vrai
Ömer ARGIN

2
J'ai exactement la même erreur, elle a commencé la semaine dernière. Avez-vous trouvé un moyen de résoudre ce problème? Je sens que quelque chose s'est mal passé du côté de Google avec mon dossier ClientId ... Peut-être qu'ils travaillaient sur quelque chose et nous avons eu "l'effet secondaire"?
Axel186

2
Quelqu'un a-t-il réussi à trouver une solution à cette erreur? J'essaie simplement d'implémenter la connexion Google et l'erreur se produit toujours en janvier 2020. Tout le monde?
regan

Réponses:


6

Vous n'avez pas besoin d'installer d'autres API comme l'API Google Drive, l'API Google Sheets ou autre, à l'exception de l'API Google+,

L'erreur vient à cause de "passport-google-oauth": "^ 1.0.0"

Changez simplement la version "passport-google-oauth": "^ 1.0.0" en "passport-google-oauth": "^ 2.0.0" et supprimez node_modules et package.lock.json et exécutez "npm i"

C'est ça


tu gères! Je vous remercie! J'utilisais réellement passport-google-oauth20@1.0.0, donc je l'ai supprimé et installé la 2.0version après avoir lu votre réponse et cela a fonctionné.
Daniel

Merci l'homme ça marche, vous êtes champion
Bhagvat Lande

2

Avant l' arrêt de l'API Google+ le 7 mars 2019, les méthodes people.get et people.getOpenIdConnect étaient disponibles pour demander le profil d'une personne.

Pour éviter de rompre les intégrations existantes avec ces méthodes prenant en charge la connexion, une nouvelle implémentation minimale ne renvoie que les champs de base nécessaires à cette fonctionnalité, tels que le nom et l'adresse e-mail, si autorisé par l'utilisateur. L'API Legacy People est l'endroit où ces méthodes resteront disponibles pour les appelants existants sur les points de terminaison HTTP existants.

L'API Legacy People sert une nouvelle implémentation limitée des méthodes héritées de l'API Google+ people.get et people.getOpenIdConnect nécessaires pour maintenir la fonctionnalité de connexion. Il est disponible pour les appelants existants des méthodes d'origine qui n'ont pas migré vers les remplacements recommandés tels que Google Sign-in ou Google People API au moment de la fermeture de l'API Google+.

entrez la description du lien ici

Merci


1

Dans ce cas, je suis confronté au même problème. C'est ce que j'ai fait pour y remédier.

Situation:

  • NodeJS ver 8
  • "passport-google-oauth": "^ 1.0.0"
  • Utilisation de l'API Google+ comme connexion à Google

Lorsque j'exécute les applications et que je clique sur Connexion avec Google, que s'est-il passé ensuite?

Comment je le résous?

  • Accédez à la console Google
  • Cliquez sur Google+ API sous Social APIs, puis sur Enable API
  • Cliquez sur l'API Google Drive sous G Suite, puis cliquez sur Activer l'API
  • Cliquez sur l'API Google Sheets sous G Suite, puis cliquez sur Activer l'API
  • Mettre à jour "passport-google-oauth": "^ 1.0.0" vers "passport-google-oauth": "^ 2.0.0" dans package.json
  • supprimer le dossier package-lock.json et node_modules (pour s'assurer que tout est clair)
  • exécutez cette commande: npm install
  • Ça fonctionne maintenant!

Remarque: mon code précédent utilise toujours profile._json.image.url pour obtenir l'image de profil. En fait, cette réponse n'était plus là. J'ai donc supprimé ce code. Au revoir Google+ Merci à l'API Google People.


Cela me donne une erreur:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B

avez-vous suivi les étapes?
Bobby

0

L'activation de l'API Google Contacts et de l'API Google+ a résolu ce problème pour moi.


Bonjour, cette action doit être valide au moment où vous l'avez effectuée. À partir de maintenant (2020), l'API Google+ a été complètement déclassée pour les nouveaux projets.
avi.elkharrat

0

Salut, je suis récemment tombé sur le même problème. Comme expliqué par Ilan Laloum, l'API Google+ a été complètement déclassée pour les nouveaux projets.

J'ai trouvé que l' API Google People fonctionne de manière similaire. L'exemple suivant est basé sur le didacticiel Bookshelf dans GCP. Le code source peut être consulté ici: 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()
}

Cette méthode nécessite un contexte et un jeton OAuth, tout comme l'API Google+ le faisait auparavant. Le peopleServiceest initialisé de manière similaire.

Le peopleService.People.Get("people/me")prépare une requête qui récupère le profil de l'utilisateur connecté. Ensuite, PersonFields("names,coverPhotos,emailAddresses")un filtre sur les champs de profil. Cette partie de la demande est obligatoire. Éventuellement Do()exécutera la demande.


0

Ce problème peut être résolu à l'aide du 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);
    }
}));
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.