mirror of
https://github.com/sstent/go-garminconnect.git
synced 2025-12-05 23:52:03 +00:00
56 lines
1.5 KiB
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)
|
|
}
|