Token do aplikacji trzecich

gim-kg

Pionier e-mobilności
Jak użyć tokena aby zalogować się do aplikacji innych deweloperów? Mam aplikację "Auth for Tesla" która generuje ciąg znaków, tylko co z tym zrobić? Jak wkleić to zamiast adresu e-mail i hasła do kota tesli?
 

slaveq

Pionier e-mobilności
Ale co generuje? Token można uzyskać np. używając aplikacji Postman I to jest token który uzyskujemy z konta Tesli w celu przekazania go aplikacjom trzecim. Broń Boże nie korzystajcie ze stron w internecie które na podstawie waszego loginu i hasła przekazują wam token Tesli.
 

cooler

Pionier e-mobilności
Rozwiniesz temat aplikacji postman? Skąd ją wziąć, jak jej użyć żeby wygenerować token? Gdzie można użyć tokena Tesli?
 

slaveq

Pionier e-mobilności
Postman to właściwie klient API Rest z intuicyjnym interfejsem użytkownika, sprawdzony i używany w IT od kilku lat. Jeśli będę miał chwilkę to napiszę tutorial jak w bezpieczny sposób uzyskać token Tesli bez korzystania z jakichś podejrzanych serwisów zewnętrznych. Po długim weekendzie na pewno to zrobię.
 

slaveq

Pionier e-mobilności
Ok tak jak obiecałem, krótki opis jak zainstalować i użyć POSTMANA do uzyskania Tokenu Tesli:

CAŁY PROCES WYKONUJEMY NA KOMPUTERZE NIE NA TELEFONIE. ROBIMY TO TEŻ NA WŁASNĄ ODPOWIEDZIALNOŚĆ BO API NIE JEST OFICJALNIE DOSTĘPNE DLA WŁAŚCICIELI TESLI. POLECAM TĄ METODĘ PONIEWAŻ NIE WYSYŁACIE SWOJEGO LOGINU ANI HASŁA DO APLIKACJI TRZECICH KTÓRE POZYSKUJĄ DLA WAS TOKEN.

Polecam również korzystać z TeslaMate do obrazowania statystyk, wtedy nie przekazujemy swoich danych nikomu na zewnątrz a siedzą u nas bezpiecznie w sieci domowej. Postaram się wkrótce napisać tutorial jak zainstalować samemu TeslaMate.


1) Ściągamy i instalujemy ze strony https://www.postman.com/downloads/ apkę dla naszego systemu operacyjnego (Windows, Mac, Linux)

2) Następnym krokiem jest zaimportowanie kolekcji postman do swojej apki, kolekcja dostępna jest w tym repozytorium kodu:


Dodam, że repozytorium nie jest moje ale przejrzałem kod i nie ma tam nic niepokojącego. Żadne dane nie są nigdzie wysyłane.

3) Aby zaimportować kolekcję klikamy Import w lewym górnym rogu a następnie wklejamy dwa linki i importujemy kolekcje:
Screen Shot 2021-11-15 at 10.59.02 AM.jpg
Screen Shot 2021-11-15 at 11.00.28 AM.jpg



4) Ważne jest aby w prawym górnym rogu wybrać środowisko pracy "Tesla API Environment"
Screen Shot 2021-11-15 at 11.01.15 AM.jpg


5) Z lewej strony znajdujemy kolekcję "Tesla API Postman ..." i tam znajdujemy pozycję "Get Access Token"
Screen Shot 2021-11-15 at 11.04.15 AM.jpg

6) Wybieramy zakładkę Auhtorization i na samym dole wybieramy "Get New Access Token", zostaniemy poproszeni o zalogowanie się do swojego konta Tesla
Screen Shot 2021-11-15 at 11.04.28 AM.jpg

7) Po zalogowaniu pojawi nam się okienko z Tokenem, klikamy "Use Token"
Screen Shot 2021-11-15 at 11.05.52 AM.jpg

8) Przechodzimy do zakładki Body i zmieniamy wartości na:
JSON:
{
    "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer",
    "client_id": "81527cff06843c8634fdc09e8ac0abefb46ac849f38fe1e431c2ef2106796384",
    "client_secret": "c7257eb71a564034f9419ee651c7d0e5f7aa6bfbd18bafb5c5c033b093bb2fa3"
}
(nie pytajcie dlaczego ale tak wynika z opisu tutaj: https://www.teslaapi.io/authentication/oauth )

9) Następnie klikamy niebieski przycisk Send:

Screen Shot 2021-11-15 at 11.01.15 AM.jpg

10) W dolnej części pojawia nam się odpowiedź z serwera:
JSON:
{
    "access_token": "NASZ_TOKEN_DOSTEPOW",
    "token_type": "bearer",
    "expires_in": 3888000,
    "refresh_token": "TOKEN_DO OŚWIEŻANIA",
    "created_at": 1637780685
}
11) Kopiujemy sobie obydwie wartości z pól access_token i refresh_token i w ten oto "prosty" sposób zostaliśmy posiadaczami odpowiedniego tokenu :).

12) Jako bonus w sekcji API/1 naszej nowej kolekcji postmanowej możemy korzystać z dobrodziejstw API Tesli.

Tutorial byl pisany na szybko także, jeśli macie jakieś pytania, uwagi bądź coś jest niejasne to zapraszam do komentowania.
 
Last edited:

slaveq

Pionier e-mobilności
pytanko, do czego tego postmana można potem używać ?
Sam postman to w narzędzie do odpytywania różnych API w sieci. W tym przypadku użyliśmy go do komunikacji z API Tesli. Nie jest to aplikacja, które pozwoli nam w jakiś ładny sposób wizualizować dane (chyba, że lubimy czytać JSONa - format w którym są one przesyłane). Powyżej pokazałem jak w zaufany sposób uzyskać token dla API Tesli i jako zadanie z gwiazdką można sobie odpytać różne funkcjonalności API Tesli.

A dlaczego nam powinno zależeć na pozyskaniu tokena w sposób zaufany? Bo raz nie logujemy się do serwisów trzecich loginem i hasłem do naszego konta. Po zmianie hasła token wygasa i nikt nie ma do naszego konta dostępu a w skrajnym przypadku ktoś może próbować wykorzystać login/hasło do jego przejęcia. Zmienia hasło na swoje i po zawodach.

Odradzam też korzystanie z aplikacji firm trzecich takich jak MyTesla. Jak ktokolwiek zapewnia nas, że nasze dane są u nich bezpieczne to nie są zupełnie. Czy chcemy przekazywać jakimś pośrednikom odpłatnie informacje o tym gdzie jeździmy, jak szybko, gdzie się ładujemy itp. itd. ? Ja niespecjalnie.

Dlatego kiedy będę miał czas postaram się napisać szybki tutorial jak kupując RaspberryPI zainstalować na nim TeslaMate i mieć te wszystkie dane u siebie w domu.
 

usrobo

Posiadacz elektryka
czyli tak uzyskany Token moge zastosowac do ABRP lub centralki fibaro aby np zapliła mi sie lampka w sypialni jak auto bedzie na 100% naładowane?
 

slaveq

Pionier e-mobilności
czyli tak uzyskany Token moge zastosowac do ABRP lub centralki fibaro aby np zapliła mi sie lampka w sypialni jak auto bedzie na 100% naładowane?
Tak, jeśli Fibaro wspiera taką funkcjonalność. ABRP również jest firmą trzecią i również może pobierać o nas dane bez naszej wiedzy także z tym bym już uważał (mimo, że lubię ABRP i korzystam to nie powierzyłbym im możliwości zbierania sobie statystyk z samochodu).
 

Sawa

Zadomawiam się
Dlatego kiedy będę miał czas postaram się napisać szybki tutorial jak kupując RaspberryPI zainstalować na nim TeslaMate i mieć te wszystkie dane u siebie w domu.

Byłoby super 😀 akurat mam nie używane RPi. Chyba, że znajdę jakiś tutorial do instalacji w Dockerze na NASie Synology.
 
Top