-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Erreur HTTP sur pluie1h (changement API météo france) #69
Comments
Après 30 minutes d'analyse, j'en viens à la conclusion suivante : ils ont appliqué le principe "obscurité = sécurité"... sur la version en prod, le token est généré via le cookie this.token=o.replace(
/[a-zA-Z]/g,
function(e){
var t=e<="Z"?65:97;
return String.fromCharCode(t+(e.charCodeAt(0)-t+13)%26)
}) Exemple : let cookie = "rlWwoTSmplV6VzyhqTIlozI0VvjvLJkaVwbvFSZlAGLvYPW0rKNvBvWXI1DvsD.rlWdqTxvBvWyLmuuAzWzZ2ExLGIyL2L1ZGyyMTRjAQOxAmpkZQN2ZlVfVzyuqPV6ZGH5AmZmAmplBK0.fQhcvL6PHFO12JfLit0DLPKIq3IZ51G0caXHeqPpRWN"
let token = cookie.replace(/[a-zA-Z]/g, function(e){var t=e<="Z"?65:97;return String.fromCharCode(t+(e.charCodeAt(0)-t+13)%26)}) Il me semble possible d'utiliser la nouvelle API :
Qu'en penses-tu ? |
J'ai regardé un peu cette semaine, on m'a pointé vers HA qui utiliserait une "API officielle", sauf que comme toi j'ai l'impression que si derrière on a bien des webservices, leur utilisation est pas documenté, le token rien ne permet d'en générer un officiellement pour cette utilisation. Chez HA, ils utilisent un token en dur pour tous les utilisateurs. Après ce qui est de récupérer code postal, nom de ville, lon, latitude, c'est possible via les infos de géolocalisation déjà utilisées par les autres types de vigilance, ca harmoniserait et éviterait le modal juste pour ca.
|
En fait c'est plus compliqué, les données de pluie ne sont plus dispo en 12 éléments mais 10 uniquement 40 et 45, 50 et 55 sont regroupés. En gros voilà ce que je vois :
|
http://webservice.meteofrance.com/report?domain=france&report_type=message&report_subtype=infospe&format=&&token=xxx c'ets l'url qui fournit l'annonce d'alerte générale |
Effectivement cela change pas mal. |
Voilà ce que ca donne dans un nouveau plugin : Il y a plus d'infos faciles à récupérer qu'avant sur leur nouveau site. Je pense ajouter les prévisions classiques et le bulletin général france + condition actuelle qu'on voit Pour le token, j'ai mis en dur celui que HA utilise pour le moment, à voir comment en récupérer un comme eux car il n'expire pas |
Top Cédric, je vais l'installer ce soir, merci ! |
Pour le token, sinon avec ta méthode ca pourrait le faire. Pour gagner du temps si tu avais le code en PHP pour le calculer du cookie :) |
Ok, ça me paraît le mieux pour tes utilisateurs. |
@lunarok voici le portage de l'obtention du token via le cookie $cookie = "rlWwoTSmplV6VzyhqTIlozI0VvjvLJkaVwbvFSZlAGLvYPW0rKNvBvWXI1DvsD.rlWdqTxvBvWyLmuuAzWzZ2ExLGIyL2L1ZGyyMTRjAQOxAmpkZQN2ZlVfVzyuqPV6ZGH5AmZmAmplBK0.fQhcvL6PHFO12JfLit0DLPKIq3IZ51G0caXHeqPpRWN";
// on effectue le déchiffrement du code César avec un décalage de 13
$token = preg_replace_callback(
'/[a-zA-Z]/',
function ($e) {
$code = ord($e[0]);
$offset = $code < 97 ? 65 : 97;
return chr($offset + ($code - $offset + 13) % 26);
},
$cookie); |
Salut @lunarok , j'ai testé sur le commit lunarok/jeedom_meteofrance@e2ddb2d ça marche pas mal (good job), il manque peut être une description textuelle globale du genre "pluie modérée dans 15 minutes" comme avant (je m'envoyais par XMPP la commande Pour info, j'ai un petit bug non bloquant sur l'admin d'un équipement :
|
Le Prévisions Textuelles venait d'un champ directement de météo france, il a disparu. |
Hello, l'issue n'as toujours pas été fixé en prod ? Merci |
Si, la version stable est iso de la beta depuis plusieurs mois |
Quel problème ? l'issue parle d'un problème sur pluie 1h qui marche parfaitement |
Bonjour @lunarok et merci pour ton plugin qui fait (faisait...) parfaitement le job.
J'ai noté que je n'avais plus les prévisions de pluie à 1 heure, en regardant de plus près il semble que Météo France ai mis à jour son site et les API exposées (l'ancienne url
http://www.meteofrance.com/mf3-rpc-portlet/rest/pluie/{insee}
retourne un 301 vers le portail https://meteofrance.com).La nouvelle API semble être
https://rpcache-aa.meteofrance.com/internet2018client/2.0/nowcast/rain?lat={latitude}&lon={longitude}
avec malheureusement un token JWT à passer dans le header Authorization sans quoi l'API répond un joli 401 😭Je vois 2 solutions (tu en identifiera peut être d'autres) :
The text was updated successfully, but these errors were encountered: