Documentazione API

Autorizzazione

I metodi API di Simplybook richiedono un'autenticazione. Per autorizzare l'API Simplybook hai bisogno di ottenere una chiave d'accesso — ovvero un-token di accesso. Per ottenerlo devi utilizzare il metodo JSON-RPC ricevere il Token su http://user-api.simplybook.me/login inserendo la tua chiave API personale. Copia, la tua chiave API nell'interfaccia dell'amministratore:, vai sul link 'Plugin' e seleziona le impostazioni del plugin API. Quindi devi avviare l'accesso remoto all'API SimplyBook.me. La tua richiesta dovrebbe contenere le seguenti intestazioni: 'X-Company-Login', 'X-Token'.

Ottenuto il token di accesso, questo può essere implementato o da parte del cliente o dal tuo server, che è la soluzione più sicura.

Puoi usare javascript JSON-RPC-client library e php JSON-RPC-client library dai nostri esempi per le tue personali soluzioni per lo sviluppo.


Autorizzazione del client API (Società di servizio pubblico)

Autorizzazione dal codice lato client

Ottenere la chiave 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);
    

Inizializzazione di JSON-RPC-client


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

Autorizzazione dal codice lato server

Ottenere la chiave token


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

Inizializzazione client JSON-RPC.


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

Autorizzazione API Utilizzatore/Amministratore (Servizio di amministrazione aziendale)

Autorizzazione dal codice lato client

Ottenere la chiave 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);
    

Inizializzazione client JSON-RPC.


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

Autorizzazione dal codice lato server

Ottenere la chiave token


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

Inizializzazione client JSON-RPC.


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

Ottenere informazioni dal server di SimplyBook.me

Una pagina di prenotazioni, solitamente è una pagina dove i clienti scelgono un servizio di cui hanno bisogno, un fornitore di servizi e l'orario dell'appuntamento. Quindi un cliente inserisce alcuni dati di contatto e conferma la prenotazione. Le più complesse soluzioni possono includere il riempimento di differenti moduli di contatto, la creazione di gruppi o degli appuntamenti multipli o così via. Lasciaci descrivere tutto il lavoro creativo di una semplice pagina di prenotazioni. Quindi, se hai bisogno di aggiungere delle funzionalità extra alla tua pagina, guarda qui la lista completa dei mezzi API SimplyBook.me.

Quindi la prima cosa che dovresti mostrare è la lista dei servizi e la lista dei fornitori di servizi. Ottieni questi dati con i mezzi getEventListe getUnitList. Entrambi forniscono una lista con informazioni complete su ciascun elemento in essa contenuto, hai quindi molte possibilità su come visualizzare i servizi e i fornitori di servizi sulla tua pagina. Utilizza un filtro relativo alle caratteristiche dei dipendenti unit_map nella lista dei servizi, che conterrà le informazioni riguardo agli esecutori che provvederanno a svolgere i servizi selezionati.

Codice esempio per ottenere una lista servizi


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

Codice esempio per ottenere una lista dei fornitori di servizi


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

Il prossimo passo per un cliente è scegliere il giorno e l'ora del suo appuntamento. Abbiamo utilizzato un selezionatore di date Bootstrap nell'esempio di utilizzo dell'API, ma tu puoi utilizzare questo o altri calendari. Per impostare la prima data del calendario, usa il mezzo getFirstWorkingDay. Può utilizzare l'ID del dipendente come parametro e mostrare il giorno successivo, quando il lavoratore selezionato (o qualsiasi altro dipendente dell'azienda di default) è disponibile per un appuntamento.{""|t} Per mostrare le fasce orarie all'interno di una data selezionata, devi utilizzare i mezzi getWorkCalendar e getStartTimeMatrix. Il primo metodo fornisce informazioni sull'orario di inizio e fine del giorno lavorativo e sui giorni festivi. Il secondo, l'elenco delle fasce orarie che possono essere prenotate per una certa data.

Esempio di codice per ottenere informazioni sui giorni lavorativi


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

Esempio di codice per ottenere la matrice dell'orario di inizio


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

Un altro metodo utile di cui potresti avere bisogno è calculateEndTime. Ogni servizio può avere una propria durata, anche i dipendenti dell'azienda possono avere diversi orari di lavoro giorno per giorno. Quindi, utilizzando questo metodo, è possibile mostrare ad un cliente una data e un'ora della fine del servizio che ha prenotato correttamente.

Esempio di codice di calcolo dell'ora di fine appuntamento


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

Quando un cliente clicca sul bottone della conferma di prenotazione tu devi utilizzare il mezzo prenotazione . Questa è la funzione principale che esegue tutte le convalide necessarie e registra una nuova prenotazione nel sistema SimplyBook.me. Ottiene informazioni relative alla prenotazione, i dati del cliente come il nome e il telefono e altre informazioni addizionali. Leggi la descrizione di questi parametri di questo mezzo nella lista delle funzioni API. Il risultato del mezzo prenotazione contiene un codice unico e altri dettagli della prenotazione oppure la lista di eventuali errori nel caso ce ne siano stati, in questo modo puoi mostrare il risultato della prenotazione al cliente nel modo più semplice e intuitivo.


Utilizzo della chiave segreta API

In alcuni casi il mezzo prenotazione può richiedere la conferma, ad esempio se accetti pagamenti dai clienti, confermerai la prenotazione soltanto dopo l'avvenuto pagamento. La procedura API SimplyBook.me confirmBookng accetta l'ID della prenotazione e la firma digitale come parametri (un altro metodo che richiede la firma digitale è cancelBookng). Per la generazione di una firma digitale può essere usata la tua chiave segreta API. Guarda cosa è possibile fare nell'esempio in basso. Puoi trovare la chiave segreta nell'interfaccia dell'amministratore al link 'Funzioni' dell'API nella lista delle funzionalità personalizzate.

Esempio di codice di prenotazione del servizio e sua conferma utilizzando la chiave segreta 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);
        }
    }
    

Esempio di codice per inserire campi nel modulo di immissione


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

Funzioni personalizzabili SimplyBook.me

Se la tua azienda ha bisogno specificatamente di funzioni aggiuntive, puoi attivare ulteriori funzionalità. La lista completa delle funzioni personalizzate con dettagliate descrizioni è disponibile nella tua interfaccia dell'amministratore al link 'Funzioni aggiuntive'. Dopo aver abilitato la funzione personalizzata necessaria, le procedure API corrispondenti saranno attivate in modo da poterle utilizzare nel tuo codice.

Funzionalità di prenotazione codeflow

Autorizzare nell'API SimplyBook.me usando la funzione loginClient.getToken(companyLogin, apiKey);.


Verifica se il pluginCategorie dei servizi è attivo da isPluginActivated('event_category') se si, rendi visibile la lista delle categorie getCategoriesList().


Ottieni la lista dei servizi (eventi) e prestatori (unità) usando getEventList() e le funzioni getUnitList(). Se il quadro" unit_map" è disponibile per un servizio, questo significa che questo servizio può essere fornito solo da un dato prestatore.


Se il plugin Seleziona tutti gli operatori è attivato isPluginActivated('any_unit') e nessuna durata è impostata sia per il servizio che per il prestatore nel quadro "unit_map" allora l'utente deve selezionare l'opzione Tutti gli operatori o scegliere un prestatore manualmente. Ma la selezione manuale del fornitore del servizio non è possibile se getCompanyParam('any_unit__hide_other_units') è attivato.


Usa getStartTimeMatrix ($from as current date, $to as current date, $eventId, $unitId, $count as selected participants value ) per ottenere le fasce disponibili per una determinata data. $unitId deve essere nullo se l'opzioneTutti gli operatori è selezionata.


Se il plugin Seleziona tutti i lavoratori è attivato e Tutti i lavoratori è selezionata, utilizza getAvailableUnits($eventId, $dateTime, $count)/b> per ottenere le $unitId disponibili.


Se il plugin modello di immissione è attivatoisPluginActivated('event_field') seleziona la funzionegetAdditionalFields($eventId) per ottenere la lista dei campi che il cliente deve riempire.


Richiama book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId) per fare una prenotazione.


Perché migliaia di clienti scelgono l'API SimplyBook.me?

Interfaccia chiara e semplice. Costruire il tuo sito di prenotazioni personale è facilissimo

Puoi attivare facilmente tutte le funzionalità di cui hai bisogno

Pianificazione in tempo reale – i tuoi clienti possono prenotare appuntamenti quando e dove vogliono 24 ore su 24 e 7 giorni su 7

La nostra applicazione ti offre un sacco di altre caratteristiche utili. Clicca qui per scoprire di più sulle nostre funzioni.

API

Fa in modo che i tuoi clienti prenotino i servizi senza abbandonare la tua app!

Rendi il tuo sito web o la tua app più importanti, coinvolgenti e redditizi, dando la possibilità ai tuoi clienti di poter fare quello che desiderano, scoprendo le attività commerciali locali. La nostra API renderà facile includere un pulsante 'Prenota ora' direttamente nel tuo sito web, consentendo ai tuoi clienti di pianificare appuntamenti in tempo reale, giorno e notte.

La nostra API ti da accesso a tutti i dati delle prenotazioni di cui hai bisogno per creare e offrire funzionalità di pianificazione al tuo gruppo di clienti.

Connettendo un cliente con la tua pianificazione aziendale, stiamo creando un nuovo modo di fare commercio. Riteniamo che la prenotazione diretta dell'appuntamento tramite la tua app o il nostro sito web ci consenta di farti trovare un nuovo cliente, non solo uno potenziale.