Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Smartcar Java SDK Build Status Code Coverage JavaDoc

Resources

Installation

The recommended method for obtaining the SDK is via Gradle or Maven. Direct download links are also provided below.

Gradle

compile "com.smartcar.sdk:java-sdk:2.7.5"

Maven

<dependency>
  <groupId>com.smartcar.sdk</groupId>
  <artifactId>java-sdk</artifactId>
  <version>2.7.5</version>
</dependency>

Jar Direct Download

Usage

Authentication

For authentication, Smartcar uses the authorization code request flow of the OAuth 2.0 specification. Before you can make successful calls to the Smartcar platform, you will need to authenticate with Smartcar, and then obtain a valid access token for the target vehicle.

  1. Make sure you have your application set up in the Smartcar Developer Dashboard. You will need the following 3 pieces of information associated with your application:

    • Client ID
    • Client Secret
    • Redirect URI
  2. You can then generate an authentication URL for your user:

    // Setup
    String clientId = "";
    String clientSecret = "";
    String redirectUri = "";
    String[] scope = {};
    boolean development = true;
    
    // Initialize a new AuthClient with your credentials.
    AuthClient authClient = new AuthClient(clientId, clientSecret, redirectUri, scope, development);
    
    // Retrieve the auth URL to start the OAuth flow.
    String authUrl = authClient.authUrlBuilder()
            .setApprovalPrompt(true)
            .setState("some state")
            .build();
  3. Allow the user to complete their portion of the OAuth flow using the generated URL.

  4. Once the user is sent back to the redirect url, the required authorization code will be included in the query string:

    https://redirect-url.example.com/?code=<AUTHORIZATION_CODE>

  5. Given the authorization code, you can now exchange it for an authorization token which can be used to access the Smartcar platform:

    Auth auth = authClient.exchangeCode(code);

Vehicle Data & Commands

Now that you have authenticated and can access the Smartcar platform, you can start making requests to vehicles.

  1. Obtain a list of authorized vehicles:

    SmartcarResponse<VehicleIds> vehicleIdsResponse = AuthClient.getVehicleIds(auth.getAccessToken());
    String[] vehicleIds = vehicleIdsResponse.getData().getVehicleIds();
  2. Create an instance of Vehicle:

    Vehicle vehicle = new Vehicle(vehicleIds[0], auth.getAccessToken());
  3. You can now access all information about the specified vehicle:

    // Retrieve the vehicle's VIN
    String vin = vehicle.vin();
    
    // Read the vehicle's odometer
    SmartcarResponse<VehicleOdometer> odometerResponse = vehicle.odometer();
    VehicleOdometer odometerData = odometerResponse.getData();
    double odometer = odometerData.getDistance();
    
    // Retrieve the vehicle's location
    SmartcarResponse<VehicleLocation> locationResponse = vehicle.location();
    VehicleLocation locationData = locationResponse.getData();
    String latLong = locationData.getLatitude() + ", " + locationData.getLongitude();
    
    // Lock and unlock the vehicle
    vehicle.lock();
    vehicle.unlock();