Hola, recientemente me topé con el mismo problema. Según lo explicado por Ilan Laloum, la API de Google+ se retiró por completo para nuevos proyectos.
Descubrí que la API de Google People funciona de manera similar. El siguiente ejemplo se basa en el tutorial de Bookshelf en GCP. El código fuente se puede ver aquí: 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()
}
Este método necesita un contexto y un token OAuth, tal como solía hacerlo la API de Google+. El peopleService
se inicializa de manera similar.
El peopleService.People.Get("people/me")
prepara una consulta que obtiene el perfil del usuario conectado. Luego PersonFields("names,coverPhotos,emailAddresses")
hay un filtro en los campos de perfil. Esta parte de la solicitud es obligatoria. Eventualmente Do()
ejecutará la solicitud.