403 Pesan: Legacy People API belum digunakan dalam proyek

14

Google API aktif tetapi memberikan kesalahan; API Legacy People belum pernah digunakan dalam proyek sebelumnya atau dinonaktifkan. Aktifkan dengan mengunjungi https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= lalu coba lagi. Jika Anda mengaktifkan API ini baru-baru ini, tunggu beberapa menit hingga tindakan menyebar ke sistem kami dan coba lagi.

Ömer ARGIN
sumber
Permintaan memerlukan nomor Akun Google Anda, jika tidak, koneksi akan gagal.
jdweng
Saya menjalankan id Anda dengan bentuk kode berikut dan ia mengatakan kunci tidak valid: stackoverflow.com/questions/34597229/…
jdweng
kenapa tetapi ID Klien benar
Ömer ARGIN
2
Saya memiliki kesalahan yang persis sama, dimulai dari minggu lalu. Sudahkah Anda menemukan cara untuk memperbaikinya? Saya merasa ada yang salah di sisi Google dengan catatan ClientId saya ... Mungkin mereka mengerjakan sesuatu dan kami mendapat "efek samping"?
Axel186
2
Adakah yang berhasil menemukan solusi untuk kesalahan ini? Saya hanya mencoba menerapkan Google Masuk dan kesalahan masih terjadi pada Januari 2020. Ada yang?
Regan

Jawaban:

6

Anda tidak perlu menginstal API lain seperti Google Drive API, Google Sheets API atau lainnya kecuali Google+ API,

Kesalahan terjadi karena "paspor-google-oauth": "^ 1.0.0"

Cukup ganti versi "passport-google-oauth": "^ 1.0.0" menjadi "passport-google-oauth": "^ 2.0.0" dan hapus file node_modules dan package.lock.json dan jalankan "npm i"

Itu dia

Mohd Sahil
sumber
kamu keren! Terima kasih! Saya sebenarnya menggunakan [email protected], jadi saya menghapusnya dan menginstal 2.0versi setelah membaca jawaban Anda dan itu berhasil.
Daniel
Terima kasih lelaki itu berhasil, Anda juara
Bhagvat Lande
2

Sebelum Shutdown API Google+ pada 7 Maret 2019, metode people.get dan people.getOpenIdConnect tersedia untuk meminta profil seseorang.

Untuk menghindari penghancuran integrasi yang ada dengan metode ini yang mendukung proses masuk, implementasi minimal baru hanya mengembalikan bidang dasar yang diperlukan untuk fungsi itu, seperti nama dan alamat email, jika diizinkan oleh pengguna. API Legacy People adalah tempat metode ini akan tetap tersedia untuk penelepon yang ada di titik akhir HTTP yang ada.

API Legacy People melayani implementasi baru terbatas metode legacy Google+ API law.get dan people.getOpenIdConnect yang diperlukan untuk mempertahankan fungsi masuk. Ini tersedia untuk penelepon yang ada dari metode asli yang belum bermigrasi ke penggantian yang disarankan seperti Google Masuk atau Google People API pada saat shutdown Google+ API.

masukkan deskripsi tautan di sini

Terima kasih

Ilan Laloum
sumber
1

Dalam hal ini, saya menghadapi masalah yang sama. Inilah yang telah saya lakukan untuk memperbaikinya.

Situasi:

  • NodeJS ver 8
  • "paspor-google-oauth": "^ 1.0.0"
  • Menggunakan Google+ API sebagai Google Masuk

Ketika saya menjalankan aplikasi dan klik Masuk dengan Google, apa yang terjadi kemudian?

Bagaimana saya menyelesaikannya?

  • Pergi ke Google Console
  • Klik API Google+ di bawah API Sosial, lalu klik Aktifkan API
  • Klik API Google Drive di bawah G Suite, lalu klik Aktifkan API
  • Klik pada Google Sheets API di bawah G Suite, lalu klik Enable API
  • Perbarui "passport-google-oauth": "^ 1.0.0" ke "passport-google-oauth": "^ 2.0.0" di package.json
  • hapus folder package-lock.json dan node_modules (untuk memastikan semuanya jelas)
  • jalankan perintah ini: instal npm
  • Berhasil sekarang!

Catatan: kode saya sebelumnya masih menggunakan profile._json.image.url untuk mendapatkan gambar profil. Sebenarnya, respons ini sudah tidak ada lagi. Jadi saya menghapus kode ini. Selamat tinggal Google+ Terima kasih Google People API.

Polisi
sumber
Ini memberi saya kesalahan:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B
Sudahkah Anda mengikuti langkah-langkahnya?
Bobby
0

Mengaktifkan Google Kontak API dan Google+ API memperbaiki masalah ini untuk saya.

Memuna
sumber
Hai, tindakan ini pasti valid pada saat Anda melakukannya. Sampai sekarang (2020) Google+ API telah sepenuhnya dinonaktifkan untuk proyek-proyek baru.
avi.elkharrat
0

Hai Saya baru-baru ini tersandung masalah yang sama. Seperti dijelaskan oleh Ilan Laloum, Google+ API telah dinonaktifkan sepenuhnya untuk proyek-proyek baru.

Saya menemukan bahwa Google People API bekerja dengan cara yang sama. Contoh berikut didasarkan pada tutorial Rak Buku di GCP. Kode sumber dapat dilihat di sini: 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()
}

Metode ini membutuhkan konteks dan token OAuth, sama seperti Google+ API dulu. Ini peopleServicediinisialisasi dengan cara yang sama.

The peopleService.People.Get("people/me")mempersiapkan query yang mengambil profil pengguna terhubung. Kemudian PersonFields("names,coverPhotos,emailAddresses")filter pada bidang profil. Bagian dari permintaan ini adalah wajib. Akhirnya Do()akan menjalankan permintaan.

avi.elkharrat
sumber
0

Masalah ini dapat diperbaiki menggunakan 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
sumber