disagreement/docs/oauth2.md
2025-06-09 22:25:14 -06:00

49 lines
1.2 KiB
Markdown

# OAuth2 Setup
This guide explains how to perform a basic OAuth2 flow with `disagreement`.
1. Generate the authorization URL:
```python
from disagreement.oauth import build_authorization_url
url = build_authorization_url(
client_id="YOUR_CLIENT_ID",
redirect_uri="https://your.app/callback",
scope=["identify"],
)
print(url)
```
2. After the user authorizes your application and you receive a code, exchange it for a token:
```python
import aiohttp
from disagreement.oauth import exchange_code_for_token
async def get_token(code: str):
return await exchange_code_for_token(
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
code=code,
redirect_uri="https://your.app/callback",
)
```
`exchange_code_for_token` returns the JSON payload from Discord which includes
`access_token`, `refresh_token` and expiry information.
3. When the access token expires, you can refresh it using the provided refresh
token:
```python
from disagreement.oauth import refresh_access_token
async def refresh(token: str):
return await refresh_access_token(
refresh_token=token,
client_id="YOUR_CLIENT_ID",
client_secret="YOUR_CLIENT_SECRET",
)
```