Τεκμηρίωση API

Χρησιμοποιήστε το API μας για προγραμματιστές για να δημιουργήσετε τη δική σας διεπαφή κρατήσεων. Μπορείτε να σχεδιάσετε οποιαδήποτε λύση θέλετε, από το απλούστερο widget έως την πολυλειτουργική εφαρμογή με λειτουργίες προσαρμοσμένες σύμφωνα με τις ιδιαιτερότητες της επιχείρησής σας.

Η διεπαφή προγραμματισμού εφαρμογής Simplybook χρησιμοποιεί το πρωτόκολλο JSON-RPC 2.0.

Δείτε ένα παράδειγμα διεπαφής κράτησης που βασίζεται σε API και διαβάστε επίσης τον πηγαίο κώδικα αυτής της λύσης.

Εξουσιοδότηση

Οι μέθοδοι API του Simplybook απαιτούν έλεγχο ταυτότητας. Για να εξουσιοδοτηθείτε στο Simplybook API πρέπει να λάβετε ένα κλειδί πρόσβασης - access-token. Για να λάβετε αυτό το access-token θα πρέπει να καλέσετε τη μέθοδο JSON-RPC getToken στην υπηρεσία http://user-api.simplybook.me/login περνώντας το προσωπικό σας κλειδί API. Μπορείτε να αντιγράψετε το κλειδί API στο περιβάλλον διαχείρισης: μεταβείτε στο σύνδεσμο 'Plugins' και επιλέξτε το plugin API 'Settings'. Στη συνέχεια, πρέπει να ξεκινήσετε την απομακρυσμένη πρόσβαση στο API του Simplybook. Η αίτησή σας θα πρέπει να περιέχει τις ακόλουθες επικεφαλίδες: 'X-Company-Login', 'X-Token'.

Η απόκτηση του κωδικού πρόσβασης μπορεί να πραγματοποιηθεί είτε από την πλευρά του πελάτη είτε από τον διακομιστή σας, η οποία είναι η πιο ασφαλής λύση.

Μπορείτε να χρησιμοποιήσετε τη βιβλιοθήκη javascript JSON-RPC-client και τη βιβλιοθήκη php JSON-RPC-client από τα παραδείγματά μας για την ανάπτυξη της δικής σας λύσης.


Πελάτης API(Δημόσια υπηρεσία της εταιρείας) εξουσιοδότηση

Εξουσιοδότηση από κώδικα πελάτη

Λήψη του token-κλειδιού.


    var loginClient = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getToken( YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

Αρχικοποίηση JSON-RPC-πελάτη


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-Token': token
        },
        'onerror': function (error) {}
    });
    

Εξουσιοδότηση από κώδικα στην πλευρά του διακομιστή

Λήψη του token-κλειδιού.


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getToken(YOUR_COMPANY_LOGIN, YOUR_API_KEY);
    

Αρχικοποίηση JSON-RPC-client.


    $client = new JsonRpcClient( 'https://user-api.simplybook.me' . '/', array(
        'headers' => array(
            'X-Company-Login: ' .  YOUR_COMPANY_LOGIN,
            'X-Token: ' . $token
        )
    ));
    

User/Admin API(υπηρεσία διαχείρισης εταιρείας) authorization: Εξουσιοδότηση χρήστη/διαχειριστή API(υπηρεσία διαχείρισης εταιρείας)

Εξουσιοδότηση από κώδικα πελάτη

Λήψη του token-κλειδιού.


    var loginClient = new JSONRpcClient({
        'url': {$api_url} + '/login',
        'onerror': function (error) {},
    });
    var token = loginClient.getUserToken( YOUR_COMPANY_LOGIN,  YOUR_USER_LOGIN,  YOUR_USER_PASSWORD);
    

Αρχικοποίηση JSON-RPC-client.


    this.client = new JSONRpcClient({
        'url': 'https://user-api.simplybook.me' + '/admin/',
        'headers': {
            'X-Company-Login': YOUR_COMPANY_LOGIN,
            'X-User-Token': token
        },
        'onerror': function (error) {}
    });
    

Εξουσιοδότηση από κώδικα στην πλευρά του διακομιστή

Λήψη του token-κλειδιού.


    $loginClient = new JsonRpcClient('https://user-api.simplybook.me' . '/login/');
    $token = $loginClient->getUserToken({YOUR_COMPANY_LOGIN, YOUR_USER_LOGIN, YOUR_USER_PASSWORD);
    

Αρχικοποίηση JSON-RPC-client.


    $client = new JsonRpcClient('https://user-api.simplybook.me' . '/admin/', array(
        'headers' => array(
            'X-Company-Login: ' . YOUR_COMPANY_LOGIN,
            'X-User-Token: ' . $token
        )
    ));
    

Λήψη δεδομένων από τον διακομιστή Simplybook

Μια σελίδα κράτησης είναι συνήθως μια σελίδα όπου οι πελάτες επιλέγουν την υπηρεσία που χρειάζονται, έναν υπάλληλο και την ώρα της συνάντησής τους. Στη συνέχεια, ο πελάτης εισάγει κάποια στοιχεία επικοινωνίας και επιβεβαιώνει την κράτηση. Οι πιο σύνθετες λύσεις μπορεί να περιλαμβάνουν τη συμπλήρωση διαφόρων πρόσθετων πεδίων, την πραγματοποίηση κάποιας ομαδικής ή πολύωρης κράτησης κ.ο.κ. Ας περιγράψουμε τη ροή εργασίας για τη δημιουργία της απλούστερης σελίδας κράτησης. Στη συνέχεια, αν θέλετε να προσθέσετε κάποια επιπλέον λειτουργικότητα στη σελίδα σας, δείτε εδώ τον πλήρη κατάλογο των μεθόδων API του Simplybook.

Έτσι, το πρώτο πράγμα που θα πρέπει να εμφανίσετε είναι ο κατάλογος των υπηρεσιών και ο κατάλογος των employes. Πάρτε αυτά τα δεδομένα με τις μεθόδους getEventList και getUnitList. Και οι δύο επιστρέφουν μια λίστα με πλήρεις πληροφορίες για κάθε στοιχείο της, οπότε έχετε πολλές δυνατότητες για το πώς να εμφανίσετε τις υπηρεσίες και τους εργαζόμενους στη σελίδα σας. Για να κάνετε φιλτράρισμα υπαλλήλων χρησιμοποιήστε την ιδιότητα unit_map της λίστας υπηρεσιών, περιέχει τις πληροφορίες για τους υπαλλήλους που μπορούν να παρέχουν την επιλεγμένη υπηρεσία.

Παράδειγμα κώδικα για τη λήψη λίστας υπηρεσιών


    $services = $client->getEventList();
    // returns array(array(
    //     'id' => 1, - service id
    //     'name' => 'Service 1', - service's name
    //     'description' => 'Describe your service...', - service description
    //     'duration' => 60, - service duration
    //     'hide_duration' => 0, - Hide duration to clients flag,
    //     'picture' => null, - file name of picture or null
    //     'picture_path' => '/uploads/apidemo/event__picture/small/', - full path to picture,
    //     'position' => 1 - service position
    //     'is_active' => 1, - the service is activated
    //     'is_public' => 1, - the service is allowed to book by clients
    // ), ...)
    

Παράδειγμα κώδικα για την απόκτηση λίστας εκτελεστών υπηρεσιών


    $services = $client->getUnitList();
    // returns array(array(
    //    'id' => 1, - performer id
    //    'name' => 'Provider 1', - performer name
    //    'phone' => '111111111', - perfomer phone number
    //    'description' => 'Describe your performer...', - performer description
    //    'email' => 'test@gmail.com', - perfomer email,
    //    'is_active' => 1, - the performer is activated
    //    'is_visible' => 1, - the perfomer is visible for clients,
    //    'picture' => null, - file name of picture or null,
    //    'picure_path' => '/uploads/apidemo/unit_group__picture/small/', - full path to picture
    //    'position' => 1, - performer position
    //    'qty' => 1, performer quantity
    // ), ...)
    

Το επόμενο βήμα για έναν πελάτη είναι να επιλέξει την ημερομηνία και την ώρα της υπηρεσίας του. Χρησιμοποιήσαμε έναν επιλογέα ημερομηνίας Bootstrap στο παράδειγμα με χρήση API, μπορείτε επίσης να χρησιμοποιήσετε αυτό ή οποιοδήποτε άλλο ημερολόγιο. Για να ορίσετε την πρώτη ημερομηνία του ημερολογίου σας χρησιμοποιήστε τη μέθοδο getFirstWorkingDay. Μπορεί να λάβει το id του υπαλλήλου ως παράμετρο και επιστρέφει την επόμενη ημερομηνία κατά την οποία ο επιλεγμένος υπάλληλος (ή οποιοσδήποτε υπάλληλος στην εταιρεία από προεπιλογή) είναι διαθέσιμος για κράτηση.{""|t} Για να εμφανίσετε τις χρονοθυρίδες μέσα σε μια επιλεγμένη ημερομηνία χρειάζεστε τις μεθόδους getWorkCalendar και getStartTimeMatrix. Η πρώτη μέθοδος σας δίνει πληροφορίες για την ώρα έναρξης και λήξης της εργάσιμης ημέρας και για τα ρεπό. Και η δεύτερη επιστρέφει τον κατάλογο των χρονοθυρίδων που μπορούν να κλειστούν για μια συγκεκριμένη ημερομηνία.

Παράδειγμα κώδικα για τη λήψη πληροφοριών για τις ημέρες εργασίας


    $year = 2020;
    $month = 3; // March
    $performerId = 1; // Can be null
    $workDaysInfo = $client->getWorkCalendar($year, $month, $performerId);
    // returns array(
    //     '2020-03-01' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     '2020-03-02' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0),
    //     ...
    //);
    

Παράδειγμα κώδικα για τη λήψη πίνακα χρόνου έναρξης


    $dateFrom = '2020-03-03';
    $dateTo = '2020-03-04';
    $serviceId = 1;
    $performerId = 1;
    $qty = 1;
    $availableTime = $client->getStartTimeMatrix($dateFrom, $dateTo, $serviceId, $performerId, $qty);
    // returns array(
    //     '2015-03-03' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //     '2015-03-04' => array('09:00:00', '09:30:00', '10:00:00', ....),
    //);
    

Μια άλλη χρήσιμη μέθοδος που μπορεί να χρειαστείτε είναι η calculateEndTime. Κάθε υπηρεσία μπορεί να έχει τη δική της διάρκεια, επίσης οι υπάλληλοι της εταιρείας σας μπορεί να έχουν διαφορετικό πρόγραμμα εργασίας από μέρα σε μέρα. Έτσι, χρησιμοποιώντας αυτή τη μέθοδο μπορείτε να εμφανίσετε σε έναν πελάτη την ημερομηνία και την ώρα λήξης της υπηρεσίας που έχει κλείσει με σωστό τρόπο.

Παράδειγμα κώδικα για τον υπολογισμό του χρόνου λήξης της κράτησης


    $startDateTime = '2020-03-03 09:00:00';
    $serviceId = 1;
    $performerId = 1;
    $availableTime = $client->calculateEndTime($startDateTime, $serviceId, $performerId);
    // returns '2020-03-03 10:00:00'
    

Όταν ένας πελάτης κάνει κλικ στο κουμπί επιβεβαίωσης της κράτησης, πρέπει να καλέσετε τη μέθοδο book. Αυτή είναι η κύρια λειτουργία που εκτελεί όλες τις απαραίτητες επικυρώσεις και καταχωρίζει μια νέα κράτηση στο σύστημα Simplybook. Λαμβάνει πληροφορίες σχετικά με την κράτηση, δεδομένα πελάτη όπως όνομα και τηλέφωνο και ορισμένες πρόσθετες παραμέτρους. Δείτε τις περιγραφές όλων των παραμέτρων αυτής της μεθόδου στη λίστα λειτουργιών API. Η απάντηση της μεθόδου κράτησης περιέχει έναν μοναδικό κωδικό και άλλες λεπτομέρειες της νέας κράτησης ή τον κατάλογο των σφαλμάτων, εάν παρουσιάστηκαν κάποια προβλήματα, έτσι ώστε να μπορείτε να χρησιμοποιήσετε αυτές τις πληροφορίες για να δείξετε το αποτέλεσμα της κράτησης σε έναν πελάτη με έναν απλό και διαισθητικό τρόπο


Χρήση του μυστικού κλειδιού API

Σε ορισμένες περιπτώσεις η μέθοδος κράτησης μπορεί να απαιτεί την επιβεβαίωση, π.χ. αν δέχεστε πληρωμές από πελάτες επιβεβαιώνετε την κράτηση μόνο αφού έχει ήδη έρθει η πληρωμή. Η μέθοδος confirmBookng του API του Simplybook λαμβάνει ως παραμέτρους το αναγνωριστικό κράτησης και την ασφαλή υπογραφή (μια άλλη μέθοδος που απαιτεί ασφαλή υπογραφή είναι η cancelBookng). Για την ασφαλή παραγωγή υπογραφών θα πρέπει να χρησιμοποιηθεί το μυστικό κλειδί API. Δείτε πώς μπορεί να γίνει στο παρακάτω παράδειγμα. Μπορείτε να βρείτε το μυστικό κλειδί στη διεπαφή διαχείρισης κάτω από το σύνδεσμο 'Settings' του plugin API στη λίστα 'Plugins'.

Παράδειγμα κώδικα κράτησης υπηρεσίας και επιβεβαίωσής της με χρήση μυστικού κλειδιού API


    $additionalFields = array(
	'6740d3bce747107ddb9a789cbb78abf3' => 'value1',
	'b0657bafaec7a2c9800b923f959f8163' => 'value2'
    );

    $clientData = array(
        'name' => 'Client name',
        'email' => 'client@email.com',
        'phone' => '+13152108338'
    );

    $bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields);

    if ($bookingsInfo->require_confirm) {
       foreach ($bookingsInfo->bookings as $booking) {
           $sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY);
           $result = $client->confirmBooking($booking->id, $sign);
           echo '<br>Confirm result</b><br />';
           var_dump($result);
        }
    }
    

Παράδειγμα κώδικα για τη λήψη πρόσθετων πεδίων


    $fields = $client->getAdditionalFields($eventId);
    // returns - array(array(
    //		'name' => 'b0657bafaec7a2c9800b923f959f8163', - field name
    //		'title' => 'Test digits', - field title
    //		'type' => 'digits', - field type
    //		'values' => null, - available values for select field type
    //		'default' => null, - default value for field
    //		'is_null' => null, - is filed nullable
    //		'on_main_page' => 1,
    //		'pos' => 1, - field position
    //		'value' => null
    // )), ...)
    

Simplybook Plugins

Εάν η συγκεκριμένη εταιρεία σας απαιτεί κάποια πρόσθετη λειτουργικότητα, μπορείτε να ενεργοποιήσετε κάποια από τα πρόσθετα πρόσθετα μας. Ο πλήρης κατάλογος των πρόσθετων με λεπτομερή περιγραφή είναι διαθέσιμος στη διεπαφή διαχείρισης στο σύνδεσμο 'Plugins'. Αφού ενεργοποιηθεί το απαραίτητο πρόσθετο, θα ενεργοποιηθούν οι αντίστοιχες μέθοδοι API, ώστε να μπορείτε να τις χρησιμοποιήσετε στον κώδικά σας.

Λειτουργία κράτησης codeflow: Λειτουργία κράτησης codeflow

Εξουσιοδότηση στο API του Simplybook χρησιμοποιώντας τη λειτουργία loginClient.getToken(companyLogin, apiKey); function.


Ελέγξτε αν το plugin κατηγοριών υπηρεσιών είναι ενεργοποιημένο με τη μέθοδο isPluginActivated('event_category') αν ναι τότε εμφανίστε τη λίστα των κατηγοριών getCategoriesList().


Λήψη λίστας υπηρεσιών (συμβάντα) και εκτελεστών (μονάδες) χρησιμοποιώντας τις συναρτήσεις getEventList() και getUnitList(). Εάν ο πίνακας 'unit_map' είναι διαθέσιμος για την υπηρεσία σημαίνει ότι η υπηρεσία αυτή μπορεί να παρασχεθεί μόνο από τους συγκεκριμένους εκτελεστές.


Εάν το πρόσθετο επιλογής Any Employee είναι ενεργοποιημένο isPluginActivated('any_unit') και δεν έχει οριστεί ειδική διάρκεια για το ζεύγος υπηρεσία-εκτελεστής στον πίνακα 'unit_map', τότε ο χρήστης θα πρέπει να έχει τη δυνατότητα να επιλέξει την επιλογή Any provider ή να επιλέξει τον πάροχο χειροκίνητα. Αλλά η χειροκίνητη επιλογή των εκτελεστών δεν θα πρέπει να είναι δυνατή εάν είναι ενεργοποιημένη η επιλογή getCompanyParam('any_unit__hide_other_units').


Χρησιμοποιήστε το getStartTimeMatrix ($from ως τρέχουσα ημερομηνία, $to ως τρέχουσα ημερομηνία, $eventId, $unitId, $count ως τιμή επιλεγμένων συμμετεχόντων ) για να λάβετε τις διαθέσιμες χρονοθυρίδες για δεδομένη ημερομηνία. το $unitId πρέπει να είναι null εάν έχει επιλεγεί η επιλογή Any employee.


Εάν ο επιλογέας Any Employee είναι ενεργός και έχει επιλεγεί Any employee καλέστε το getAvailableUnits($eventId, $dateTime, $count) για να λάβετε τα διαθέσιμα $unitId


Εάν έχει ενεργοποιηθεί το πρόσθετο Additional fields isPluginActivated('event_field') καλέστε τη συνάρτηση getAdditionalFields($eventId) για να λάβετε τη λίστα των πεδίων που πρέπει να συμπληρώσει ο πελάτης.


Καλέστε το book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId) για να κάνετε κράτηση.


Γιατί χιλιάδες πελάτες επιλέγουν το API SimplyВook.me

Ξεκάθαρο και απλό περιβάλλον εργασίας. Η δημιουργία της δικής σας υπηρεσίας κρατήσεων είναι εύκολη υπόθεση

Μπορείτε εύκολα να προσθέσετε όλες τις λειτουργίες που χρειάζεστε

Προγραμματισμός σε πραγματικό χρόνο - οι πελάτες σας μπορούν να κλείνουν ραντεβού όπου θέλουν, όποτε θέλουν, 24/7

Η εφαρμογή μας σας προσφέρει πολλές άλλες χρήσιμες λειτουργίες. Κάντε κλικ εδώ για να μάθετε περισσότερα για τις λειτουργίες μας.

API

Αφήστε τους πελάτες σας να κάνουν κράτηση υπηρεσιών χωρίς να εγκαταλείψουν την εφαρμογή σας!

Κάντε τον ιστότοπο ή την εφαρμογή σας πιο σχετικό, ελκυστικό και κερδοφόρο, παρέχοντας τις ενέργειες που επιθυμούν να κάνουν οι πελάτες σας όταν ανακαλύψουν τοπικές επιχειρήσεις. Το API μας σας επιτρέπει να συμπεριλάβετε εύκολα ένα κουμπί "Κάντε κράτηση τώρα" απευθείας στην ιστοσελίδα σας, επιτρέποντας στους πελάτες σας να προγραμματίζουν ραντεβού σε πραγματικό χρόνο, ημέρα ή νύχτα.

Το API μας σας δίνει πρόσβαση σε όλα τα δεδομένα κρατήσεων που χρειάζεστε για να δημιουργήσετε και να αναπτύξετε δυνατότητες προγραμματισμού στο κοινό των πελατών σας.

Συνδέοντας έναν πελάτη με το πρόγραμμα της επιχείρησής σας, γεφυρώνουμε ένα εντελώς νέο επίπεδο εμπορίου. Πιστεύουμε ότι η άμεση κράτηση ραντεβού στην εφαρμογή ή τον ιστότοπό σας μας επιτρέπει να σας παρέχουμε παράδοση πελάτη, όχι μόνο έναν δυνητικό πελάτη.