Google APIはアクティブですがエラーが発生します。 Legacy People APIは、以前にプロジェクトで使用されていないか、無効になっています。 https://console.developers.google.com/apis/api/legacypeople.googleapis.com/overview?project= にアクセスして有効にしてから、再試行してください。このAPIを最近有効にした場合は、アクションがシステムに反映されるまで数分待ってから再試行してください。
この場合、私は同じ問題に直面しています。これは私がそれを修正するためにやったことです。
状況:
アプリを実行して[Googleでサインイン]をクリックすると、どうなりますか?
どうすれば解決できますか?
注:以前のコードでは、profile._json.image.urlを使用してプロフィール画像を取得しています。実際、この反応はもうありませんでした。そこで、このコードを削除します。さようならGoogle+ありがとうGoogle People API。
Google Contacts APIとGoogle+ APIを有効にすると、この問題が修正されました。
こんにちは私は最近同じ問題に悩まされました。 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()
がリクエストを実行します。