ข้อความ 403: Legacy People API ไม่ได้ถูกใช้ในโครงการ


14

Google API ทำงานอยู่ แต่ให้ข้อผิดพลาด Legacy People API ไม่ได้ใช้ในโครงการก่อนหน้านี้หรือปิดใช้งาน เปิดใช้งานโดยไปที่https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project=จากนั้นลองอีกครั้ง หากคุณเปิดใช้งาน API นี้เมื่อเร็ว ๆ นี้รอสักครู่เพื่อให้การดำเนินการเผยแพร่ไปยังระบบของเราและลองอีกครั้ง


คำขอนี้ต้องการหมายเลขบัญชี Google ของคุณมิฉะนั้นการเชื่อมต่อจะล้มเหลว
jdweng

ฉันรันรหัสของคุณด้วยรูปแบบรหัสต่อไปนี้และมันบอกว่าคีย์ไม่ถูกต้อง: stackoverflow.com/questions/34597229/…
jdweng

ทำไม แต่รหัสลูกค้าเป็นจริง
Ömer ARGIN

2
ฉันมีข้อผิดพลาดเหมือนกันทั้งหมดมันเริ่มต้นจากสัปดาห์ที่แล้ว คุณพบวิธีการแก้ไขหรือไม่ ฉันรู้สึกว่ามีบางอย่างผิดปกติทางฝั่งของ Google กับบันทึกรหัสลูกค้าของฉัน ... บางทีพวกเขาอาจกำลังทำงานบางอย่างและเราได้รับ "ผลข้างเคียง" หรือไม่
Axel186

2
มีใครจัดการหาวิธีแก้ไขข้อผิดพลาดนี้หรือไม่? ฉันแค่พยายามใช้การลงชื่อเข้าใช้ของ Google และข้อผิดพลาดยังคงเกิดขึ้นในมกราคม 2020 ใคร ๆ
regan

คำตอบ:


6

คุณไม่จำเป็นต้องติดตั้ง API อื่น ๆ เช่น Google Drive API, Google ชีต API หรืออื่น ๆ ยกเว้น Google+ API

ข้อผิดพลาดเกิดขึ้นเนื่องจาก "passport-google-oauth": "^ 1.0.0"

เพียงแค่เปลี่ยนรุ่น "passport-google-oauth": "^ 1.0.0" เป็น "passport-google-oauth": "^ 2.0.0" และลบ node_modules และไฟล์ package.lock.json และรัน "npm i"

แค่นั้นแหละ


คุณร็อค! ขอบคุณ! ฉันใช้งานจริงpassport-google-oauth20@1.0.0ฉันจึงลบมันและติดตั้ง2.0เวอร์ชั่นหลังจากอ่านคำตอบของคุณแล้ว
Daniel

ขอบคุณคนที่ทำงานได้คุณจะได้แชมป์
Bhagvat Lande

2

ก่อนที่จะปิดตัวลง API ของ Google+ในวันที่ 7 มีนาคม 2019 จะมีวิธี people.get และ people.getOpenIdConnect ให้ขอโปรไฟล์ของบุคคล

เพื่อหลีกเลี่ยงการรวมระบบที่มีอยู่ด้วยวิธีการเหล่านี้ที่สนับสนุนการลงชื่อเข้าใช้การใช้งานขั้นต่ำใหม่เพียงส่งฟิลด์พื้นฐานที่จำเป็นสำหรับการทำงานนั้นเช่นชื่อและที่อยู่อีเมลหากได้รับอนุญาตจากผู้ใช้ Legacy People API เป็นที่ที่วิธีการเหล่านี้จะยังคงใช้ได้สำหรับผู้โทรที่มีอยู่ที่จุดปลาย HTTP ที่มีอยู่

Legacy People API ให้บริการการใช้งานแบบ จำกัด ใหม่สำหรับวิธี Google+ API people.get และ people.getOpenIdConnect แบบดั้งเดิมที่จำเป็นสำหรับการบำรุงรักษาฟังก์ชันการลงชื่อเข้าใช้ มีให้สำหรับผู้โทรที่มีอยู่ของวิธีดั้งเดิมที่ยังไม่ได้ย้ายไปยังการเปลี่ยนที่แนะนำเช่นGoogle Sign-inหรือGoogle People APIในเวลาที่ปิด API ของ Google+

ป้อนคำอธิบายลิงก์ที่นี่

ขอบคุณ


1

ในกรณีนี้ฉันกำลังเผชิญกับปัญหาเดียวกัน นี่คือสิ่งที่ฉันทำเพื่อแก้ไข

สถานการณ์:

  • NodeJS เวอร์ชั่น 8
  • "passport-google-oauth": "^ 1.0.0"
  • ใช้ Google+ API เป็น Google Sign-in

เมื่อฉันรันแอพและคลิกลงชื่อเข้าใช้ด้วย Google แล้วจะเกิดอะไรขึ้น

ฉันจะแก้มันได้อย่างไร

  • ไปที่ Google Console
  • คลิกที่ Google+ API ใน Social APIs จากนั้นคลิก Enable API
  • คลิกที่ Google Drive API ใน G Suite จากนั้นคลิกเปิดใช้ API
  • คลิกที่ Google ชีต API ภายใต้ G Suite จากนั้นคลิกเปิดใช้ API
  • อัปเดต "passport-google-oauth": "^ 1.0.0" เป็น "passport-google-oauth": "^ 2.0.0" ในแพ็คเกจ.json
  • ลบ package-lock.json และโฟลเดอร์ node_modules (เพื่อให้แน่ใจว่าทุกอย่างชัดเจน)
  • เรียกใช้คำสั่งนี้: การติดตั้ง npm
  • มันใช้งานได้แล้ว!

หมายเหตุ: รหัสก่อนหน้าของฉันยังคงใช้ profile._json.image.url เพื่อรับภาพโปรไฟล์ ที่จริงแล้วคำตอบนี้ไม่ได้อยู่ที่นั่นอีกแล้ว ดังนั้นฉันจะลบรหัสนี้ ลาก่อน Google+ ขอขอบคุณ Google People API


นี่ทำให้ฉันมีข้อผิดพลาด:There was an error while loading /apis/api/legacypeople.googleapis.com/overview?project=xxxx. Please try again.
Jim.B

คุณทำตามขั้นตอนต่างๆแล้วหรือยัง
Bobby

0

การเปิดใช้งาน Google Contacts API และ Google+ API ช่วยแก้ไขปัญหานี้ให้ฉัน


สวัสดีการกระทำนี้จะต้องถูกต้องตามเวลาที่คุณทำ ณ ตอนนี้ (2020) Google+ API ได้รับการรื้อถอนอย่างสมบูรณ์สำหรับโครงการใหม่
avi.elkharrat

0

สวัสดีฉันเพิ่งพบกับปัญหาเดียวกัน ตามที่อธิบายไว้โดย Ilan Laloum Google+ API ได้รับการปลดประจำการอย่างสมบูรณ์สำหรับโครงการใหม่

ฉันพบว่าGoogle People APIทำงานในลักษณะเดียวกัน ตัวอย่างต่อไปนี้เป็นไปตามบทช่วยสอนBookshelfใน GCP สามารถดูซอร์สโค้ดได้ที่นี่: https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf (สาขา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()
}

วิธีนี้ต้องการบริบทและโทเค็น OAuth เช่นเดียวกับ Google+ API ที่ใช้ การpeopleServiceเริ่มต้นในแบบเดียวกัน

peopleService.People.Get("people/me")เตรียมแบบสอบถามที่เรียกรายละเอียดของผู้ใช้เชื่อมต่อได้ จากนั้นPersonFields("names,coverPhotos,emailAddresses")เป็นตัวกรองในฟิลด์โปรไฟล์ ส่วนนี้ของคำขอมีผลบังคับใช้ ในที่สุดDo()จะดำเนินการตามคำขอ


0

ปัญหานี้สามารถแก้ไขได้โดยใช้ 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);
    }
}));
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.