Oprócz innych dostępnych metod integracji, system Lock.me oferuje również integrację po API.

    Do kogo skierowany jest ten artykuł?

    Ten artykuł jest skierowany do osób technicznych, pragnących samemu zintegrować się z systemem Lockme. Jeśli nie wiesz, czym jest API, sprawdź artykuły na temat innych form integracji:

    Zanim zaczniesz

    • Twoje konto musi posiadać uprawnienia partnera.
    • Dokumentacja dla nowego API Lockme oparta jest na protokole bezpieczeństwa OAuth2.
    • Dokumentacja API Lockme.
    • Możesz skorzystać z następującej biblioteki, aby ułatwić sobie pracę: Lockme PHP SDK.
    • UWAGA: Autoryzacja i wywołania OAuth nie są jeszcze funkcjonalne w tej dokumentacji.

    Jakie operacje są możliwe w ramach API?

    Operacje, które aktualnie udostępniamy za pośrednictwem naszego API to:

    • zarządzanie rezerwacjami (przeglądanie, dodawanie, edycja, usuwanie, przenoszenie) - ważne: z poziomu API nie można usuwać rezerwacji opłaconych za pośrednictwem lockme.
    • obsługa wiadomości webhook (pobieranie, oznaczanie jako obsłużona).
    • przeglądanie oddziałów i pokoi.
    • zarządzanie ustawieniami tygodniowymi pokoju (przeglądanie, edycja).
    • zarządzanie wyjątkami kalendarza pokoju (przeglądanie, dodawanie, edycja, usuwanie).

    Jakie są wymagania naszej biblioteki i jak ją zainstalować?

    Aktualne szczegóły naszego SDK możesz znaleźć tutaj > https://packagist.org/packages/lustmored/lockme-sdk

    Do działania wymaga PHP w wersji minimum 7.2 (zalecamy przynajmniej 8.1 - wymagania mogą się zmienić w następnych wersjach!). Aby ją zainstalować należy skorzystać z Composera (https://getcomposer.org) i polecenia:

    composer require lustmored/lockme-sdk
    

    Czym jest identyfikator URI przekierowania?

    Redirect URI jest to adres, na który zostanie przekierowany użytkownik przy łączeniu z aplikacją (po akceptacji przekazania danych). Parametr ten pełni również funkcję autoryzacyjną przy nawiązywaniu połączenia z API. Dlatego jego wartość musi być zgodna z tą zdefiniowaną w panelu. W przypadku braku mechanizmu autoryzacji opartego na użytkownikach, a korzystania wyłącznie z tokenów, wartość tego parametru powinna pozostać domyślna i zostać odpowiednio skonfigurowana również po stronie klienta.

    Jak stworzyć aplikacje API?

    1. Przejdź do Cockpitu Lock.me (Twoje konto musi posiadać uprawnienia partnera).
    2. Wejdź w zakładkę "Rezerwacje" > "Aplikacje API".
    3. W prawym górnym rogu kliknij "Dodaj".
    4. Następnie wybierz partnera.
    5. Wpisz nazwę wewnętrzną aplikacji (np. Moja aplikacja 1).
    6. Podaj identyfikator URI przekierowania.
    7. Kliknij "Dodaj".

    image

    Jak działają nasze webhooki?

    • Nasze webhooki wysyłają 3 rodzaje zdarzeń na zdefiniowane adresy. Jest to dodanie, edycja oraz usunięcie rezerwacji. Każda wiadomość na webhook zawiera nagłówek X-MessageId, który zawiera ID wiadomości.
    • W celu obsłużenia wiadomości należy ją pobrać (endpoint: GET /message/{messageid} w API), a po obsłużeniu oznaczyć, jako odczytaną (POST /message/{messageid}).
    • W przypadku, gdy wiadomość nie zostanie oznaczona jako odczytana, będzie parokrotnie wysyłana ponownie, w coraz większych odstępach czasu.
    • Każda wiadomość zawiera metadane wydarzenia (ID pokoju, rezerwacji oraz rodzaj akcji - add/edit/delete) oraz dane rezerwacji z momentu wygenerowania wiadomości.
    • Szczegółowe informacje dotyczące webhooków znajdziesz w artykule > https://lock.me/pl/docs/article/webhooks-configuration

    Przykładowy kod połączenia z wykorzystaniem naszego SDK

    Poniższy fragment kodu wymaga stworzonej aplikacji API oraz tokena, wygenerowanego z panelu. W celu obsłużenia pełnej autoryzacji użytkowników OAuth2 zachęcamy zapoznać się z dokumentacją tutaj > https://oauth2-client.thephpleague.com/ (nasze SDK działa w oparciu o bibliotekę league/oauth2-client).

    W celu zachowania ciągłości połączenia do metody loadAccessToken należy przekazać callbacki odczytujące oraz zapisujące token (w tym przypadku do pliku token.json). WAŻNE: Pamiętaj, aby token nie był umieszczony na serwerze w publicznie dostępnym miejscu.

    <?php
    
    use Lockme\SDK\Lockme;
    
    include 'vendor/autoload.php';
    
    $sdk = new Lockme([
        "clientId" => '[client ID from cockpit]',
        "clientSecret" => '[client secret from cockpit]',
        'redirectUri' => '[redirect URI from cockpit]',
    ]);
    
    try {
        $sdk->loadAccessToken(
            fn() => file_get_contents('token.json'),
            fn($token) => file_put_contents('token.json', json_encode($token))
        );
        // Connection is established
        var_dump($sdk->Test());
    }catch(Exception $e){
        var_dump($e->getMessage());
    }
    

    Przykład obsłużenia wiadomości za pomocą naszego SDK

    W poniższym fragmencie kodu zakładamy, że zmienna $sdk została zainicjowana zgodnie z rozdziałem "przykładowy kod połączenia":

    <?php
    
    use Lockme\SDK\Lockme;
    
    // Initialize SDK as $sdk here
    
    assert($sdk instanceof Lockme);
    
    try {
        $messageid = $_SERVER['HTTP_X_MESSAGEID'];
        // Fetch message data
        $message = $sdk->GetMessage((int) $messageid);
    
        // Handle message however you need
        store_to_db($message);
    
        // Mark message as handled
        $sdk->MarkMessageRead((int) $messageid);
    
        echo 'OK';
    } catch (Exception $e) {
        // Display exception for debugging
        echo $e->getMessage();
    }
    

    Pomoc w integracji

    Potrzebujesz pomocy w integracji? Napisz do nas na [email protected].

    Hej, nasza strona wykorzystuje pliki cookies aby jej wszystkie funkcje mogły poprawnie działać.

    Poza tymi niezbędnymi, wykorzystujemy też pliki cookies podmitów trzecich abyśmy mogli korzystać z zewnętrznych narzędzi analitycznych, społecznościowych czy marketingowych. To oznacza że dane zbierane za ich pomocą są przetwarzane też przez dostawców tych narzędzi.

    Czy wyrażasz zgodę na używanie plików cookies innych niż niezbędne do działania strony, zgodnie z naszą polityką prywatności?

    Ustawienia plików cookie

    Tutaj możesz zmienić szczegółowe ustawienia dotyczące plików cookies stosowanych na naszej stronie. Jeżeli wyrażasz zgodę na pliki cookies określonego typu, oznacza to, że zgadzasz się, aby dane przez nie zebrane były wykorzystywane przez administratora tej strony, a także dostawcę konkretnego narzędzia, z którego korzystamy - zgodnie z opisem w naszej polityce prywatności.

    Ten rodzaj plików jest niezbędny do poprawnego funkcjonowania naszej strony. Wykorzystywane są między innymi przy takich funkcjach jak zapamiętywanie przez przeglądarkę wybranego przez użytkownika kraju, produktów w koszyku czy motywu kolorystycznego strony.

    Te pliki pozwalają nam zrozumieć, jak użytkownicy poruszają się po naszej stronie. Jednym z takich narzędzi jest Google Analytics, który pozwala nam zbierać anonimowe informacje o liczbie wejść, korzystaniu z konkretnych funkcji czy rodzaju urządzeń użytkowników. Dzięki nim jesteśmy w stanie dostosować stronę do potrzeb i możliwości różnorodnych użytkowników.

    Narzędzia Google, Facebook i Seznam.cz zbierające informacje o użytkownikach, które możemy wykorzystywać do celów marketingowych.