User API guide/da: Difference between revisions
Created page with "= '''BRUGER/ADMIN API ([https://simplybook.me/api/doc#/admin VIRKSOMHEDSADMINISTRATIONSTJENESTE]) AUTORISATION''' = <br><br> == '''Autorisation fra klientens kode''' == <br><br> '''Hent token-nøglen.''' <br><br> <nowiki>var loginClient = new JSONRpcClient({ 'url': 'https://user-api.simplybook.me' + '/login', 'onerror': function (error) {}, }); var token = loginClient.getUserToken(YOUR_COMPANY_LOGIN, YOUR_USER_LOGIN, YOUR_USER_PASSWORD);</nowiki> <br><br>" |
Created page with "<br><br>" |
||
| (7 intermediate revisions by the same user not shown) | |||
| Line 129: | Line 129: | ||
<br><br> | <br><br> | ||
'''Kodeeksempel på hentning af liste over tjenesteudbydere''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$services = $client- | <nowiki>$services = $client->getUnitList(); | ||
// | // returnerer array(array( | ||
// 'id' = | // 'id' => 1, - udbyder-id | ||
// 'name' = | // 'name' => 'Udbyder 1', - udbyderens navn | ||
// 'phone' = | // 'phone' => '111111111', - udbyderens telefonnummer | ||
// 'description' = | // 'description' => 'Beskriv din udbyder...', - udbyderens beskrivelse | ||
// 'email' = | // 'email' => 'test@gmail.com', - udbyderens e-mail, | ||
// 'is_active' = | // 'is_active' => 1, - udbyderen er aktiveret | ||
// 'is_visible' = | // 'is_visible' => 1, - udøveren er synlig for kunder, | ||
// 'picture' = | // 'picture' => null, - filnavn på billede eller null, | ||
// 'picure_path' = | // 'picure_path' => '/uploads/apidemo/unit_group__picture/small/', - fuld sti til billede | ||
// 'position' = | // 'position' => 1, - udøverens position | ||
// 'qty' = | // 'qty' => 1, antal udøvere | ||
// ), ...)</nowiki> | // ), ...)</nowiki> | ||
<br><br> | <br><br> | ||
Det næste trin for en kunde er at vælge en dato og et tidspunkt for sin service. Vi har brugt en Bootstrap-datovælger i API-brugseksemplet, men du kan også bruge denne eller en anden kalender. For at indstille din kalenders første dato skal du bruge metoden getFirstWorkingDay. Den kan tage medarbejder-id som parameter og returnerer den næste dato, hvor den valgte medarbejder (eller en hvilken som helst medarbejder i virksomheden som standard) er tilgængelig for booking. For at vise tidsintervaller inden for en valgt dato skal du bruge metoderne getWorkCalendar og getStartTimeMatrix. Den første metode giver dig oplysninger om arbejdsdagens start- og sluttidspunkt samt om fridage. Den anden returnerer listen over tidsintervaller, der kan bookes for en bestemt dato. | |||
<br><br> | <br><br> | ||
''' | '''Kodeeksempel på hentning af oplysninger om arbejdsdage''' | ||
<br><br> | <br><br> | ||
<nowiki>$år = 2015; | |||
<nowiki>$ | $måned = 3; // marts | ||
$ | $performerId = 1; // Kan være null | ||
$performerId = 1; // | $workDaysInfo = $client->getWorkCalendar($år, $måned, $performerId); | ||
$workDaysInfo = $client- | // returnerer array( | ||
// | // '2015-03-01' => array('fra' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0), | ||
// '2015-03-01' = | // '2015-03-02' => array('from' => '09:00:00', 'to' => '18:00:00', 'is_day_off' => 0), | ||
// '2015-03-02' = | |||
// ... | // ... | ||
//);</nowiki> | //);</nowiki> | ||
<br><br> | <br><br> | ||
''' | '''Kodeeksempel på hentning af starttidsmatrix''' | ||
<br><br> | <br><br> | ||
<nowiki>$dateFrom = '2015-03-03'; | <nowiki>$dateFrom = '2015-03-03'; | ||
| Line 174: | Line 169: | ||
$performerId = 1; | $performerId = 1; | ||
$qty = 1; | $qty = 1; | ||
$availableTime = $client- | $availableTime = $client->getStartTimeMatrix($dateFrom, $dateTo, $serviceId, $performerId, $qty); | ||
// | // returnerer array( | ||
// '2015-03-03' = | // '2015-03-03' => array('09:00:00', '09:30:00', '10:00:00', ....), | ||
// '2015-03-04' = | // '2015-03-04' => array('09:00:00', '09:30:00', '10:00:00', ....), | ||
//);</nowiki> | //);</nowiki> | ||
<br><br> | <br><br> | ||
En anden nyttig metode, du muligvis har brug for, er calculateEndTime. Hver service kan have sin egen varighed, og dine medarbejdere har muligvis forskellige arbejdsplaner fra dag til dag. Ved hjælp af denne metode kan du vise en kunde den korrekte slutdato og -tid for den service, han har reserveret. | |||
<br><br> | <br><br> | ||
''' | '''Kodeeksempel på beregning af bookingens sluttidspunkt''' | ||
<br><br> | <br><br> | ||
<nowiki>$startDateTime = '2015-03-03 09:00:00'; | <nowiki>$startDateTime = '2015-03-03 09:00:00'; | ||
$serviceId = 1; | $serviceId = 1; | ||
$performerId = 1; | $performerId = 1; | ||
$availableTime = $client- | $availableTime = $client->calculateEndTime($startDateTime, $serviceId, $performerId); | ||
// | // returnerer '2015-03-03 10:00:00' | ||
</nowiki> | </nowiki> | ||
<br><br> | <br><br> | ||
Når en klient klikker på knappen "Bekræft booking", skal du kalde book-metoden. Dette er den vigtigste funktion, der udfører alle nødvendige valideringer og registrerer en ny booking i Simplybook-systemet. Den tager oplysninger om bookingen, klientdata som navn og telefonnummer samt nogle yderligere parametre. Se alle parametre for denne metode i [https://simplybook.me/api/doc listen over API-funktioner]. Book-metodens svar indeholder en unik kode og andre detaljer om den nye booking eller en liste over fejl, hvis der opstod problemer, så du kan bruge disse oplysninger til at vise bookingsresultatet til en kunde på en praktisk og intuitiv måde. | |||
<br><br><br> | <br><br><br> | ||
= '''BRUG AF API-HEMMELIG NØGLE''' = | |||
=''' | |||
<br><br> | <br><br> | ||
I nogle tilfælde kan bogmetoden kræve bekræftelse, f.eks. hvis du accepterer betalinger fra kunder, bekræfter du først bookingen, når betalingen er modtaget. Simplybook API-metoden confirmBookng tager booking-id og sikker signatur som parametre (en anden metode, der kræver sikker signatur, er cancelBookng). Til generering af sikker signatur skal din hemmelige API-nøgle bruges. Se hvordan det kan gøres i eksemplet nedenfor. Du finder den hemmelige nøgle i admin-grænsefladen under linket 'Indstillinger' i API Custom Feature i listen 'Custom Features'. | |||
<br><br> | <br><br> | ||
'''Kodeeksempel på servicebooking og bekræftelse ved hjælp af hemmelig API-nøgle''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$additionalFields = array( | <nowiki>$additionalFields = array( | ||
'6740d3bce747107ddb9a789cbb78abf3' = | '6740d3bce747107ddb9a789cbb78abf3' => 'value1', | ||
'b0657bafaec7a2c9800b923f959f8163' = | 'b0657bafaec7a2c9800b923f959f8163' => 'value2' | ||
); | ); | ||
$clientData = array( | $clientData = array( | ||
'name' = | 'name' => 'Kundens navn', | ||
'email' = | 'email' => 'client@email.com', | ||
'phone' = | 'phone' => '+13152108338' | ||
); | ); | ||
$bookingsInfo = $client- | $bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields); | ||
if ($bookingsInfo->require_confirm) { | |||
if ($bookingsInfo- | foreach ($bookingsInfo->bookings as $booking) { | ||
$sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY); | |||
$result = $client->confirmBooking($booking->id, $sign); | |||
echo ' | |||
Bekræft resultat | |||
'; | '; | ||
var_dump($result); | |||
} | |||
}</nowiki> | }</nowiki> | ||
<br><br> | <br><br> | ||
'''Kodeeksempel på hentning af indtastningsformularer''' | |||
''' | |||
<br><br> | <br><br> | ||
<nowiki>$fields = $client- | <nowiki>$fields = $client->getAdditionalFields($eventId); | ||
// | // returnerer - array(array( | ||
// 'name' = | // 'name' => 'b0657bafaec7a2c9800b923f959f8163', - feltnavn | ||
// 'title' = | // 'title' => 'Test digits', - feltnavn | ||
// 'type' = | // 'type' => 'digits', - felttype | ||
// 'values' = | // 'values' => null, - tilgængelige værdier for valgfeltstype | ||
// 'default' = | // 'default' => null, - standardværdi for felt | ||
// 'is_null' = | // 'is_null' => null, - er feltet nullable | ||
// 'on_main_page' = | // 'on_main_page' => 1, | ||
// 'pos' = | // 'pos' => 1, - feltposition | ||
// 'value' = | // 'value' => null | ||
// )), ...)</nowiki> | // )), ...)</nowiki> | ||
<br><br><br> | <br><br><br> | ||
= '''SIMPLYBOOK CUSTOM-FUNKTIONER''' = | |||
='''SIMPLYBOOK CUSTOM | |||
<br><br> | <br><br> | ||
Hvis din virksomhed har behov for yderligere funktionalitet, kan du aktivere nogle af vores ekstra tilpassede funktioner. Den komplette liste over tilpassede funktioner med detaljeret beskrivelse findes i din administrationsgrænseflade under linket 'Tilpassede funktioner'. Når den nødvendige tilpassede funktion er aktiveret, aktiveres de tilhørende API-metoder, så du kan bruge dem i din kode. | |||
<br><br><br> | <br><br><br> | ||
=''' | = '''KODEFLOW FOR BOOKINGFUNKTIONER''' = | ||
<br><br> | <br><br> | ||
Autoriser i Simplybook API ved hjælp af funktionen '''loginClient.getToken(companyLogin, apiKey);'''. | |||
Kontroller, om servicekategorier Custom Feature er aktiveret ved hjælp af [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_category")]. Hvis ja, vis listen over kategorier [https://simplybook.me/en/api/doc#getCategoriesList getCategoriesList()]. | |||
Få en liste over tjenester (begivenheder) og udøvere (enheder) ved hjælp af funktionerne [https://simplybook.me/en/api/doc#getEventList getEventList()] og [https://simplybook.me/en/api/doc#getUnitList getUnitList()]. Hvis arrayet "unit_map" er tilgængeligt for en tjeneste, betyder det, at denne tjeneste kun kan leveres af de angivne udøvere. | |||
Hvis en hvilken som helst medarbejderudvælger-tilføjelsesfunktion er aktiveret [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("any_unit")] og der ikke er angivet nogen særlig varighed for serviceudbyder-parret i "unit_map"-arrayet, skal brugeren have mulighed for at vælge en hvilken som helst udbyder eller vælge udbyder manuelt. Manuel udvælgelse af udbydere bør dog ikke være mulig, hvis [https://simplybook.me/en/api/doc#getCompanyParam getCompanyParam("any_unit__hide_other_units")] er aktiveret. | |||
Brug [https://simplybook.me/en/api/doc#getStartTimeMatrix getStartTimeMatrix ($from som aktuel dato, $to som aktuel dato, $eventId, $unitId, $count som valgt deltagerantal)] for at få tilgængelige tidsintervaller for den angivne dato. '''$unitId''' skal være null, hvis indstillingen Alle medarbejdere er valgt. | |||
Hvis Any Employee-vælgeren er aktiv, og Any Employee er valgt, skal du kalde [https://simplybook.me/en/api/doc#getAvailableUnits getAvailableUnits($eventId, $dateTime, $count)] for at få tilgængelige $unitId | |||
Hvis den tilpassede funktion Intake Forms er aktiveret, skal [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_field")] kalde funktionen [https://simplybook.me/en/api/doc#getAdditionalFields getAdditionalFields($eventId)] for at hente en liste over felter, som kunden skal udfylde. | |||
Ring [https://simplybook.me/en/api/doc#book til book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId)] for at foretage en reservation. | |||
<br><br> | <br><br> | ||