]> git.giorgioravera.it Git - mercedes_me_api.git/commitdiff
Fixed also the hass components and updated version to 0.6
authorGiorgio Ravera <giorgio.ravera@gmail.com>
Tue, 15 Dec 2020 16:51:43 +0000 (17:51 +0100)
committerGiorgio Ravera <giorgio.ravera@gmail.com>
Thu, 17 Dec 2020 10:13:31 +0000 (11:13 +0100)
const.py
custom_components/mercedesmeapi/const.py
custom_components/mercedesmeapi/oauth.py
custom_components/mercedesmeapi/query.py

index 68edb2e916b8650d0868d26abd7a7c2a52f5856d..7bcd87c16a6ebf6824053d91c6dbcde3f4b788e9 100644 (file)
--- a/const.py
+++ b/const.py
@@ -9,7 +9,7 @@ https://github.com/xraver/mercedes_me_api/
 # Software Parameters
 NAME = "Mercedes Me API"
 DOMAIN = "mercedesmeapi"
-VERSION = "0.5"
+VERSION = "0.6"
 TOKEN_FILE = ".mercedesme_token"
 CREDENTIAL_FILE = ".mercedesme_credentials"
 RESOURCES_FILE = ".mercedesme_resources"
index c68913c1399c57e0e73afc2b5767d39207a9721d..889532b7411a1671e8ee7d3459b8d5a8f291c6b1 100644 (file)
@@ -9,7 +9,7 @@ https://github.com/xraver/mercedes_me_api/
 # Software Parameters
 NAME = "Mercedes Me API"
 DOMAIN = "mercedesmeapi"
-VERSION = "0.5"
+VERSION = "0.6"
 TOKEN_FILE = ".mercedesme_token"
 CREDENTIAL_FILE = ".mercedesme_credentials"
 RESOURCES_FILE = ".mercedesme_resources"
index b7fd4df8d7d351ee2cd46487814dea9823e32795..8ee37eb205090ce3e8de82f2547721aadce3736d 100644 (file)
@@ -142,7 +142,7 @@ class MercedesMeOauth:
         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
@@ -160,8 +160,8 @@ class MercedesMeOauth:
     ########################\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
index 6a148ee3d9d1ba8a7bc8280ffa615ae9dc763e75..37e886cead622578b7076f9d00b4ac7d482c3d3a 100644 (file)
@@ -64,7 +64,7 @@ def GetResource(resourceURL, config):
 ########################
 # 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()
@@ -79,14 +79,23 @@ def GetToken(tokenURL, headers, data):
         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