oauth2
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package oauth2 provides access to the Google OAuth2 API.
For product documentation, see:https://developers.google.com/identity/protocols/oauth2/
Library status¶
These client libraries are officially supported by Google. However, thislibrary is considered complete and is in maintenance mode. This meansthat we will address critical bugs and security issues but will not addany new features.
When possible, we recommend using our newer[Cloud Client Libraries for Go](https://pkg.go.dev/cloud.google.com/go)that are still actively being worked and iterated on.
Creating a client¶
Usage example:
import "google.golang.org/api/oauth2/v2"...ctx := context.Background()oauth2Service, err := oauth2.NewService(ctx)
In this example, Google Application Default Credentials are used forauthentication. For information on how to create and obtain ApplicationDefault Credentials, seehttps://developers.google.com/identity/protocols/application-default-credentials.
Other authentication options¶
By default, all available scopes (see "Constants") are used to authenticate.To restrict scopes, usegoogle.golang.org/api/option.WithScopes:
oauth2Service, err := oauth2.NewService(ctx, option.WithScopes(oauth2.OpenIDScope))
To use an API key for authentication (note: some APIs do not support APIkeys), usegoogle.golang.org/api/option.WithAPIKey:
oauth2Service, err := oauth2.NewService(ctx, option.WithAPIKey("AIza..."))To use an OAuth token (e.g., a user token obtained via a three-legged OAuthflow, usegoogle.golang.org/api/option.WithTokenSource:
config := &oauth2.Config{...}// ...token, err := config.Exchange(ctx, ...)oauth2Service, err := oauth2.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))Seegoogle.golang.org/api/option.ClientOption for details on options.
Index¶
- Constants
- type Service
- type Tokeninfo
- type TokeninfoCall
- func (c *TokeninfoCall) AccessToken(accessToken string) *TokeninfoCall
- func (c *TokeninfoCall) Context(ctx context.Context) *TokeninfoCall
- func (c *TokeninfoCall) Do(opts ...googleapi.CallOption) (*Tokeninfo, error)
- func (c *TokeninfoCall) Fields(s ...googleapi.Field) *TokeninfoCall
- func (c *TokeninfoCall) Header() http.Header
- func (c *TokeninfoCall) IdToken(idToken string) *TokeninfoCall
- type Userinfo
- type UserinfoGetCall
- func (c *UserinfoGetCall) Context(ctx context.Context) *UserinfoGetCall
- func (c *UserinfoGetCall) Do(opts ...googleapi.CallOption) (*Userinfo, error)
- func (c *UserinfoGetCall) Fields(s ...googleapi.Field) *UserinfoGetCall
- func (c *UserinfoGetCall) Header() http.Header
- func (c *UserinfoGetCall) IfNoneMatch(entityTag string) *UserinfoGetCall
- type UserinfoService
- type UserinfoV2MeGetCall
- func (c *UserinfoV2MeGetCall) Context(ctx context.Context) *UserinfoV2MeGetCall
- func (c *UserinfoV2MeGetCall) Do(opts ...googleapi.CallOption) (*Userinfo, error)
- func (c *UserinfoV2MeGetCall) Fields(s ...googleapi.Field) *UserinfoV2MeGetCall
- func (c *UserinfoV2MeGetCall) Header() http.Header
- func (c *UserinfoV2MeGetCall) IfNoneMatch(entityTag string) *UserinfoV2MeGetCall
- type UserinfoV2MeService
- type UserinfoV2Service
Constants¶
const (// See your primary Google Account email addressUserinfoEmailScope = "https://www.googleapis.com/auth/userinfo.email"// See your personal info, including any personal info you've made publicly// availableUserinfoProfileScope = "https://www.googleapis.com/auth/userinfo.profile"// Associate you with your personal info on GoogleOpenIDScope = "openid")
OAuth2 scopes used by this API.
Variables¶
This section is empty.
Functions¶
This section is empty.
Types¶
typeService¶
type Service struct {BasePathstring// API endpoint base URLUserAgentstring// optional additional User-Agent fragmentUserinfo *UserinfoService// contains filtered or unexported fields} funcNewdeprecated
New creates a new Service. It uses the provided http.Client for requests.
Deprecated: please use NewService instead.To provide a custom HTTP client, use option.WithHTTPClient.If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
funcNewService¶added inv0.3.0
NewService creates a new Service.
typeTokeninfo¶
type Tokeninfo struct {// Audience: Who is the intended audience for this token. In general the same// as issued_to.Audiencestring `json:"audience,omitempty"`// Email: The email address of the user. Present only if the email scope is// present in the request.Emailstring `json:"email,omitempty"`// ExpiresIn: The expiry time of the token, as number of seconds left until// expiry.ExpiresInint64 `json:"expires_in,omitempty"`// IssuedTo: To whom was the token issued to. In general the same as audience.IssuedTostring `json:"issued_to,omitempty"`// Scope: The space separated list of scopes granted to this token.Scopestring `json:"scope,omitempty"`// UserId: The obfuscated user id.UserIdstring `json:"user_id,omitempty"`// VerifiedEmail: Boolean flag which is true if the email address is verified.// Present only if the email scope is present in the request.VerifiedEmailbool `json:"verified_email,omitempty"`// ServerResponse contains the HTTP response code and headers from the server.googleapi.ServerResponse `json:"-"`// ForceSendFields is a list of field names (e.g. "Audience") to// unconditionally include in API requests. By default, fields with empty or// default values are omitted from API requests. See//https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more// details.ForceSendFields []string `json:"-"`// NullFields is a list of field names (e.g. "Audience") to include in API// requests with the JSON null value. By default, fields with empty values are// omitted from API requests. See//https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.NullFields []string `json:"-"`}func (Tokeninfo)MarshalJSON¶
typeTokeninfoCall¶
type TokeninfoCall struct {// contains filtered or unexported fields}func (*TokeninfoCall)AccessToken¶
func (c *TokeninfoCall) AccessToken(accessTokenstring) *TokeninfoCall
AccessToken sets the optional parameter "access_token":
func (*TokeninfoCall)Context¶
func (c *TokeninfoCall) Context(ctxcontext.Context) *TokeninfoCall
Context sets the context to be used in this call's Do method.
func (*TokeninfoCall)Do¶
func (c *TokeninfoCall) Do(opts ...googleapi.CallOption) (*Tokeninfo,error)
Do executes the "oauth2.tokeninfo" call.Any non-2xx status code is an error. Response headers are in either*Tokeninfo.ServerResponse.Header or (if a response was returned at all) inerror.(*googleapi.Error).Header. Use googleapi.IsNotModified to checkwhether the returned error was because http.StatusNotModified was returned.
func (*TokeninfoCall)Fields¶
func (c *TokeninfoCall) Fields(s ...googleapi.Field) *TokeninfoCall
Fields allows partial responses to be retrieved. Seehttps://developers.google.com/gdata/docs/2.0/basics#PartialResponse for moredetails.
func (*TokeninfoCall)Header¶
func (c *TokeninfoCall) Header()http.Header
Header returns a http.Header that can be modified by the caller to addheaders to the request.
func (*TokeninfoCall)IdToken¶
func (c *TokeninfoCall) IdToken(idTokenstring) *TokeninfoCall
IdToken sets the optional parameter "id_token":
typeUserinfo¶added inv0.22.0
type Userinfo struct {// Email: The user's email address.Emailstring `json:"email,omitempty"`// FamilyName: The user's last name.FamilyNamestring `json:"family_name,omitempty"`// Gender: The user's gender.Genderstring `json:"gender,omitempty"`// GivenName: The user's first name.GivenNamestring `json:"given_name,omitempty"`// Hd: The hosted domain e.g. example.com if the user is Google apps user.Hdstring `json:"hd,omitempty"`// Id: The obfuscated ID of the user.Idstring `json:"id,omitempty"`// Link: URL of the profile page.Linkstring `json:"link,omitempty"`// Locale: The user's preferred locale.Localestring `json:"locale,omitempty"`// Name: The user's full name.Namestring `json:"name,omitempty"`// Picture: URL of the user's picture image.Picturestring `json:"picture,omitempty"`// VerifiedEmail: Boolean flag which is true if the email address is verified.// Always verified because we only return the user's primary email address.//// Default: trueVerifiedEmail *bool `json:"verified_email,omitempty"`// ServerResponse contains the HTTP response code and headers from the server.googleapi.ServerResponse `json:"-"`// ForceSendFields is a list of field names (e.g. "Email") to unconditionally// include in API requests. By default, fields with empty or default values are// omitted from API requests. See//https://pkg.go.dev/google.golang.org/api#hdr-ForceSendFields for more// details.ForceSendFields []string `json:"-"`// NullFields is a list of field names (e.g. "Email") to include in API// requests with the JSON null value. By default, fields with empty values are// omitted from API requests. See//https://pkg.go.dev/google.golang.org/api#hdr-NullFields for more details.NullFields []string `json:"-"`}func (Userinfo)MarshalJSON¶added inv0.22.0
typeUserinfoGetCall¶
type UserinfoGetCall struct {// contains filtered or unexported fields}func (*UserinfoGetCall)Context¶
func (c *UserinfoGetCall) Context(ctxcontext.Context) *UserinfoGetCall
Context sets the context to be used in this call's Do method.
func (*UserinfoGetCall)Do¶
func (c *UserinfoGetCall) Do(opts ...googleapi.CallOption) (*Userinfo,error)
Do executes the "oauth2.userinfo.get" call.Any non-2xx status code is an error. Response headers are in either*Userinfo.ServerResponse.Header or (if a response was returned at all) inerror.(*googleapi.Error).Header. Use googleapi.IsNotModified to checkwhether the returned error was because http.StatusNotModified was returned.
func (*UserinfoGetCall)Fields¶
func (c *UserinfoGetCall) Fields(s ...googleapi.Field) *UserinfoGetCall
Fields allows partial responses to be retrieved. Seehttps://developers.google.com/gdata/docs/2.0/basics#PartialResponse for moredetails.
func (*UserinfoGetCall)Header¶
func (c *UserinfoGetCall) Header()http.Header
Header returns a http.Header that can be modified by the caller to addheaders to the request.
func (*UserinfoGetCall)IfNoneMatch¶
func (c *UserinfoGetCall) IfNoneMatch(entityTagstring) *UserinfoGetCall
IfNoneMatch sets an optional parameter which makes the operation fail if theobject's ETag matches the given value. This is useful for getting updatesonly after the object has changed since the last request.
typeUserinfoService¶
type UserinfoService struct {V2 *UserinfoV2Service// contains filtered or unexported fields}funcNewUserinfoService¶
func NewUserinfoService(s *Service) *UserinfoService
typeUserinfoV2MeGetCall¶
type UserinfoV2MeGetCall struct {// contains filtered or unexported fields}func (*UserinfoV2MeGetCall)Context¶
func (c *UserinfoV2MeGetCall) Context(ctxcontext.Context) *UserinfoV2MeGetCall
Context sets the context to be used in this call's Do method.
func (*UserinfoV2MeGetCall)Do¶
func (c *UserinfoV2MeGetCall) Do(opts ...googleapi.CallOption) (*Userinfo,error)
Do executes the "oauth2.userinfo.v2.me.get" call.Any non-2xx status code is an error. Response headers are in either*Userinfo.ServerResponse.Header or (if a response was returned at all) inerror.(*googleapi.Error).Header. Use googleapi.IsNotModified to checkwhether the returned error was because http.StatusNotModified was returned.
func (*UserinfoV2MeGetCall)Fields¶
func (c *UserinfoV2MeGetCall) Fields(s ...googleapi.Field) *UserinfoV2MeGetCall
Fields allows partial responses to be retrieved. Seehttps://developers.google.com/gdata/docs/2.0/basics#PartialResponse for moredetails.
func (*UserinfoV2MeGetCall)Header¶
func (c *UserinfoV2MeGetCall) Header()http.Header
Header returns a http.Header that can be modified by the caller to addheaders to the request.
func (*UserinfoV2MeGetCall)IfNoneMatch¶
func (c *UserinfoV2MeGetCall) IfNoneMatch(entityTagstring) *UserinfoV2MeGetCall
IfNoneMatch sets an optional parameter which makes the operation fail if theobject's ETag matches the given value. This is useful for getting updatesonly after the object has changed since the last request.
typeUserinfoV2MeService¶
type UserinfoV2MeService struct {// contains filtered or unexported fields}funcNewUserinfoV2MeService¶
func NewUserinfoV2MeService(s *Service) *UserinfoV2MeService
typeUserinfoV2Service¶
type UserinfoV2Service struct {Me *UserinfoV2MeService// contains filtered or unexported fields}funcNewUserinfoV2Service¶
func NewUserinfoV2Service(s *Service) *UserinfoV2Service