/
oauth.py
32 lines (27 loc) · 1.21 KB
/
oauth.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import requests
class Oauth:
client_id = "820308868705812491"
client_secret = "..."
redirect_uri = "http://127.0.0.1:5000/login"
scope = "identify%20email%20guilds"
discord_login_url = "https://discord.com/api/oauth2/authorize?client_id=820308868705812491&redirect_uri=http%3A%2F%2F127.0.0.1%3A5000%2Flogin&response_type=code&scope=guilds%20identify%20email"
discord_token_url = "https://discord.com/api/oauth2/token"
discord_api_url = "https://discord.com/api"
@staticmethod
def get_access_token(code):
payload = {
"client_id":Oauth.client_id,
"client_secret":Oauth.client_secret,
"grant_type":"authorization_code",
"code":code,
"redirect_uri":Oauth.redirect_uri,
"scope":Oauth.scope
}
access_token = requests.post(url=Oauth.discord_token_url,data=payload).json()
return access_token.get("access_token")
@staticmethod
def get_user(access_token):
url = f"{Oauth.discord_api_url}/users/@me"
headers = {"Authorization":f"Bearer {access_token}"}
user_object = requests.get(url=url,headers=headers).json()
return user_object