Olá, recentemente tropecei no mesmo problema. Conforme explicado por Ilan Laloum, a API do Google+ foi completamente desativada para novos projetos.
Descobri que a API de pessoas do Google funciona de maneira semelhante. O exemplo a seguir é baseado no tutorial Bookshelf no GCP. O código-fonte pode ser visto aqui: https://github.com/GoogleCloudPlatform/golang-samples/tree/appengine/go111/cloudsql/getting-started/bookshelf (filial 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()
}
Esse método precisa de um contexto e um token OAuth, como costumava ser a API do Google+. O peopleService
é inicializado de maneira semelhante.
O peopleService.People.Get("people/me")
prepara uma consulta que busca o perfil do usuário conectado. Então PersonFields("names,coverPhotos,emailAddresses")
é um filtro nos campos de perfil. Esta parte da solicitação é obrigatória. Eventualmente Do()
, executará a solicitação.