This is a composer package that allows you to access your Tesla products through Tesla's API. You're able to view products, send commands, get metrics, and more from your Tesla account.
You can install this package via composer:
composer require kirilcvetkov/tesla-api
Generate a single-use token by authenticating yourself with the Tesla's auth page using your Tesla account credentials.
This will be a direct connection to Tesla. After logging in, you'll arrive at "Page Not Found", which is to be expected.
Look at the URL of this page and copy the code
parameter. This is your single-use token.
Here's how to get a link to Tesla's auth page:
use KirilCvetkov\TeslaApi\Authenticate;
$url = Authenticate::create()->getLoginUrl();
echo '<a href="' . $url . '" target="_blank">Log into Tesla</a>';
The URL of the "Page Not Found" page should look someything like this: https://auth.tesla.com/void/callback?locale=en-US&code=NA_code_123&state=zzz&issuer=https%3A%2F%2Fauth.tesla.com%2Foauth2%2Fv3
Use the value of the code
parameter to retrieve a long-term token:
use KirilCvetkov\TeslaApi\Authenticate;
$singleUseToken = 'NA_code_123';
$accessToken = Authenticate::create()->getToken($singleUseToken);
echo '<pre>';
var_export($accessToken);
With this token, you can access Tesla's API.
use KirilCvetkov\TeslaApi\Tesla;
$tesla = Tesla::create($accessToken); // $accessToken comes from the previous example
$products = $tesla->products()->index();
echo '<pre>Product count ' . $products->totalCount . '<br>Items <br>';
var_export($products->items);
$vehicles = $tesla->vehicles()->index();
echo '<hr>Vehicle count ' . $vehicles->totalCount . '<br>Items <br>';
var_export($vehicles->items);
composer test
Please see CHANGELOG for more information what has changed recently.
Please see CONTRIBUTING for details.
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.