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

私は次のコードフォームでIDを実行しましたが、キーが無効であると表示されます:stackoverflow.com/questions/34597229/…–
jdweng

どうして ?しかし、クライアントIDは本当です
オメルARGIN

2
私はまったく同じエラーを持っています、それは先週から始まりました。それを修正する方法を見つけましたか?Google側でClientIdレコードに問題が発生したように思います...おそらく彼らは何かに取り組んでいて、「副作用」が発生しましたか?
Axel186

2
誰かがこのエラーの解決策を見つけることができましたか?Googleサインインを実装しようとしているだけですが、2020年1月でもエラーが発生します。
1

回答:


6

Google Drive API、Google Sheets 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あなたの答えを読んだ後でそれを削除してバージョンをインストールしましたが、うまくいきました。
ダニエル

それが動作感謝の男、you'rチャンピオン
Bhagvatランデ

2

2019年3月7日のGoogle+ APIシャットダウンの前は、people.getおよびpeople.getOpenIdConnectメソッドを使用して、個人のプロファイルをリクエストできました。

サインインをサポートするこれらのメソッドとの既存の統合を壊さないようにするために、新しい最小限の実装では、ユーザーによって承認された場合、名前や電子メールアドレスなど、その機能に必要な基本フィールドのみが返されます。Legacy People APIは、既存のHTTPエンドポイントで既存の呼び出し元がこれらのメソッドを引き続き使用できる場所です。

Legacy People APIは、サインイン機能を維持するために必要な従来のGoogle+ APIのpeople.getメソッドとpeople.getOpenIdConnectメソッドの制限された新しい実装を提供します。Google+ APIのシャットダウン時に、GoogleログインGoogle People APIなどの推奨される代替に移行していない元のメソッドの既存の呼び出し元が利用できます。

ここにリンクの説明を入力

ありがとう


1

この場合、私は同じ問題に直面しています。これは私がそれを修正するためにやったことです。

状況:

  • NodeJSバージョン8
  • "passport-google-oauth": "^ 1.0.0"
  • Google+ APIをGoogleログインとして使用する

アプリを実行して[Googleでサインイン]をクリックすると、どうなりますか?

どうすれば解決できますか?

  • Googleコンソールに移動
  • Social APIの下のGoogle+ APIをクリックし、次にEnable APIをクリックします。
  • G Suiteで[Google Drive API]をクリックし、[APIを有効にする]をクリックします
  • G Suiteで[Google Sheets 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 Contacts APIとGoogle+ APIを有効にすると、この問題が解決しました。


こんにちは。このアクションは、実行するまでに有効であったに違いありません。現在(2020年)、Google + APIは新しいプロジェクトで完全に廃止されました。
avi.elkharrat

0

こんにちは私は最近同じ問題に悩まされました。Ilan Laloumが説明したように、Google + APIは新しいプロジェクトで完全に廃止されました。

Google People APIも同様に機能することがわかりました。次の例は、GCPのBookshelfチュートリアルに基づいています。ソースコードはここにあります: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.