Aller au contenu
View in the app

A better way to browse. Learn more.

Forum Automobile Propre

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Generer son Token

Featured Replies

Posté(é)

Bonjour,

auriez vous une source / application FIABLE pour générer un token afin de l'utiliser ensuite avec une app pour me connecter à ma Tesla ?

L'idée de laisser fuiter mon login / password ne m'enchante guerre ...

 

Merci

Posté(é)

Perso, j'ai téléchargé un script powershell pour le générer depuis mon pc parce que j'avais moyennement envie de saisir mon mdp sur un site que je ne connais pas.

Posté(é)

De mon coté j'utilise Postman sur PC, et REST Api Client sur mon Android, avec lesquelles j'envoie la requête suivante :

méthode : POST

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

Body       :

  • grant_type: password
  • client_id: 81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384
  • client_secret: c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3
  • email: <courriel du compte Tesla>
  • password: <mot de passe du compte Tesla>

grant_type, client_id et client_secret ont des valeurs constantes.

 

On obtient alors une réponse qui contient le token, comme celle-ci :

{
    "access_token": "<Token de connection>",
    "token_type": "bearer",
    "expires_in": 3888000,
    "refresh_token": "<Token pour le renouvellement automatique?>",
    "created_at": 1390163503
}

Et une petite capture d'écran pour plus de clarté :

postmanTesla.png.565ca06a31332b6f08f958377cbee858.png

 

 

Posté(é)

Je peux remettre le mode d'emploi que j'ai mis sur mon site https://matesla.herokuapp.com

 

Il faut python (https://www.python.org/downloads/) et le module requests (https://requests.readthedocs.io/en/master/user/install/) installés

 

import requests

import json
client_id = '81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384'
client_secret = 'c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3'
token_url = "https://owner-api.teslamotors.com/oauth/token"
data = {'grant_type': 'password', 'client_id': client_id, 'client_secret': client_secret,'email': 'PUT HERE YOUR TESLA USER', 'password': 'PUT HERE YOUR TESLA PASSWORD'}
access_token_response = requests.post(token_url, data=data, verify=True, allow_redirects=False)
tokens = json.loads(access_token_response.text)
print("access_token is "+tokens["access_token"])
print("created_at is "+str(tokens["created_at"]))
print("refresh_token is "+tokens["refresh_token"])

Modifié par matesla3etaitsurleglovis
oubli du site

  • 8 mois plus tard...
Posté(é)

Bonsoir

ça fait longtemps que j'ai pas testé la génération de Token et là j'ai testé j'ai eu ça : l'URL à changé ?

 

 

{
"response": null,
"error": "Endpoint deprecated: Please update your App.",
"error_description": ""
}
Posté(é)
Il y a 14 heures, matesla3etaitsurleglovis a dit :

Oui, tesla a maj ses serveurs.

 

J'ai trouvé ce petit programme qui marche très bien, et dont je me suis inspiré pour mon site https://matesla.herokuapp.com

 

Voila le code, il sauve le token dans un fichier:

https://github.com/enode-engineering/tesla-oauth2

Ah ok merci, moi j'utilise Postman comment puis-je m'adapter ?

Posté(é)
Le 20/02/2021 à 01:53, matesla3etaitsurleglovis a dit :

Voila le code, il sauve le token dans un fichier:

https://github.com/enode-engineering/tesla-oauth2

J'ai testé et j'ai (comme l'utilisateur ayant ouvert la seule issue) un soucis avec le MFA activé:

Traceback (most recent call last):
  File "./teslatoken.py", line 226, in <module>
    login(args)
  File "./teslatoken.py", line 119, in login
    raise ValueError(f"Can't find device `{device_name}`")
ValueError: Can't find device `Device #1`

 

Posté(é)
il y a une heure, matesla3etaitsurleglovis a dit :

@bilygates: il faut avoir un interpréteur python installé sur sa machine (https://www.python.org/downloads/) Puis on télécharge le fichier .py, et on l'exécute dans une ligne de commande (cmd sous windows, term sous unix) en tapant: python chemin du fichier.py

Merci, j'ai réussi non sans peine à le faire tourner sur mon Mac 😁

Posté(é)

Salut @matesla3etaitsurleglovis

 

Merci pour ton script python, grâce à lui j'ai pu récupérer un token pour se connecter au site tesla 👍

 

Mais il a fallu que je change une petite ligne j'ai mis la valeur en dur à device_name (ligne 116 désolé je ne parle pas python couramment l'idéal aurait été de le récupérer par rapport au paramètre device).

 

En fait le script construite un device_name = Device #{args.device} par rapport au device_number passé en paramètre, mais dans mon cas j'ai renommer mon téléphone et du coup le nom n'était pas trouvé dans la liste retournée Tesla.

 

Edit: voici ma modification définitive:

Citation

            if args.device:
                devices = [factors[int(args.device)-1]]
            else:
                devices = [factors[0]]

 

Modifié par 3.14R
ajout de détails

Posté(é)

Pour info moi aussi j'ai dû modifier la ligne sachant que j'ai pas la double auth:

 

vprint("Code -", code) 

  • 3 semaines plus tard...
Posté(é)

Avez-vous trouvé un moyen récent de générer le token car les méthodes trouvées sur le net ne fonctionnent plus.

SI j'ai bien compris, en cedébut d'année Tesla a changé sa méthode d'appel et a bloqué celles qui utilisaient l'ancienne méthode ?

Merci pour votre aide

  • 7 mois plus tard...
Posté(é)

Bonjour tout le monde !

 

Je déterre un vieux sujet car j'ai eu du mal à générer un token pour accéder à l'API Tesla. De manière automatisée je n'y parviens pas, mais voici une méthode manuelle qui fonctionne et qui demande une dizaine de minutes.

 

Tout est indiqué dans https://tesla-api.timdorr.com/api-basics/authentication mais impossible de l'automatiser sans avoir un "access denied". Tout ce que je décris est manuel mais il y a probablement moyen d'automatiser à partir de l'étape 3.

 

Le plus simple est d'utiliser Postman car il va automatiquement vous générer l'URL qui faut et je trouve plus simple à utiliser.

 

Tout d'abord vous devez générer une chaîne de 86 caractères. J'ai utilisé http://www.unit-conversion.info/texttools/random-string-generator/. Nous nommerons cette chaîne code_verifier.

 

Ensuite il faut chiffrer cette chaîne en SHA256 grâce à https://emn178.github.io/online-tools/sha256.html et encoder le résultat en base 64 avec https://www.base64encode.org/. On obtient le code_challenge.

 

A partir de ce dernier nous allons construire une URL d'accès à Tesla. Cette partie est automatisable et fonctionne. Les valeurs non variables sont accessibles à l'étape 1 de https://tesla-api.timdorr.com/api-basics/authentication. La methode est GET et l'url de base est https://auth.tesla.com/oauth2/v3/authorize. Ici j'utilise Postman qui va me donner directement l'URL avec les paramètres.

 

image.thumb.png.a570354c01eb1f6af9c3619628190fa2.png

 

Ne cliquez pas sur "Send" mais copiez l'URL générée par Postman (où contruisez-là si vous savez ajouter des paramètres à une méthode GET). Collez-là dans un navigateur qui va vous diriger vers le formulaire d'authentification Tesla.

 

C'est désormais l'étape 2 et celle qui pose problème lors de l'automatisation. Je ne sais pas encore comment Tesla détermine si la requête peut-être exécutée. Le site non-officiel de l'API indique que c'est lié aux cookies mais je n'y parviens pas. J'essaierai probablement en en copiant certains en-têtes, je vous tiendrais au courant. Pour le moment la méthode manuelle depuis le navigateur fonctionne.

Entrez vos identifiants, éventuellement la partie 2FA et vous serez redirigé vers une URL commençant par https://auth.tesla.com/void/callback?code=. Gardez dans un coin la valeur de code.

 

A partir de là je n'ai pas essayer d'automatiser, mais ça passe avec Postman donc ça devrait pouvoir se faire sans problème. Nous arrivons dans l'étape 3 qui consiste à envoyer une requête POST. L'URL de base est https://auth.tesla.com/oauth2/v3/token. Ajouter des paramètres en corps de requête, au format JSON, dans l'onglet Body sélectionnant raw Quand tout est entré, cliquez sur Send

 

image.png.77da4adf82c0eb851e09910c07cc2d11.png

 

En dessous, dans Body, vous allez avoir un JSON avec un access_token. Sauvegardez-le et passez à l'étape 4

 

Ici l'URL est https://owner-api.teslamotors.com/oauth/token. Il faut ensuite ajouter un en-tête depuis l'onglet Headers. Dans Key entrez Authorization (Postman devrait vous le proposer) et dans value il faut "Bearer [VOTRE_ACCESS_TOKEN]". N'oubliez pas de mettre Bearer au début sinon ça ne fonctionnera pas.

 

image.thumb.png.30fc6a59c6419145bcddae8533192190.png

 

Avant d'envoyer il faut quelques paramètres dans le corps de la requête. Le client_id et le client_secret sont accessibles depuis https://pastebin.com/pS7Z6yyP

 

image.thumb.png.3351a825037e27386f7251bfba54712a.png

Cliquez sur Send et vous aurez votre utlime access_token, celui qui sera utilisé dans vos futures requêtes. Il est bien plus court et visiblement comment par eu.

 

Pour le tester, n'ayant pas encore pris livraison de ma voiture, j'ai utilisé une requête GET vers 

https://owner-api.teslamotors.com/api/1/users/orders. Dans les en-têtes, remplacez le access_token par celui que vous venez tout juste de recevoir (gardez Bearer au début) et VOI. LA !

 

image.png.5d6f70f488a256971031c5d2d152e40e.png

  • 2 semaines plus tard...
Posté(é)

si une bonne ame pouvez m'aider à générer un token , j'ai tenté tesla_auth sur win 10 puis teslatoken avec mon smartphone android puis aussi acces token.

 

aucun token fourni ne fonctionne avec teslamate , abrp , jedlix.

 

teslamate ne prend pas non plus mes identifiants réel.

Modifié par julien85

  • 1 mois plus tard...
Posté(é)

Bonjour,
 

Je suis une quiche en info. 
Je ne voudrai pas donner mes identifiants et MDP à une appli tierce et de ce fait l'idée du Token m'intéresse. Mais il y a un mais.
Comment fonctionne l'appli (dite simple mais pour moi rien n'est simple) de @denouche.
Existe-t-il un tuto décrivant ce qu'il y a faire pour générer un token et comment on l'utilise.
Merci pour votre aide

Posté(é)
Le 18/01/2022 à 13:00, yvespsv a dit :

Bonjour,
 

Je suis une quiche en info. 
Je ne voudrai pas donner mes identifiants et MDP à une appli tierce et de ce fait l'idée du Token m'intéresse. Mais il y a un mais.
Comment fonctionne l'appli (dite simple mais pour moi rien n'est simple) de @denouche.
Existe-t-il un tuto décrivant ce qu'il y a faire pour générer un token et comment on l'utilise.
Merci pour votre aide

Hello,

L'application Android Tesla tokens est gratuite, installe la et si ça n'est pas assez simple et que tu as besoin d'aide n'hésite pas à revenir ici !

Elle est simple, et je pars du principe que si il faut un tuto pour l'utiliser c'est quelle ne l'est pas encore assez !

 

Modifié par denouche

Posté(é)

J’ai obtenu mes token mais comment les utiliser sur ABRP pour connecter sa voiture. Le premier c’est l’identifiant ? Et le second le mot de passe ? En lieu et place de ceux de mon compte tesla ? 

Posté(é)
Le 18/01/2022 à 13:19, Olivlmp a dit :

J’ai obtenu mes token mais comment les utiliser sur ABRP pour connecter sa voiture. Le premier c’est l’identifiant ? Et le second le mot de passe ? En lieu et place de ceux de mon compte tesla ? 

Non, l'identifiant et le mot de passe permettent justement d'obtenir un token. Mais ce token n'est pas utilisable en lieu et place du password. 

Là tu as un token, maintenant il faut que les applications tierces supportent l'authentification via token. 

C'est plutôt du côté du post dédié à ABRP qu'il faut poser la question du coup, pour ma part je n'utilise pas ABRP. 

https://forums.automobile-propre.com/topic/a-better-routeplanner-31312/

Account

Navigation

Rechercher

Rechercher

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.