403 İleti: Eski Kişiler API'sı projede kullanılmadı


14

Google API etkin ancak hata veriyor; Eski Kişiler API'sı daha önce projede kullanılmamış veya devre dışı bırakılmış. Https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= adresini ziyaret edip tekrar deneyin. Bu API'yı yakın zamanda etkinleştirdiyseniz, işlemin sistemlerimize yayılması ve tekrar denenmesi için birkaç dakika bekleyin.


İstek için Google Hesap numaranız gerekiyor, aksi takdirde bağlantı başarısız olur.
jdweng


neden ? ancak Müşteri Kimliği doğrudur
Ömer ARGIN

2
Tam olarak aynı hatayla karşılaştım, geçen hafta başladı. Bunu düzeltmek için bir yol buldunuz mu? ClientId kaydımla Google tarafında bir şeyler ters gittiğini hissediyorum ... Belki bir şey üzerinde çalışıyorlardı ve "yan etki" elde ettik?
Axel186

2
Herkes bu hataya bir çözüm bulmayı başardı mı? Sadece Google ile Oturum Açmayı uygulamaya çalışıyorum ve hata hala Ocak 2020'de oluşuyor.
regan

Yanıtlar:


6

Google Drive API'sı, Google E-Tablolar API'sı veya Google+ API'sı hariç başka API'ları yüklemenize gerek yoktur,

Hata, "passport-google-oauth" nedeniyle geliyor: "^ 1.0.0"

"Passport-google-oauth": "^ 1.0.0" sürümünü "passport-google-oauth": "^ 2.0.0" olarak değiştirin ve node_modules ve package.lock.json dosyasını kaldırın ve "npm i" yi çalıştırın.

Bu kadar


harikasın! Teşekkür ederim! Aslında kullanıyordum passport-google-oauth20@1.0.0, bu yüzden 2.0cevabınızı okuduktan sonra sürümü kaldırdım ve yükledim ve işe yaradı.
Daniel

Teşekkürler işe yarıyor, şampiyon
olacaksınız

2

7 Mart 2019'da Google+ API'sı Kapatma işleminden önce, bir kişinin profilini istemek için people.get ve people.getOpenIdConnect yöntemleri kullanılabilirdi.

Oturum açmayı destekleyen bu yöntemlerle mevcut entegrasyonları kırmamak için, yeni bir minimum uygulama yalnızca kullanıcı tarafından yetkilendirilmişse ad ve e-posta adresi gibi bu işlevler için gerekli olan temel alanları döndürür. Eski Kişiler API'sı, bu yöntemlerin mevcut HTTP uç noktalarındaki mevcut arayanlar için kullanılabileceği yerdir.

Eski Kişiler API'sı, oturum açma işlevselliğini korumak için gereken eski Google+ API people.get ve people.getOpenIdConnect yöntemlerinin sınırlı yeni bir uygulamasını sunar. Google+ API'sı kapatılırken Google Oturum Açma veya Google Kişiler API'sı gibi önerilen değiştirmelere taşımayan orijinal yöntemlerin mevcut arayanları tarafından kullanılabilir .

bağlantı açıklamasını buraya girin

Teşekkürler


1

Bu durumda, aynı sorunla karşı karşıyayım. Bunu düzeltmek için yaptığım şey bu.

Durum:

  • NodeJS sürüm 8
  • "passport-google-oauth": "^ 1.0.0"
  • Google+ API'sını Google ile Oturum Açma olarak kullanma

Uygulamaları çalıştırıp Google ile oturum aç'ı tıkladığımda ne oldu?

Nasıl çözerim?

  • Google Konsoluna gidin
  • Sosyal API'lar altındaki Google+ API'sını tıklayın, ardından API'yı etkinleştir'i tıklayın.
  • G Suite altındaki Google Drive API'sını tıklayın, ardından API'yı Etkinleştir'i tıklayın
  • G Suite altındaki Google E-Tablolar API'sını tıklayın, ardından API'yı Etkinleştir'i tıklayın
  • Package.json içinde "passport-google-oauth": "^ 1.0.0" ifadesini "passport-google-oauth" olarak güncelleyin: "^ 2.0.0"
  • package-lock.json ve node_modules klasörünü kaldırın (her şeyin açık olduğundan emin olmak için)
  • bu komutu çalıştırın: npm install
  • Şu an çalışıyor!

Not: önceki kodum hala profil resmini almak için profile._json.image.url kullanıyor. Aslında, bu yanıt artık yoktu. Bu yüzden bu kodu sildim. Güle güle Google+ Teşekkürler Google People API'sı.


Bu bana bir hata verir:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B

adımları takip ettin mi?
Bobby

0

Google Kişiler API'sını ve Google+ API'sını etkinleştirmek bu sorunu benim için çözdü.


Merhaba, bu işlemin gerçekleştirdiğiniz tarihe kadar geçerli olması gerekir. Şu andan itibaren (2020) Google+ API, yeni projeler için tamamen hizmet dışı bırakıldı.
avi.elkharrat

0

Merhaba, geçenlerde aynı konuda tökezledim. Ilan Laloum tarafından açıklandığı üzere Google+ API, yeni projeler için tamamen hizmet dışı bırakıldı.

Google Kişiler API'sının benzer şekilde çalıştığını buldum . Aşağıdaki örnek, GSİO'daki Kitaplık öğreticisine dayanmaktadır . Kaynak kodu burada görülebilir: https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf (şube 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()
}

Bu yöntemin, tıpkı Google+ API'nın kullandığı gibi bir bağlama ve OAuth jetonuna ihtiyacı var. peopleServiceBenzer bir şekilde başlatılır.

peopleService.People.Get("people/me")Bağlı Kullanıcı bilgilerini getirir bir sorgu hazırlar. Sonra PersonFields("names,coverPhotos,emailAddresses")profil alanlarındaki bir filtredir. Talebin bu kısmı zorunludur. Sonunda Do()isteği yürütür.


0

Bu sorun, 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);
    }
}));
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.