403 메시지 : 레거시 People API가 프로젝트에서 사용되지 않았습니다


14

Google API가 활성화되었지만 오류가 발생했습니다. 레거시 피플 API는 프로젝트에서 사용되지 않았거나 비활성화되었습니다. https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= 를 방문하여 사용하도록 설정 한 다음 다시 시도하십시오. 최근에이 API를 활성화 한 경우 몇 분 동안 작업이 시스템에 전파되어 다시 시도 될 때까지 기다리십시오.


요청에 Google 계정 번호가 필요하지 않으면 연결에 실패합니다.
jdweng

다음 코드 형식으로 ID를 실행했으며 키가 잘못되었습니다 : stackoverflow.com/questions/34597229/…
jdweng

왜 ? 그러나 고객 ID는 사실입니다
Ömer ARGIN

2
정확히 같은 오류가 있습니다. 지난주부터 시작되었습니다. 그 문제를 해결할 방법을 찾았습니까? 내 ClientId 레코드로 인해 Google 측에서 문제가 발생했다고 생각합니다. 아마도 그들이 무언가 작업 중이고 "부작용"을 얻었습니까?
Axel186

2
누구 든지이 오류에 대한 해결책을 찾았습니까? Google 로그인을 구현하려고하는데 2020 년 1 월 오류가 계속 발생합니다.
레이건

답변:


6

Google 드라이브 API, Google 스프레드 시트 API 또는 Google+ API 이외의 다른 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답변을 읽은 후 버전을 제거하고 버전을 설치 했는데 효과가있었습니다.
다니엘

고마워, 작동합니다. 챔피언
Bhagvat Lande

2

전과 의 Google+ API 종료2019 년 3 월 7 일 people.get 및 people.getOpenIdConnect 메소드를 사용하여 개인의 프로파일을 요청할 수있었습니다.

로그인을 지원하는 이러한 방법과의 기존 통합을 방해하지 않기 위해 새로운 최소 구현은 사용자가 승인 한 경우 이름 및 전자 메일 주소와 같은 해당 기능에 필요한 기본 필드 만 반환합니다. 레거시 피플 API는 기존 HTTP 엔드 포인트에서 기존 호출자가이 메소드를 계속 사용할 수있는 곳입니다.

레거시 피플 API는 로그인 기능을 유지하는 데 필요한 레거시 Google+ API people.get 및 people.getOpenIdConnect 메소드의 제한된 새로운 구현을 제공합니다. Google Sign-in 또는 Google People API 와 같은 권장 대체로 마이그레이션되지 않은 원래 메소드의 기존 발신자에게 제공됩니다.Google+ API 종료시 .

여기에 링크 설명을 입력하십시오

감사


1

이 경우 동일한 문제에 직면하고 있습니다. 이것이 내가 고치기 위해 한 일입니다.

상태:

  • NodeJS 버전 8
  • "passport-google-oauth": "^ 1.0.0"
  • Google+ API를 Google 로그인으로 사용

앱을 실행하고 Google에 로그인을 클릭하면 어떻게됩니까?

어떻게 해결합니까?

  • Google 콘솔로 이동
  • 소셜 API에서 Google+ API를 클릭 한 다음 API 사용을 클릭하십시오.
  • G Suite에서 Google Drive API를 클릭 한 다음 API 사용을 클릭하십시오.
  • G Suite에서 Google 스프레드 시트 API를 클릭 한 다음 API 사용을 클릭합니다.
  • package.json에서 "passport-google-oauth": "^ 1.0.0"을 "passport-google-oauth": "^ 2.0.0"으로 업데이트
  • package-lock.json 및 node_modules 폴더를 제거하십시오 (모든 것이 명확하도록)
  • 이 명령을 실행하십시오 : npm install
  • 지금 작동합니다!

참고 : 이전 코드는 여전히 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

단계를 따랐습니까?
바비

0

Google 주소록 API 및 Google+ API를 사용 설정하면이 문제가 해결되었습니다.


안녕하세요,이 행동은 당신이 한 시간까지 유효했을 것입니다. 현재 (2020 년) Google+ API는 새로운 프로젝트를 위해 완전히 폐기되었습니다.
avi.elkharrat

0

안녕하세요, 최근에 같은 문제에 대해 고민했습니다. Ilan Laloum이 설명했듯이 Google+ API는 새로운 프로젝트를 위해 완전히 폐기되었습니다.

Google People API 가 비슷한 방식으로 작동 한다는 것을 알았 습니다. 다음 예는 GCP 의 책장 자습서를 기반으로합니다 . 소스 코드는 여기에서 볼 수 있습니다 : 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()
}

이 방법에는 Google+ API와 마찬가지로 컨텍스트와 OAuth 토큰이 필요합니다. 그만큼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.