npm install @remscodes/renault-api-clientimport{RenaultClient}from'@remscodes/renault-api-client';// Instantiate new Renault http clientconstrenault=newRenaultClient();// Use Gigya and Kamereon sub http client.const{ gigya, kamereon }=renault;// Login to Gigya service and get auth info (to be automatically stored into session). awaitgigya.login('myLogin','myPassword');awaitgigya.getAccountInfo();awaitgigya.getJwt();// Get the proper `accountId` and store it into session.const{ accounts }=awaitkamereon.getPerson();constaccountId=accounts.find(acc=>acc.accountType==='MYRENAULT');renault.session.accountId=accountId;// Get the vehicle `vin` and store it into session.constvehicles=awaitkamereon.getAccountVehicles();const{ vin }=vehicles.vehicleLinks[0];renault.session.vin=vin;// Get vehicle info. constresponse=awaitkamereon.readBatteryStatus();constbatteryStatus=response.data.attributes;Authentication info are stored in RenaultSession instance.
constrenault=newRenaultClient();constsession=renault.session;classRenaultSession{// Locale that will be used to format date.// default: "fr_FR"locale: string;// Country code that will use as http param for Kamereon.// default: "FR"country: string;// Token to use Gigya getJWT API.// Automatically set when Gigya login API is called and succeed.gigyaToken: string|undefined;// Token to use Kamereon API.// Automatically set when Gigya getJWT API is called and succeed.token: string|undefined;// Selected person id.// Automatically set when Gigya getAccountInfo API is called and succeed.personId: string|undefined;// Selected account id.// To be set to be automatically passed into each Kamereon API functions that needs it.// Otherwise, it needs to be manually passed as function argument using `KamereonClient`.accountId: string|undefined;// Selected vehicle vin.// To be set to be automatically passed into each Kamereon API functions that needs it.// Otherwise, it needs to be manually passed as function argument using `KamereonClient`.vin: string|undefined;}You can intercept response error by passing onError callback into client constructor.
Example :
constrenault=newRenaultClient({onError: ({ status, url, error },session)=>{if(status===401){session.token=undefined;myService.clearToken();myService.navigateToLogin();}else{console.error(`Error ${status} from ${url} : ${error}`);}},});This project is not affiliated with, endorsed by, or connected to Renault. I accept no responsibility for any consequences, intentional or accidental, resulting from interaction with the Renault's API using this project.
Resources API based on @remscodes/renault-api.
MIT © Rémy Abitbol.