User API guide/fr: Difference between revisions

Created page with "= '''AUTORISATION DE L'API UTILISATEUR/ADMIN ([https://simplybook.me/api/doc#/admin SERVICE D'ADMINISTRATION DE L'ENTREPRISE])''' = <br><br> == '''Autorisation depuis le code côté client''' == <br><br> '''Obtention de la clé token.''' <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)..."
Created page with "'''Exemple de code pour obtenir les formulaires d'inscription''' <br><br> <nowiki>$fields = $client->getAdditionalFields($eventId); // renvoie - array(array( // 'name' => 'b0657bafaec7a2c9800b923f959f8163', - nom du champ // 'title' => 'Test digits', - titre du champ // 'type' => 'digits', - type de champ // 'values' => null, - valeurs disponibles pour le type de champ de sélection // 'default' => null, - valeur par défaut pour le champ // 'is_..."
 
(9 intermediate revisions by the same user not shown)
Line 188: Line 188:
<br><br>
<br><br>


<div lang="en" dir="ltr" class="mw-content-ltr">
Lorsqu'un client clique sur le bouton « Confirmer la réservation », vous devez appeler la méthode « book ». Il s'agit de la fonction principale qui effectue toutes les validations nécessaires et enregistre une nouvelle réservation dans le système Simplybook. Elle récupère les informations relatives à la réservation, les données du client telles que son nom et son numéro de téléphone, ainsi que certains paramètres supplémentaires. Vous trouverez la description de tous les paramètres de cette méthode dans [https://simplybook.me/api/doc la liste des fonctions API]. La réponse de la méthode book contient un code unique et d'autres détails sur la nouvelle réservation ou la liste des erreurs si des problèmes sont survenus. Vous pouvez utiliser ces informations pour afficher le résultat de la réservation au client de manière pratique et intuitive.
When a client clicks confirm booking button you have to call book method. This is the main function which performs all necessary validations and registers a new booking in Simplybook system. It takes information about booking, client data like name and phone and some additional params. See all params descriptions of this method in [https://simplybook.me/api/doc API functions list]. The book method responce contains an uniqe code and other details of the new booking or the list of errors if some problems occured, so you can use this information to show booking result to a client in convinient and intuitive way.
<br><br><br>
<br><br><br>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
= '''UTILISATION DE LA CLÉ SECRÈTE API''' =
='''USING OF API SECRET KEY'''=
<br><br>
<br><br>
In some cases the book method may require the confirmation, e.g. if your accept payments from clients you confirm booking only after the payment is already came. The Simplybook API confirmBookng method takes booking-id and secure signature as params (another method which requires secure signature is cancelBookng). For the secure signature generation your secret API-key should be used. See how it can be done in the example below. You can find the secret key at admin interface under 'Settings' link of API Custom Feature in 'Custom Features' list.
Dans certains cas, la méthode de réservation peut nécessiter une confirmation, par exemple si vous acceptez les paiements de vos clients et que vous ne confirmez la réservation qu'après réception du paiement. La méthode confirmBookng de l'API Simplybook prend comme paramètres l'identifiant de la réservation et une signature sécurisée (une autre méthode qui nécessite une signature sécurisée est cancelBookng). Pour générer une signature sécurisée, vous devez utiliser votre clé API secrète. Découvrez comment procéder dans l'exemple ci-dessous. Vous trouverez la clé secrète dans l'interface d'administration, sous le lien « Paramètres » de la fonctionnalité API personnalisée dans la liste « Fonctionnalités personnalisées ».
<br><br>
<br><br>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
'''Exemple de code pour la réservation d'un service et sa confirmation à l'aide d'une clé API secrète'''
'''Code example of service booking and its confirmation using secret API key'''
<br><br>
<br><br>
  <nowiki>$additionalFields = array(
  <nowiki>$additionalFields = array(
'6740d3bce747107ddb9a789cbb78abf3' => 'value1',  
'6740d3bce747107ddb9a789cbb78abf3' =&gt; 'value1',  
'b0657bafaec7a2c9800b923f959f8163' => 'value2'
'b0657bafaec7a2c9800b923f959f8163' =&gt; 'value2'
);
);
$clientData = array(
$clientData = array(
'name' => 'Client name',
'name' =&gt; 'Nom du client',
'email' => 'client@email.com',
'email' =&gt; 'client@email.com',
'phone' => '+13152108338'
'phone' =&gt; '+13152108338'
);
);
$bookingsInfo = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields);
$bookingsInfo = $client-&gt;book($eventId, $unitId, $date, $time, $clientData, $additionalFields);
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
if ($bookingsInfo-&gt;require_confirm) {
if ($bookingsInfo->require_confirm) {
foreach ($bookingsInfo-&gt;bookings as $booking) {
  foreach ($bookingsInfo->bookings as $booking) {
$sign = md5($booking-&gt;id . $booking-&gt;hash . YOUR_API_SECRET_KEY);
  $sign = md5($booking->id . $booking->hash . YOUR_API_SECRET_KEY);
$result = $client-&gt;confirmBooking($booking-&gt;id, $sign);
  $result = $client->confirmBooking($booking->id, $sign);
echo '
  echo '
Confirm result
Confirm result
';
';
  var_dump($result);
var_dump($result);
    }
}
}</nowiki>
}</nowiki>
<br><br>
<br><br>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
'''Exemple de code pour obtenir les formulaires d'inscription'''
'''Code example of getting intake forms'''
<br><br>
<br><br>
  <nowiki>$fields = $client->getAdditionalFields($eventId);
  <nowiki>$fields = $client-&gt;getAdditionalFields($eventId);
// returns - array(array(
// renvoie - array(array(
// 'name' => 'b0657bafaec7a2c9800b923f959f8163', - field name
// 'name' =&gt; 'b0657bafaec7a2c9800b923f959f8163', - nom du champ
// 'title' => 'Test digits', - field title
// 'title' =&gt; 'Test digits', - titre du champ
// 'type' => 'digits', - field type
// 'type' =&gt; 'digits', - type de champ
// 'values' => null, - available values for select field type
// 'values' =&gt; null, - valeurs disponibles pour le type de champ de sélection
// 'default' => null, - default value for field
// 'default' =&gt; null, - valeur par défaut pour le champ
// 'is_null' => null, - is filed nullable
// 'is_null' =&gt; null, - champ pouvant être vide
// 'on_main_page' => 1,  
// 'on_main_page' =&gt; 1,  
// 'pos' => 1, - field position
// 'pos' =&gt; 1, - position du champ
// 'value' => null
// 'value' =&gt; null
// )), ...)</nowiki>
// )), ...)</nowiki>
<br><br><br>
<br><br><br>
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
= '''FONCTIONNALITÉS PERSONNALISÉES SIMPLYBOOK''' =
='''SIMPLYBOOK CUSTOM FEATURES'''=
<br><br>
<br><br>
If your company specific requires some additional functionality you can activate some of our additional Custom Features. The complete Custom Features list with detailed description is avaiable in your admin interface under the 'Custom Feature' link. After the necessary Custom Feature is enabled the corresponding API methods will be activated so you can use them in your code.
Si votre entreprise a besoin de fonctionnalités supplémentaires, vous pouvez activer certaines de nos fonctionnalités personnalisées. La liste complète des fonctionnalités personnalisées avec une description détaillée est disponible dans votre interface d'administration sous le lien « Fonctionnalités personnalisées ». Une fois la fonctionnalité personnalisée nécessaire activée, les méthodes API correspondantes seront activées afin que vous puissiez les utiliser dans votre code.
<br><br><br>
<br><br><br>
='''BOOKING FUNCTIONALITY CODEFLOW'''=
= '''FONCTIONNALITÉ DE RÉSERVATION CODEFLOW''' =
<br><br>
<br><br>
Authorize in Simplybook API using '''loginClient.getToken(companyLogin, apiKey);''' function.
Autorisez l'accès à l'API Simplybook à l'aide de la fonction '''loginClient.getToken(companyLogin, apiKey) ;'''.
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
Vérifiez si la fonctionnalité personnalisée Catégories de services est activée par [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_category")]. Si oui, affichez la liste des catégories [https://simplybook.me/en/api/doc#getCategoriesList getCategoriesList()].
Check if Service categories Custom Feature is activated by [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_category")] if yes then display list of categories [https://simplybook.me/en/api/doc#getCategoriesList getCategoriesList()].
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
Obtenir la liste des services (événements) et des prestataires (unités) à l'aide des fonctions [https://simplybook.me/en/api/doc#getEventList getEventList()] et [https://simplybook.me/en/api/doc#getUnitList getUnitList()]. Si le tableau « unit_map » est disponible pour un service, cela signifie que ce service ne peut être fourni que par les prestataires indiqués.
Get list of services (events) and performers (units) using [https://simplybook.me/en/api/doc#getEventList getEventList()] and [https://simplybook.me/en/api/doc#getUnitList getUnitList()] functions. If "unit_map" array is available for service it means this service can be provided by given performers only.
</div>






<div lang="en" dir="ltr" class="mw-content-ltr">
Si la fonctionnalité personnalisée Any Employee Selector est activée [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("any_unit")] et qu'aucune durée particulière n'est définie pour la paire service-prestataire dans le tableau « unit_map », l'utilisateur doit pouvoir sélectionner l'option Any provider (Tout prestataire) ou choisir manuellement un prestataire. Cependant, la sélection manuelle des prestataires ne doit pas être possible si [https://simplybook.me/en/api/doc#getCompanyParam getCompanyParam("any_unit__hide_other_units")] est activé.
If Any Employee Selector Custom Feature is activated [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("any_unit")] and no special duration is set for service-performer pair in "unit_map" array then user should be allowed to select Any provider option or choose provider manually. But manual selection of performers should not be possible if [https://simplybook.me/en/api/doc#getCompanyParam getCompanyParam("any_unit__hide_other_units")] is enabled.
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
Utilisez [https://simplybook.me/en/api/doc#getStartTimeMatrix getStartTimeMatrix ($from comme date actuelle, $to comme date actuelle, $eventId, $unitId, $count comme valeur des participants sélectionnés)] pour obtenir les créneaux horaires disponibles pour une date donnée. '''$unitId''' doit être nul si l'option « Tout employé » est sélectionnée.
Use [https://simplybook.me/en/api/doc#getStartTimeMatrix getStartTimeMatrix ($from as current date, $to as current date, $eventId, $unitId, $count as selected participants value )] to get available timeslots for given date. '''$unitId''' should be null if Any employee option is selected.
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
Si le sélecteur « Any Employee » (Tout employé) est actif et qu'un employé a été sélectionné, appelez [https://simplybook.me/en/api/doc#getAvailableUnits getAvailableUnits($eventId, $dateTime, $count)] pour obtenir le $unitId disponible
If Any Employee selector is active and Any employee was selected call [https://simplybook.me/en/api/doc#getAvailableUnits getAvailableUnits($eventId, $dateTime, $count)] to get available $unitId
</div>






<div lang="en" dir="ltr" class="mw-content-ltr">
Si la fonctionnalité personnalisée des formulaires de saisie est activée, [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_field")] appelle la fonction [https://simplybook.me/en/api/doc#getAdditionalFields getAdditionalFields($eventId)] pour obtenir la liste des champs à remplir par le client.
If Intake Forms Custom Feature is activated [https://simplybook.me/en/api/doc#isPluginActivated isPluginActivated("event_field")] call [https://simplybook.me/en/api/doc#getAdditionalFields getAdditionalFields($eventId)] function to get list of fields for client to fill.
</div>




<div lang="en" dir="ltr" class="mw-content-ltr">
Appelez [https://simplybook.me/en/api/doc#book book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId)] pour effectuer une réservation.
Call [https://simplybook.me/en/api/doc#book book($eventId, $unitId, $date, $time, $clientData, $additional, $count, $batchId)] to make a booking.
</div>


<div lang="en" dir="ltr" class="mw-content-ltr">
<br><br>
<br><br>
</div>