API-dokumentaatio

Authorization

Simplybook API -menetelmät vaativat todennuksen. Jotta voit valtuuttaa Simplybook API:n, sinun on saatava pääsyavain - access-token. Saadaksesi pääsytunnuksen sinun on kutsuttava JSON-RPC-menetelmää getToken http://user-api.simplybook.me/login -palvelussa välittäen henkilökohtaisen API-avaimesi. Voit kopioida API-avaimesi hallintakäyttöliittymästä: siirry 'Plugins'-linkistä ja valitse API-lisäosa 'Settings'. Sitten sinun on käynnistettävä etäkäyttöoikeus Simplybook API:han. Pyyntösi tulee sisältää seuraavat otsikot: 'X-Company-Login', 'X-Token'.

Pääsytunnisteen saaminen voidaan toteuttaa joko asiakkaan puolelta tai palvelimelta, mikä on turvallisempi ratkaisu.

Voit käyttää esimerkkimme javascript JSON-RPC-client -kirjastoa ja php JSON-RPC-client -kirjastoa oman ratkaisusi kehittämiseen.


Client API(yrityksen julkinen palvelu) autorisaatio

Asiakaspuolen koodin valtuuttaminen

Token-avaimen saaminen.


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

Initialisointi JSON-RPC-asiakas


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

Valtuutus palvelinpuolen koodista

Token-avaimen saaminen.


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

Initialisointi 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(Yrityksen hallintopalvelu) autorisointi

Asiakaspuolen koodin valtuuttaminen

Token-avaimen saaminen.


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

Initialisointi 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) {}
    });
    

Valtuutus palvelinpuolen koodista

Token-avaimen saaminen.


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

Initialisointi 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
        )
    ));
    

Tietojen hakeminen Simplybook-palvelimelta

Varaussivu on yleensä sivu, jossa asiakas valitsee tarvitsemansa palvelun, työntekijän ja tapaamisajan. Sitten asiakas syöttää yhteystiedot ja vahvistaa varauksen. Monimutkaisempiin ratkaisuihin voi kuulua erilaisten lisäkenttien täyttäminen, ryhmävarausten tekeminen tai varausten tekeminen useammalle kerralle ja niin edelleen. Kuvaillaan yksinkertaisimman varaussivun luomisen työnkulku. Jos haluat lisätä sivullesi lisätoimintoja, katso täältä täydellinen luettelo Simplybookin API-metodeista.

Ensimmäiseksi sinun pitäisi siis näyttää luettelo palveluista ja luettelo työntekijöistä. Hanki nämä tiedot getEventList- ja getUnitList-metodeilla. Molemmat palauttavat luettelon, jossa on täydelliset tiedot jokaisesta siinä olevasta kohteesta, joten sinulla on monia mahdollisuuksia näyttää palvelut ja työntekijät sivullasi. Työntekijöiden suodattamiseen käytetään palveluluettelon unit_map-ominaisuutta, joka sisältää tiedot työntekijöistä, jotka voivat tarjota valittua palvelua.

Koodiesimerkki palveluluettelon hankkimisesta


    $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
    // ), ...)
    

Koodiesimerkki palveluntuottajaluettelon hankkimisesta


    $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
    // ), ...)
    

Seuraavaksi asiakas valitsee palvelun päivämäärän ja kellonajan. Olemme käyttäneet Bootstrap-päivämääränpoimijaa API-käytön esimerkissä, voit myös käyttää tätä tai mitä tahansa muuta kalenteria. Kalenterin ensimmäisen päivämäärän asettamiseen käytetään getFirstWorkingDay-menetelmää. Se voi ottaa parametrina työntekijän id:n ja palauttaa seuraavan päivämäärän, jolloin valittu työntekijä (tai oletusarvoisesti mikä tahansa yrityksen työntekijä) on käytettävissä varausta varten.{""|t} Valitun päivämäärän sisällä olevien aikavälien näyttämiseen tarvitaan getWorkCalendar- ja getStartTimeMatrix-metodeja. Ensimmäisen menetelmän avulla saat tietoa työpäivän alkamis- ja päättymisajasta sekä vapaapäivistä. Toinen menetelmä palauttaa luettelon aikaväleistä, jotka voidaan varata tietylle päivälle.

Koodiesimerkki työpäivien tietojen saamiseksi


    $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),
    //     ...
    //);
    

Koodiesimerkki aloitusaikamatriisin saamiseksi


    $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', ....),
    //);
    

Toinen käyttökelpoinen menetelmä, jota saatat tarvita, on calculateEndTime. Jokaisella palvelulla voi olla oma kestonsa, ja myös yrityksesi työntekijöillä voi olla erilainen työaikataulu päivästä toiseen. Tämän metodin avulla voit siis näyttää asiakkaalle hänen varaamansa palvelun päättymispäivän ja -ajan oikealla tavalla.

Koodiesimerkki varauksen päättymisajan laskemisesta


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

Kun asiakas klikkaa Vahvista varaus -painiketta, sinun on kutsuttava Book-menetelmää. Tämä on tärkein toiminto, joka suorittaa kaikki tarvittavat validoinnit ja rekisteröi uuden varauksen Simplybook-järjestelmään. Se ottaa vastaan tietoja varauksesta, asiakastietoja, kuten nimen ja puhelimen, sekä joitakin muita parametreja. Katso tämän metodin kaikkien parametrien kuvaukset API-funktioiden luettelosta. Varausmenetelmän vastaus sisältää uniikkikoodin ja muita uuden varauksen yksityiskohtia tai virhelistan, jos on ilmennyt ongelmia, joten voit käyttää näitä tietoja näyttämään varauksen tuloksen asiakkaalle vakuuttavalla ja intuitiivisella tavalla


Salaisen API-avaimen käyttö

Joissakin tapauksissa varaustapa voi vaatia vahvistusta, esim. jos hyväksytte asiakkaiden maksut, vahvistatte varauksen vasta, kun maksu on jo tullut. Simplybook API confirmBookng -menetelmä ottaa paramenteiksi varauksen tunnuksen ja suojatun allekirjoituksen (toinen menetelmä, joka vaatii suojatun allekirjoituksen, on cancelBookng). Turvallisen allekirjoituksen tuottamiseen on käytettävä salaista API-avainta. Katso alla olevasta esimerkistä, miten se voidaan tehdä. Löydät salaisen avaimen hallintakäyttöliittymästä API-liitännäisen 'Settings'-linkistä 'Plugins'-luettelossa.

Koodiesimerkki palvelun varaamisesta ja sen vahvistamisesta salaisen API-avaimen avulla


    $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);
        }
    }
    

Koodiesimerkki lisäkenttien hankkimisesta


    $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

Jos yrityksesi tarvitsee lisätoimintoja, voit aktivoida joitakin lisäliitännäisiämme. Täydellinen lisäosaluettelo yksityiskohtaisine kuvauksineen on saatavilla hallintakäyttöliittymässäsi 'Lisäosat' -linkistä. Kun tarvittava lisäosa on otettu käyttöön, vastaavat API-metodit aktivoituvat, joten voit käyttää niitä koodissasi.

Booking functionality codeflow

Valtuutus Simplybook API:ssa käyttämällä loginClient.getToken(companyLogin, apiKey); function.


Tarkista, onko palveluluokkien lisäosa aktivoitu isPluginActivated('event_category') jos kyllä, niin näytä luettelo luokista getCategoriesList().


Hae luettelo palveluista (tapahtumista) ja suorittajista (yksiköistä) käyttämällä getEventList() - ja getUnitList()-funktioita. Jos 'unit_map'-matriisi on käytettävissä palvelulle, se tarkoittaa, että palvelun voi tarjota vain tietty suorittaja.


Jos Any Employee selector -lisäosa on aktivoitu isPluginActivated('any_unit') ja jos 'unit_map'-matriisiin ei ole asetettu erityistä kestoa palveluntuottajaparille, käyttäjän pitäisi voida valita Any provider -vaihtoehto tai valita palveluntuottaja manuaalisesti. Suorittajien manuaalisen valinnan ei kuitenkaan pitäisi olla mahdollista, jos getCompanyParam('any_unit__hide_other_units') on käytössä.


Käyttämällä getStartTimeMatrix ($from nykyisenä päivämääränä, $to nykyisenä päivämääränä, $eventId, $unitId, $count valittujen osallistujien arvona ) saat käytettävissä olevat aikavälien arvot tietylle päivämäärälle. $unitId:n pitäisi olla nolla, jos Any employee -vaihtoehto on valittu.


Jos Mikä tahansa työntekijä -valitsin on aktiivinen ja mikä tahansa työntekijä on valittu, kutsu getAvailableUnits($eventId, $dateTime, $count) saadaksesi käytettävissä olevat $unitId:t


Jos lisäkentät-lisäosa on aktivoitu isPluginActivated('event_field'), kutsu getAdditionalFields($eventId) -funktiota saadaksesi luettelon kentistä, jotka asiakas voi täyttää.


Soita book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId) tehdäksesi varauksen.


Miksi tuhannet asiakkaat valitsevat SimplyВook.me API:n?

Selkeä ja yksinkertainen käyttöliittymä. Oman varauspalvelun rakentaminen on helppoa

Voit helposti liittää kaikki tarvitsemasi toiminnot

Reaaliaikainen ajanvaraus - asiakkaasi voivat varata tapaamisia missä ja milloin haluavat, 24/7

Sovelluksemme tarjoaa sinulle runsaasti muita hyödyllisiä toimintoja. Klikkaa tästä saadaksesi lisätietoja toiminnoistamme.

API

Anna asiakkaidesi varata palveluita poistumatta sovelluksestasi!

Tee verkkosivustostasi tai sovelluksestasi merkityksellisempi, kiinnostavampi ja kannattavampi tarjoamalla toimintoja, joita asiakkaasi haluavat tehdä löydettyään paikalliset yritykset. API-rajapintamme avulla voit helposti sisällyttää "Varaa nyt" -painikkeen suoraan verkkosivullesi, jolloin asiakkaasi voivat suunnitella tapaamisia reaaliaikaisesti, päivällä tai yöllä.

API-rajapintamme antaa sinulle pääsyn kaikkiin varaustietoihin, joita tarvitset aikataulutusvalmiuksien luomiseen ja käyttöönottoon asiakaskunnallesi.

Yhdistämällä asiakkaan ja liiketoiminta-aikataulusi yhdistämme täysin uuden kaupankäyntikerroksen. Uskomme, että suora ajanvaraus sovelluksessasi tai verkkosivustollasi mahdollistaa sen, että voimme tarjota sinulle asiakastoimituksen, ei vain asiakaspotentiaalin.