auth_code = input()\r
\r
data = f"grant_type=authorization_code&code={auth_code}&redirect_uri={REDIRECT_URL}"\r
- token = GetToken(URL_OAUTH_TOKEN, self.headers, data)\r
+ token = GetToken(URL_OAUTH_TOKEN, self.headers, data, refresh=False)\r
\r
# Check Token\r
if not self.CheckToken(token):\r
########################\r
def RefreshToken(self):\r
\r
- data = f"grant_type=refresh_token&refresh_token={self.refresh_token}" \r
- token = GetToken(URL_OAUTH_TOKEN, self.headers, data)\r
+ data = f"grant_type=refresh_token&refresh_token={self.refresh_token}"\r
+ token = GetToken(URL_OAUTH_TOKEN, self.headers, data, refresh=True)\r
\r
# Check Token\r
if not self.CheckToken(token):\r
########################
# GetToken
########################
-def GetToken(tokenURL, headers, data):
+def GetToken(tokenURL, headers, data, refresh=True):
res = requests.post(tokenURL, data = data, headers = headers)
try:
data = res.json()
if ("reason" in data):
reason = data["reason"]
else:
- if res.status_code == 302:
- reason = "The request scope is invalid"
- elif res.status_code == 400:
- reason = "The redirect_uri differs from the registered one"
- elif res.status_code == 401:
- reason = "The specified client ID is invalid"
+ if (refresh == False):
+ # New Token Errors
+ if res.status_code == 302:
+ reason = "The request scope is invalid"
+ elif res.status_code == 400:
+ reason = "The redirect_uri differs from the registered one"
+ elif res.status_code == 401:
+ reason = "The specified client ID is invalid"
+ else:
+ reason = "Generic Error"
else:
- reason = "Generic Error"
+ # Refresh Token Errors
+ if res.status_code == 400:
+ reason = "The given refresh token is not valid or was already used."
+ else:
+ reason = "Generic Error"
+
data["reason"] = reason
data["code"] = res.status_code