Jak odemknout TTLock kliku přes API

TTLock Open API v praxi

Jak propojit TTLock kliky s vlastním systémem přes API

Od registrace na TTLock Open Platform přes Client ID, Access Token a Lock ID až po načtení zámků, vzdálené ovládání a vlastní rezervační systém. Ukážeme si princip, který používáme také při vlastním vývoji v Blueroad.

Chytré kliky a zámky TTLock nemusíte ovládat pouze prostřednictvím mobilní aplikace. TTLock nabízí také Open API, díky kterému lze chytré zámky propojit s vlastním softwarem, rezervačním systémem, hotelovým systémem nebo jinou aplikací.

Na první pohled mohou pojmy jako Client ID, Client Secret, Access Token nebo Lock ID působit složitě. Jakmile ale pochopíte, k čemu jednotlivé údaje slouží, je princip propojení poměrně jednoduchý.

Co vlastně TTLock API umožňuje?

API funguje jako komunikační rozhraní mezi vaším systémem a platformou TTLock. Vlastní aplikace tak může s klikami a zámky pracovat automaticky bez toho, aby obsluha musela všechny úkony provádět ručně v mobilní aplikaci.

  • Načítat zámky připojené k účtu TTLock.
  • Pracovat s Lock ID jednotlivých klik a zámků.
  • Spravovat přístupy podle možností konkrétního zařízení a API.
  • Vzdáleně odemykat podporované zámky přes gateway.
  • Načítat historii událostí a způsoby odemčení.
  • Kontrolovat gateway a informace o připojených zámcích.
  • Propojit TTLock s vlastním rezervačním nebo přístupovým systémem.
Váš systém
→
TTLock Open API
→
TTLock cloud
→
Gateway
→
Klika / zámek
Důležité: vzdálené odemčení přes API neznamená, že váš webový server komunikuje přímo přes Bluetooth s klikou. Vzdálený příkaz prochází přes infrastrukturu TTLock a gateway připojenou k danému zámku.

1. Registrace na TTLock Open Platform

Prvním krokem je vytvoření vývojářského účtu na evropské TTLock Open Platform.

Otevřít TTLock Open Platform

Po přihlášení vytvoříte vlastní aplikaci, která bude prostřednictvím API komunikovat s TTLock.

Dva účty, které není dobré zaměnit

Při prvním nastavování bývá častým zdrojem nejasností rozdíl mezi vývojářským účtem a běžným účtem TTLock.

Developer účet slouží pro přístup do TTLock Open Platform a vytvoření vlastní API aplikace.

TTLock účet je účet používaný v aplikaci TTLock, pod kterým jsou skutečně uložené a spravované vaše kliky a zámky.

2. Client ID a Client Secret

Po vytvoření aplikace získáte její přístupové údaje. Dva nejdůležitější jsou Client ID a Client Secret.

Client ID: 111111111111111111111111 Client Secret: 222222222222222222222222

Client ID identifikuje vaši aplikaci. Client Secret je její tajný klíč.

Pozor: Client Secret nikdy nezveřejňujte v HTML stránky, veřejném JavaScriptu ani veřejném repozitáři. Tento údaj patří pouze na serverovou část aplikace.

Všechny hodnoty uvedené v ukázkách tohoto článku jsou smyšlené a slouží pouze pro vysvětlení principu.

3. Získání Access Tokenu

Samotné Client ID a Client Secret ještě nestačí k tomu, abychom mohli pracovat se zámky konkrétního TTLock účtu. K tomu potřebujeme autorizaci a Access Token.

Při získávání tokenu pracujeme mimo jiné s těmito údaji:

client_id client_secret username password

Uživatelské jméno a heslo zde patří k účtu používanému v aplikaci TTLock, nikoliv k vývojářskému účtu Open Platform. Heslo se při autorizačním požadavku zpracovává podle požadavků TTLock API.

Po úspěšné autorizaci získáme například:

access_token refresh_token uid expires_in

Access Token následně používáme při komunikaci s API. Refresh Token umožňuje získat nový přístupový token bez nutnosti opakovat celé přihlášení.

4. Přístupové údaje oddělte od programu

Při prvních testech lze jednotlivé hodnoty zadávat ručně. Jakmile ale vytváříte skutečný systém, je vhodné připojení k TTLock oddělit od samotné aplikační logiky.

U PHP aplikace může jednoduchý konfigurační soubor config.php vypadat například takto:

<?php return [ 'ttlock' => [ 'client_id' => getenv('TTLOCK_CLIENT_ID'), 'client_secret' => getenv('TTLOCK_CLIENT_SECRET'), 'access_token' => getenv('TTLOCK_ACCESS_TOKEN'), 'refresh_token' => getenv('TTLOCK_REFRESH_TOKEN'), 'api_url' => 'https://api.sciener.com' ] ];

Skutečné hodnoty tak nemusí být přímo součástí zdrojového kódu. Aplikace si je načte ze serverového prostředí.

V jiném skriptu pak stačí konfiguraci načíst:

<?php $config = require __DIR__ . '/config.php'; $clientId = $config['ttlock']['client_id']; $accessToken = $config['ttlock']['access_token']; $apiUrl = $config['ttlock']['api_url'];
Bezpečnost