Aller au contenu
Zemotard

Generer son Token

Messages recommandés

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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`

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 😁

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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/

Partager ce message


Lien à poster
Partager sur d’autres sites





×
×
  • Créer...
Automobile Propre

Automobile Propre est un site d'information communautaire qui est dédié à tout ce qui concerne l'automobile et l'environnement. Les thématiques les plus populaires de notre blog auto sont la voiture électrique et les hybrides, mais nous abordons également la voiture GNV / GPL, les auto à l'hydrogène, les apects politiques et environnementaux liés à l'automobile. Les internautes sont invités à réagir aux articles du blog dans les commentaires, mais également dans les différents forums qui sont mis à leur dispositon. Le plus populaire d'entre eux est certainement le forum voiture électrique qui centralise les discussions relatives à l'arrivée de ces nouveaux véhicules. Un lexique centralise les définitions des principaux mots techniques utilisés sur le blog, tandis qu'une base de données des voitures (commercialisées ou non) recense les voitures électriques et hybrides.