| # publisher/token_refresher.py | |
| import httpx | |
| from publisher.oauth.storage import save_tokens | |
| async def refresh_google(user_id, token): | |
| if "refresh_token" not in token: | |
| return token | |
| async with httpx.AsyncClient() as client: | |
| r = await client.post( | |
| "https://oauth2.googleapis.com/token", | |
| data={ | |
| "client_id": token["client_id"], | |
| "client_secret": token["client_secret"], | |
| "refresh_token": token["refresh_token"], | |
| "grant_type": "refresh_token", | |
| }, | |
| ) | |
| new = r.json() | |
| token.update(new) | |
| save_tokens(user_id, "google", token) | |
| return token |