Documentation ¶
Overview ¶
Package fitbit implements the OAuth protocol for authenticating users through Fitbit. This package can be used as a reference implementation of an OAuth provider for Goth.
Index ¶
- Constants
- type Provider
- func (p *Provider) BeginAuth(state string) (goth.Session, error)
- func (p *Provider) Client() *http.Client
- func (p *Provider) Debug(debug bool)
- func (p *Provider) FetchUser(session goth.Session) (goth.User, error)
- func (p *Provider) Name() string
- func (p *Provider) RefreshToken(refreshToken string) (*oauth2.Token, error)
- func (p *Provider) RefreshTokenAvailable() bool
- func (p *Provider) SetName(name string)
- func (p *Provider) UnmarshalSession(data string) (goth.Session, error)
- type Session
Constants ¶
const ( // ScopeActivity includes activity data and exercise log related features, such as steps, distance, calories burned, and active minutes ScopeActivity = "activity" // ScopeHeartRate includes the continuous heart rate data and related analysis ScopeHeartRate = "heartrate" // ScopeLocation includes the GPS and other location data ScopeLocation = "location" // ScopeNutrition includes calorie consumption and nutrition related features, such as food/water logging, goals, and plans ScopeNutrition = "nutrition" // ScopeProfile is the basic user information ScopeProfile = "profile" // ScopeSettings includes user account and device settings, such as alarms ScopeSettings = "settings" // ScopeSleep includes sleep logs and related sleep analysis ScopeSleep = "sleep" // ScopeSocial includes friend-related features, such as friend list, invitations, and leaderboard ScopeSocial = "social" // ScopeWeight includes weight and related information, such as body mass index, body fat percentage, and goals ScopeWeight = "weight" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct { ClientKey string Secret string CallbackURL string HTTPClient *http.Client // contains filtered or unexported fields }
Provider is the implementation of `goth.Provider` for accessing Fitbit.
func New ¶
New creates a new Fitbit provider, and sets up important connection details. You should always call `fitbit.New` to get a new Provider. Never try to create one manually.
func (*Provider) FetchUser ¶
FetchUser will go to Fitbit and access basic information about the user.
func (*Provider) RefreshToken ¶
RefreshToken get new access token based on the refresh token
func (*Provider) RefreshTokenAvailable ¶
RefreshTokenAvailable refresh token is not provided by fitbit
type Session ¶
type Session struct { AuthURL string AccessToken string RefreshToken string ExpiresAt time.Time UserID string }
Session stores data during the auth process with Fitbit.
func (*Session) Authorize ¶
Authorize completes the authorization with Fitbit and returns the access token to be stored for future use.
func (Session) GetAuthURL ¶
GetAuthURL will return the URL set by calling the `BeginAuth` function on the Fitbit provider.