Il existe des applications ou sites web qui ont besoin de se connecter à votre voiture pour en extraire certaines informations (distance parcourue, état de la batterie, température extérieure etc…). Si vous ne souhaitez pas leur fournir vos identifiants Tesla, certaines permettent de leur fournir directement le « token » de connexion.

Pourquoi les utiliser ?

Les applications et sites tels que T4U, Jeedom, Stats, Teslafi, Tezlab permettent de connaître des informations que votre voiture n’affiche pas en temps normal. Des statistiques de charge, de consommation, de santé de la batterie etc…

Le site ABetterRoutePlanner est très utile pour planifier ses trajets. Il peut lui aussi être connecté à la voiture pour donner des estimations plus précises en fonction de la charge ou de la température extérieure.

Il peut donc être utile d’utiliser ce type d’outil qui nécessite une connexion à la voiture, mais pour ceux qui ne veulent pas donner leurs identifiants Telsa, il est souvent possible de leur communiquer plutôt le token de connexion.

Risques des identifiants Tesla et avantages du token

Avant de fournir vos identifiants Tesla, il faut savoir que ceux ci donnent à une application tierce les mêmes droits que ceux dont bénéficie l’application officielle Tesla sur votre mobile. A savoir déverrouiller la voiture, la démarrer, etc… De fait, on n’a pas vraiment envie que les identifiants arrivent entre toutes les mains.

Quand vous entrez vos identifiants sur un site ou une application, il (ou elle) les envoie aux serveurs de Tesla pour se voir attribuer ce qu’on appelle un token (un jeton). C’est une sorte de mot de passe lui permettant alors de se connecter à la voiture sans utiliser à nouveau vos identifiants.

Du coup, certains sites et applications permettent d’entrer directement le token que vous aurez généré par vous même.
Cela vous permettra de fournir un token différent par application et les révoquer individuellement si vous arrêtez d’utiliser une application. Dans le cas contraire, il vous faudrait changer votre mot de passe, ce qui révoquerait alors tous les tokens d’un coup.

Comment générer un token ?

En ligne de commande windows :


Si vous avez curl installé et actif sur votre windows, vous pouvez le faire en ligne de commande. Si vous ne savez pas de quoi je parle, passez à la partie suivante 🙂

Dans la ligne de commande suivante, remplacez VOTRE_EMAIL_TESLA par votre adresse email de login sur votre compte Tesla
VOTRE_MOT_DE_PASSE_TESLA par votre mot de passe

curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" -F "grant_type=password" -F "client_id=81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384" -F "client_secret=c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3" -F "email= VOTRE_EMAIL_TESLA" -F "password=VOTRE_MOT_DE_PASSE_TESLA" "https://owner-api.teslamotors.com/oauth/token"

Ouvrez une fenêtre « CMD » en ligne de commande dans windows 10 (vous pouvez le faire en utilisant le raccourci clavier « Windows+R », en tapant CMD dans la fenêtre qui s’ouvre et en appuyant sur la touche entrée.
Collez alors la ligne de commande que vous venez de modifier dans la fenêtre de commande et validez en tapant sur Entrée pour exécuter la commande. Vous récupérer alors le token de Tesla.
(source)

A l’aide d’une interface graphique :

Pour ce tutoriel, vous aurez besoin d’utiliser logiciel tel que Advanced Rest Client ou Postman. (téléchargez le et installez le). Dans la suite, j’expliquerai pour ARC, mais le fonctionnement est similaire pour Postman.

Une fois le client REST de votre choix lancé,

Utilisez la méthode POST. Request URL devrait être :

https://owner-api.teslamotors.com/oauth/token?grant_type=password

Ajoutez trois entêtes (header) :

Content-Type : application/json
User-Agent : Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0)
ARC Headers
ARC Headers

Et dans le corps (Body) :

{
   "grant_type": "password",
   "client_id": "e4a9949fcfa04068f59abb5a658f2bac0a3428e4652315490b659d5ab3f35a9e",
   "client_secret": "c75f14bbadc8bee3a7594412c31416f8300256d7668ea7e6e7f06727bfb9d220",
   "email": "VOTRE_EMAIL_TESLA",
   "password": "VOTRE_MOT_DE_PASSE_TESLA"
 }

En remplaçant l’email et le password par vos identifiants Tesla.

Body ARC
Body ARC

Pour ceux qui seraient aussi paranoïaques que moi et qui se posent la question de l’origine du client_id et client_secret, je les ai sortis de l’application officielle Tesla pour Android dans le fichier

com.teslamotors.tesla_source_from_JADX\resources\assets\shared\env.json

Vous pouvez alors cliquer sur SEND, et vous devriez recevoir la réponse ci-dessous :

{
     "access_token": "abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345",
     "token_type": "bearer",
     "expires_in": 3888000,
     "refresh_token": "abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345",
     "created_at": 1571761056
}

Vous n’aurez alors plus qu’à copier coller le contenu de « access_token » dans l’application que vous souhaitez utiliser (ci-dessous, l’exemple de ABetterRoutePlanner)

Token inséré dans My Tesla Login de ABetterRoutePlanner
Token inséré dans My Tesla Login de ABetterRoutePlanner

Pour révoker un token, le Request URL devrait être

https://owner-api.teslamotors.com/oauth/revoke

L’entête est la même, mais le corps devrait contenir :

{
      "token": "abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345abcde12345"
 }

Quand vous cliquerez sur SEND, vous aurez simplement un code retour 200 OK pour vous indiquer que tout s’est bien passé.

Bonne route !


0 commentaire

Laisser un commentaire