Files

48 lines
1.5 KiB
Python

import asyncio
import os
from strava_client import StravaClient
from dotenv import load_dotenv
async def test_connection():
load_dotenv()
client_id = os.getenv("STRAVA_CLIENT_ID")
client_secret = os.getenv("STRAVA_CLIENT_SECRET")
refresh_token = os.getenv("STRAVA_REFRESH_TOKEN")
if not all([client_id, client_secret, refresh_token]):
print("❌ Error: Missing Strava credentials in .env file.")
print(
"Please ensure STRAVA_CLIENT_ID, STRAVA_CLIENT_SECRET, and STRAVA_REFRESH_TOKEN are set."
)
return
client = StravaClient()
print("Testing Strava connection...")
try:
athlete = await client.get_athlete()
print(
f"✅ Success! Connected as {athlete.get('firstname')} {athlete.get('lastname')}"
)
print(f"Athlete ID: {athlete.get('id')}")
print("\nFetching recent activities...")
activities = await client.list_activities(limit=3)
print(f"Found {len(activities)} recent activities:")
for a in activities:
print(f"- {a['name']} ({a['type']}) on {a['start_date']}")
except Exception as e:
print(f"❌ Connection failed: {str(e)}")
if "401" in str(e):
print(
"Hint: This is likely a scope issue. Your token needs 'activity:read' permission."
)
print("Run: uv run get_token.py to re-authorize with the correct scopes.")
if __name__ == "__main__":
asyncio.run(test_connection())