From 95eb4c4e9d58d39afb526241009793055de9e82e Mon Sep 17 00:00:00 2001 From: Aleix Murtra Date: Fri, 1 Dec 2023 21:06:44 +0100 Subject: [PATCH] Refresh token when outdated --- .../nissan_connect/NissanConnect.py | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/custom_components/nissan_connect/NissanConnect.py b/custom_components/nissan_connect/NissanConnect.py index a29ef4e..89f89be 100644 --- a/custom_components/nissan_connect/NissanConnect.py +++ b/custom_components/nissan_connect/NissanConnect.py @@ -14,7 +14,7 @@ def __init__(self, username, password): self._user_id = None self._username = username self._password = password - self._bearer_token = None + self._bearer_token = "ueGf2K1FfEwblf_JwC43bsrpp-8" #None self._settings = { "EU": { "client_id": "a-ncb-prod-android", @@ -42,6 +42,13 @@ def get_vehicles(self): "Authorization": f"Bearer {self._bearer_token}" } ) + + # if response is 401, try to refresh token and try again + if req.status_code == 401: + self._bearer_token = None + self._refresh_api_token() + return self.get_vehicles() + req.raise_for_status() _LOGGER.debug(req.json()) return req.json() @@ -56,7 +63,15 @@ def get_location(self, vin): "Authorization": f"Bearer {self._bearer_token}" } ) + + # if response is 401, try to refresh token and try again + if req.status_code == 401: + self._bearer_token = None + self._refresh_api_token() + return self.get_location(vin) + req.raise_for_status() + _LOGGER.debug(req.json()) return req.json() @@ -70,6 +85,13 @@ def get_cockpit(self, vin): "Authorization": f"Bearer {self._bearer_token}" } ) + + # if response is 401, try to refresh token and try again + if req.status_code == 401: + self._bearer_token = None + self._refresh_api_token() + return self.get_cockpit(vin) + req.raise_for_status() _LOGGER.debug(req.json()) return req.json()