Error with code 401 and reason : Invalid or missing authorization/API

Bonjour,

Je viens d’acheter le plug-in, j’ai bien suivi la doc.
Ça fait au moins six fois que j’ai rejet regénéré le client ID et le client secret en vérifiant à chaque fois, mais je n’arrive pas à obtenir la connexion.
Pourtant dans le log à 10h46 les infos sont bien remontées, mais ensuite il m’indique une erreur Error with code 401 and reason : Invalid or missing authorization/API
Extrait du log :

[2021-11-29 10:40:02][ERROR] : getInfos::electricvehicle::Response Error with code 401 and reason : Invalid or missing authorization/API
[2021-11-29 10:45:02][ERROR] : getToken::ERROR - HTTP400 - The given refresh token is not valid or was already used. Please force new connexion to Cloud Mercedes in plugin page.
[2021-11-29 10:45:02][ERROR] : getInfos::vehiclestatus::Response Error with code 401 and reason : Invalid or missing authorization/API
[2021-11-29 10:45:02][ERROR] : getInfos::vehiclelockstatus::Response Error with code 401 and reason : Invalid or missing authorization/API
[2021-11-29 10:45:03][ERROR] : getInfos::electricvehicle::Response Error with code 401 and reason : Invalid or missing authorization/API
[2021-11-29 10:46:15][ERROR] : getToken::ERROR - HTTP400 - The given refresh token is not valid or was already used. Please force new connexion to Cloud Mercedes in plugin page.
[2021-11-29 10:46:25][INFO] : postSave::updateCmd refresh (Rafraichir) with order 0
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorlockstatusvehicle (Verrouillage du vehicule) with order 1
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorlockstatusgas (Verrouillage de la trappe Essence) with order 2
[2021-11-29 10:46:25][INFO] : postSave::updateCmd rangeliquid (Essence - Nombre de Km restant) with order 3
[2021-11-29 10:46:25][INFO] : postSave::updateCmd tanklevelpercent (Essence - Pourcentage restant) with order 4
[2021-11-29 10:46:25][INFO] : postSave::updateCmd rangeelectric (Electrique - Nombre de Km restant) with order 5
[2021-11-29 10:46:25][INFO] : postSave::updateCmd soc (Electrique - Pourcentage Charge Restante) with order 6
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorstatusfrontleft (Statut Porte Avant Gauche) with order 7
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorstatusfrontright (Statut Porte Avant Droite) with order 8
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorstatusrearleft (Statut Porte Arriere Gauche) with order 9
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorstatusrearright (Statut Porte Arriere Droite) with order 10
[2021-11-29 10:46:25][INFO] : postSave::updateCmd windowstatusfrontleft (Statut Fenetre Avant Gauche) with order 11
[2021-11-29 10:46:25][INFO] : postSave::updateCmd windowstatusfrontright (Statut Fenetre Avant Droite) with order 12
[2021-11-29 10:46:25][INFO] : postSave::updateCmd windowstatusrearleft (Statut Fenetre Arriere Gauche) with order 13
[2021-11-29 10:46:25][INFO] : postSave::updateCmd windowstatusrearright (Statut Fenetre Arriere Droite) with order 14
[2021-11-29 10:46:25][INFO] : postSave::updateCmd sunroofstatus (Statut Toit Ouvrant) with order 15
[2021-11-29 10:46:25][INFO] : postSave::bypassCmd rooftopstatus (Statut Capote)
[2021-11-29 10:46:25][INFO] : postSave::updateCmd doorlockstatusdecklid (Verrouillage du coffre) with order 17
[2021-11-29 10:46:25][INFO] : postSave::updateCmd decklidstatus (Etat d'ouverture du coffre) with order 18
[2021-11-29 10:46:25][INFO] : postSave::updateCmd downloadvehiculeimage (Telecharger Vehicule Image) with order 19
[2021-11-29 10:47:30][ERROR] : getToken::ERROR - HTTP400 - The given refresh token is not valid or was already used. Please force new connexion to Cloud Mercedes in plugin page.
[2021-11-29 10:47:31][ERROR] : getInfos::vehiclestatus::Response Error with code 401 and reason : Invalid or missing authorization/API
[2021-11-29 10:47:31][ERROR] : getInfos::vehiclelockstatus::Response Error with code 401 and reason : Invalid or missing authorization/API
[2021-11-29 10:47:31][ERROR] : getInfos::electricvehicle::Response Error with code 401 and reason : Invalid or missing authorization/API

Mercedes_me .txt (15,1 Ko)

Je viens de ré essayer : error 400, pourtant le lien est le bon
error 400

Log en debug :

[2021-11-29 14:35:02][DEBUG] : DEBUG : *   Trying 159.122.71.196...
[2021-11-29 14:35:02][DEBUG] : DEBUG : * TCP_NODELAY set
[2021-11-29 14:35:02][DEBUG] : DEBUG : * Expire in 200 ms for 4 (transfer 0x55ba6c421f10)
[2021-11-29 14:35:02][DEBUG] : DEBUG : * Connected to api.mercedes-benz.com (159.122.71.196) port 443 (#0)
[2021-11-29 14:35:02][DEBUG] : DEBUG : * ALPN, offering http/1.1
[2021-11-29 14:35:02][DEBUG] : DEBUG : * successfully set certificate verify locations:
[2021-11-29 14:35:02][DEBUG] : DEBUG : *   CAfile: none
[2021-11-29 14:35:02][DEBUG] : DEBUG :   CApath: /etc/ssl/certs
[2021-11-29 14:35:02][DEBUG] : DEBUG : * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
[2021-11-29 14:35:02][DEBUG] : DEBUG : * ALPN, server accepted to use http/1.1
[2021-11-29 14:35:02][DEBUG] : DEBUG : * Server certificate:
[2021-11-29 14:35:02][DEBUG] : DEBUG : *  subject: C=DE; ST=Baden-Wuerttemberg; L=Stuttgart; O=Daimler AG; CN=api.mercedes-benz.com
[2021-11-29 14:35:02][DEBUG] : DEBUG : *  start date: May 27 06:38:16 2021 GMT
[2021-11-29 14:35:02][DEBUG] : DEBUG : *  expire date: May 27 06:48:00 2022 GMT
[2021-11-29 14:35:02][DEBUG] : DEBUG : *  subjectAltName: host "api.mercedes-benz.com" matched cert's "api.mercedes-benz.com"
[2021-11-29 14:35:02][DEBUG] : DEBUG : *  issuer: C=BM; O=QuoVadis Limited; CN=QuoVadis Global SSL ICA G3
[2021-11-29 14:35:02][DEBUG] : DEBUG : *  SSL certificate verify ok.
[2021-11-29 14:35:02][DEBUG] : DEBUG : > GET /vehicledata/v2/vehicles/W1K2130531A831423/containers/electricvehicle HTTP/1.1 
[2021-11-29 14:35:02][DEBUG] : DEBUG : Host: api.mercedes-benz.com 
[2021-11-29 14:35:02][DEBUG] : DEBUG : User-Agent: GuzzleHttp/6.5.4 curl/7.64.0 PHP/7.3.31-1~deb10u1 
[2021-11-29 14:35:02][DEBUG] : DEBUG : accept: application/json;charset=utf-8 
[2021-11-29 14:35:02][DEBUG] : DEBUG : authorization: Bearer 
[2021-11-29 14:35:02][DEBUG] : DEBUG :  
[2021-11-29 14:35:02][DEBUG] : DEBUG : * old SSL session ID is stale, removing
[2021-11-29 14:35:02][DEBUG] : DEBUG : < HTTP/1.1 401 Unauthorized 
[2021-11-29 14:35:02][DEBUG] : DEBUG : < date: Mon, 29 Nov 2021 13:35:02 GMT 
[2021-11-29 14:35:02][DEBUG] : DEBUG : < content-type: application/json 
[2021-11-29 14:35:02][DEBUG] : DEBUG : < content-length: 136 
[2021-11-29 14:35:02][DEBUG] : DEBUG : < x-envoy-upstream-service-time: 5 
[2021-11-29 14:35:02][DEBUG] : DEBUG : < server: istio-envoy 
[2021-11-29 14:35:02][DEBUG] : DEBUG : <  
[2021-11-29 14:35:02][DEBUG] : DEBUG : * Connection #0 to host api.mercedes-benz.com left intact
[2021-11-29 14:35:02][DEBUG] : DEBUG : 
[2021-11-29 14:35:02][ERROR] : getInfos::electricvehicle::Response Error with code 401 and reason : Invalid or missing authorization/API

Bonjour,

Tu as bien configuré le l’energie et le style du véhicule dans l’équipement ?
J’ai par moment dans la journée aussi des erreur 401 venant du Cloud. C’est plus ou moins stable.
Si ca a deja fonctionné c’est pas grave, tu auras tout les temps des erreurs 401 de temps en temps.

Que dit la partie Debug de la page du plugin ? La date d’expiration est bien dans le futur ? Sinon il faut cliquer sur le bouton refaire la connexion

Bonsoir,

Non, cela n’a pas encore fonctionné, aucune donnée ne remonte.
Je suis certain que tout est ok au niveau des ID et api key, mais quand je clique sur « Activer / refaire la connexion » , j’ai l’erreur 400 - Invalid redirect_url
Aucune date d’expiration ! copie d’écran ci-dessous :

Je suis sur jeedom en externe , quand je clique sur refaire la connexion, j’obtiens:
error 400

Tu es sur que la redirect URL qui est visible sur ta capture est bien celle que tu as configuré dans la console dev de Mercedes ? Il faut qu’elle soit exactement identique. C’est pour ca qu’il y a un bouton pour la copier

et que c’est bien ton URL externe ?

Oui, j’en suis sur car ce matin, je n’étais pas chez moi, donc connecté en externe
Et je l’ai vérifiée, la voici en partie:
https://jeedom.doryphore.synology.me:443/plugins/Mercedes_me/core/php/callback.php?apikey=xxxxxxxxxxxxxxxx

Voici copie d’écran du site mercedes :

Voici une partie du log en debug :

[2021-11-29 19:40:03][DEBUG] : DEBUG : * Expire in 7 ms for 1 (transfer 0x55c8ccc47f80)
[2021-11-29 19:40:03][DEBUG] : DEBUG : * Expire in 9 ms for 1 (transfer 0x55c8ccc47f80)
[2021-11-29 19:40:03][DEBUG] : DEBUG : *   Trying 159.122.71.196...
[2021-11-29 19:40:03][DEBUG] : DEBUG : * TCP_NODELAY set
[2021-11-29 19:40:03][DEBUG] : DEBUG : * Expire in 200 ms for 4 (transfer 0x55c8ccc47f80)
[2021-11-29 19:40:03][DEBUG] : DEBUG : * Connected to api.mercedes-benz.com (159.122.71.196) port 443 (#0)
[2021-11-29 19:40:03][DEBUG] : DEBUG : * ALPN, offering http/1.1
[2021-11-29 19:40:03][DEBUG] : DEBUG : * successfully set certificate verify locations:
[2021-11-29 19:40:03][DEBUG] : DEBUG : *   CAfile: none
[2021-11-29 19:40:03][DEBUG] : DEBUG :   CApath: /etc/ssl/certs
[2021-11-29 19:40:03][DEBUG] : DEBUG : * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
[2021-11-29 19:40:03][DEBUG] : DEBUG : * ALPN, server accepted to use http/1.1
[2021-11-29 19:40:03][DEBUG] : DEBUG : * Server certificate:
[2021-11-29 19:40:03][DEBUG] : DEBUG : *  subject: C=DE; ST=Baden-Wuerttemberg; L=Stuttgart; O=Daimler AG; CN=api.mercedes-benz.com
[2021-11-29 19:40:03][DEBUG] : DEBUG : *  start date: May 27 06:38:16 2021 GMT
[2021-11-29 19:40:03][DEBUG] : DEBUG : *  expire date: May 27 06:48:00 2022 GMT
[2021-11-29 19:40:03][DEBUG] : DEBUG : *  subjectAltName: host "api.mercedes-benz.com" matched cert's "api.mercedes-benz.com"
[2021-11-29 19:40:03][DEBUG] : DEBUG : *  issuer: C=BM; O=QuoVadis Limited; CN=QuoVadis Global SSL ICA G3
[2021-11-29 19:40:03][DEBUG] : DEBUG : *  SSL certificate verify ok.
[2021-11-29 19:40:03][DEBUG] : DEBUG : > GET /vehicledata/v2/vehicles/W1K2130531A831423/containers/electricvehicle HTTP/1.1 
[2021-11-29 19:40:03][DEBUG] : DEBUG : Host: api.mercedes-benz.com 
[2021-11-29 19:40:03][DEBUG] : DEBUG : User-Agent: GuzzleHttp/6.5.4 curl/7.64.0 PHP/7.3.31-1~deb10u1 
[2021-11-29 19:40:03][DEBUG] : DEBUG : accept: application/json;charset=utf-8 
[2021-11-29 19:40:03][DEBUG] : DEBUG : authorization: Bearer 
[2021-11-29 19:40:03][DEBUG] : DEBUG :  
[2021-11-29 19:40:03][DEBUG] : DEBUG : * old SSL session ID is stale, removing
[2021-11-29 19:40:03][DEBUG] : DEBUG : < HTTP/1.1 401 Unauthorized 
[2021-11-29 19:40:03][DEBUG] : DEBUG : < date: Mon, 29 Nov 2021 18:40:03 GMT 
[2021-11-29 19:40:03][DEBUG] : DEBUG : < content-type: application/json 
[2021-11-29 19:40:03][DEBUG] : DEBUG : < content-length: 136 
[2021-11-29 19:40:03][DEBUG] : DEBUG : < x-envoy-upstream-service-time: 11 
[2021-11-29 19:40:03][DEBUG] : DEBUG : < server: istio-envoy 
[2021-11-29 19:40:03][DEBUG] : DEBUG : <  
[2021-11-29 19:40:03][DEBUG] : DEBUG : * Connection #0 to host api.mercedes-benz.com left intact
[2021-11-29 19:40:03][DEBUG] : DEBUG : 
[2021-11-29 19:40:03][ERROR] : getInfos::electricvehicle::Response Error with code 401 and reason : Invalid or missing authorization/API

Je viens de simuler une nouvelle plateforme chez moi et j’ai le meme souci.
Possible que Mercedes ai changé l’API sans le dire.
Je dois investiguer et je reviendrais vers toi dès que j’aurais trouvé

ok, merci au moins ça me rassure…

Ok je pense avoir trouvé. C’est bien un changement coté Mercedes
J’essaye de corrigé ce soir

Merci, il n’y a pas d’urgence, tu as le temps

C’est dispo en BETA v1.2.4

Merci mguyard, mais sur ma prod je suis en canal stable pour conserver l’aide jeedom en cas de problème

Bonjour,

J’ai bien évidement prévu de le passer en stable à terme.
Mais il faut que je m’assure qu’il n’y a pas de régression fonctionnelle et donc je dois attendre le retour d’utilisateurs Bêta.
Moins j’ai de retour, plus c’est long avant de passer en stable.

Toutefois, rien ne t’empêche de l’installer en bêta, le tester quelques jours et si ça te va, tu me le dit et tu repasse en stable.
Ça accélérera le passage en stable.

Actuellement pour passer en stable je regarde si j’ai pas de soucis sur mes Jeedom, si j’ai des utilisateurs qui me remontent des soucis en bêta. C’est en général au moins 15j entre une bêta et un stable. Surtout que dans cette bêta, les utilisateurs actuels vont être impactés et vont devoir faire un changement

Bonjour,
Même si mon problème n’est pas lié à celui-ci, ayant la dernière BÊTA, j’ai fait le test d’avoir volontairement une URL différente entre la config plugin et le site dev Mercedes. Je tombe bien sur le message d’erreur 400 invalid redirect URL.
En remettant à jour l’URL correctement sur le site Mercedes je n’ai plus ce problème lorsque j’active à nouveau la connexion.

Malheureusement je ne pas dire si cela a un impact sur les données car je n’arrive toujours pas à les récupérer mais l’erreur 400 semble corrigée.

1 « J'aime »