Files
go-garminconnect/examples/basic/main.go

56 lines
1.5 KiB
Go

package main
import (
"context"
"fmt"
"log"
"time"
"github.com/sstent/go-garminconnect/internal/api"
"github.com/sstent/go-garminconnect/internal/auth/garth"
)
func main() {
// Initialize authentication session
session := &garth.Session{
OAuth2Token: "your_oauth2_token_here",
ExpiresAt: time.Now().Add(8 * time.Hour),
}
// Create API client
// Pass nil authenticator since we're using a hardcoded token
client, err := api.NewClient(nil, session, "")
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Get user profile
profile, err := client.GetUserProfile(context.Background())
if err != nil {
log.Fatalf("Failed to get user profile: %v", err)
}
fmt.Printf("User: %s (%s)\n", profile.FullName, profile.DisplayName)
// Get sleep data for today
today := time.Now()
sleepData, err := client.GetSleepData(context.Background(), today)
if err != nil {
log.Fatalf("Failed to get sleep data: %v", err)
}
fmt.Printf("Sleep duration: %s\n", time.Duration(sleepData.SleepTimeSeconds)*time.Second)
// Get stress data
stressData, err := client.GetStressData(context.Background(), today)
if err != nil {
log.Fatalf("Failed to get stress data: %v", err)
}
fmt.Printf("Daily stress level: %d\n", stressData.OverallStressLevel)
// Get steps data
stepsData, err := client.GetStepsData(context.Background(), today)
if err != nil {
log.Fatalf("Failed to get steps data: %v", err)
}
fmt.Printf("Steps today: %d\n", stepsData.TotalSteps)
}