@@ -1066,6 +1066,13 @@ def cameraCommand(cameraUrl, commande, parameters=None, timeout=3):
1066
1066
url = cameraUrl + ( commande % parameters if parameters else commande )
1067
1067
return postRequest ("Camera" , url , timeout = timeout )
1068
1068
1069
+ def processErrorResp (resp ):
1070
+ try :
1071
+ error_detail = json .loads (resp .fp .read ().decode ("utf-8" ))["error" ]
1072
+ logger .error ("Netatmo response error 403 : %s" % repr (error_detail ))
1073
+ except Exception as e :
1074
+ logger .error ("Error getting body of 403 HTTP error from Netatmo : %s" % e )
1075
+
1069
1076
def postRequest (topic , url , params = None , timeout = 10 ):
1070
1077
if PYTHON3 :
1071
1078
req = urllib .request .Request (url )
@@ -1078,8 +1085,7 @@ def postRequest(topic, url, params=None, timeout=10):
1078
1085
resp = urllib .request .urlopen (req , params , timeout = timeout ) if params else urllib .request .urlopen (req , timeout = timeout )
1079
1086
except urllib .error .HTTPError as err :
1080
1087
if err .code == 403 :
1081
- logger .warning ("Your current token scope do not allow access to %s" % topic )
1082
- raise OutOfScope ("Your current token scope do not allow access to %s" % topic ) from None
1088
+ processErrorResp (err )
1083
1089
else :
1084
1090
logger .error ("code=%s, reason=%s, body=%s" % (err .code , err .reason , err .fp .read ()))
1085
1091
return None
@@ -1093,10 +1099,7 @@ def postRequest(topic, url, params=None, timeout=10):
1093
1099
try :
1094
1100
resp = urllib2 .urlopen (req , timeout = timeout )
1095
1101
except urllib2 .HTTPError as err :
1096
- if err .code == 403 :
1097
- logger .warning ("Your current token scope do not allow access to %s" % topic )
1098
- else :
1099
- logger .error ("code=%s, reason=%s" % (err .code , err .reason ))
1102
+ logger .error ("code=%s, reason=%s" % (err .code , err .reason ))
1100
1103
return None
1101
1104
data = b""
1102
1105
for buff in iter (lambda : resp .read (65535 ), b'' ): data += buff
0 commit comments