(Processus de communication avec AFI-multimédia)
Ligne 99 : Ligne 99 :
  
 
== Processus de communication avec AFI-multimédia ==
 
== Processus de communication avec AFI-multimédia ==
 +
 
Les serveurs AFI-Multimédia communiquent avec le Bokeh pour authentifier un utilisateur, effectuer ou vérifier une réservation de poste.
 
Les serveurs AFI-Multimédia communiquent avec le Bokeh pour authentifier un utilisateur, effectuer ou vérifier une réservation de poste.
  
# Authentification
+
Il est très fortement conseillé d'effectuer ces requêtes en '''HTTPS''' car des informations personnelles transitent lors de ces échanges d'informations.
#: Un utilisateur AFI-Multimédia s'authentifie sur bokeh ce qui lui permet de récupérer et de mettre à jour ses informations sur la base de données multimédia. L'authentification se fait par le biais du web service "votre_url_serveur/multimedia/authenticate" avec les paramètres suivants:
+
 
#* login: Identifiant utilisateur
+
=== Authentification ===
#* password : Mot de passe de l'utilisateur
+
 
#: Il retourne les informations suivantes :  
+
Un utilisateur AFI-Multimédia s'authentifie sur bokeh ce qui lui permet de récupérer et de mettre à jour ses informations sur la base de données multimédia.  
#* auth : Indique si l'authentification de l'abonné est réussi (1) ou pas (0)
+
 
#* id : Identifiant interne de l'abonné
+
L'authentification se fait par le biais d'une requête à l'url <pre>[url de votre Bokeh]/multimedia/authenticate</pre> avec les paramètres :
#* login : Login de l'abonné
+
{| class="wikitable"
#* password : Mot de passe de l'abonné
+
|-
#* nom": Nom de l'abonné
+
! scope="row" | login  
#* prenom : Prénom de l'abonné
+
| Identifiant utilisateur
#* date_debut : Date de début d'abonnement
+
|-
#* date_fin : Date de fin d'abonnement  
+
! scope="row" | password  
#* groupes: liste des groupes de l'abonné
+
| Mot de passe de l'utilisateur
#* date_naissance : Date de naissance
+
|}
#:
+
 
#: En cas d'erreur la réponse contient un attribut "error" qui peut avoir les valeur suivantes :
+
La réponse sera au format JSON et retourne les informations suivantes :  
#* UserNotFound: Si l'abonné n’existe pas dans Bokeh
+
{| class="wikitable"
#* PasswordIsWrong: Si le mot de passe est incorrect
+
|-
#* DeviceNotFound: Si le poste n'est référé dans BOKEH
+
! scope="row" | auth
#* MissingParameter: Erreur lorsqu’il manque un paramètre
+
| Indique si l'authentification de l'abonné est réussi (1) ou pas (0)
#* SubscriptionExpired: Si l'abonnement de l'abonné est expiré
+
|-
#:
+
! scope="row" | id
 +
| Identifiant interne de l'abonné dans Bokeh
 +
|-
 +
! scope="row" | login
 +
|
 +
|-
 +
! scope="row" | password
 +
|
 +
|-
 +
! scope="row" | nom
 +
|
 +
|-
 +
! scope="row" | prenom
 +
|
 +
|-
 +
! scope="row" | date_debut
 +
| date de début d'abonnement au format JJ/MM/AAAA si cette information est fournie par le SIGB
 +
|-
 +
! scope="row" | date_fin
 +
| date de fin d'abonnement au format JJ/MM/AAAA
 +
|-
 +
! scope="row" | groupes
 +
| liste des libellés des groupes d'utilisateurs affectés à cet abonné dans Bokeh
 +
|-
 +
! scope="row" | date_naissance
 +
| date de naissance au format AAAA/MM/JJ
 +
|}
 +
 
 +
Exemple de réponse:
 +
<pre>
 +
{"auth":1,"id":1,"login":"test","password":"test","nom":"Martin","prenom":"Jean-Paul","date_debut":"07/10/2016","date_fin":"07/10/2017","groupes":["Ressources numeriques", "abonne SIGB"],"date_naissance":""}
 +
</pre>
 +
 
 +
En cas d'erreur la réponse contient un attribut "error" qui peut avoir les valeur suivantes :
 +
{| class="wikitable"
 +
|-
 +
! scope="row" | UserNotFound
 +
| Pas d'abonné correspondant au login fourni
 +
|-
 +
! scope="row" | PasswordIsWrong
 +
| Mot de passe incorrect
 +
|-
 +
! scope="row" | MissingParameter
 +
| Vous n'avez pas fourni le login ou le mot de passe
 +
|-
 +
! scope="row" | SubscriptionExpired
 +
| L'abonnement de cet abonné est expiré
 +
|}
 +
 
 +
Exemple de réponse en erreur:
 +
<pre>{"auth":0,"error":"SubscriptionExpired"}</pre>
 +
 
 
# Réserver ou vérifier une réservation  
 
# Réserver ou vérifier une réservation  
 
#: Lorsque que les réservations sont activées (voir : [[Réservation de poste multimédia ]]),  AFI-Multimédia vérifie que le poste est bien réservé par l'utilisateur dans bokeh par le  biais du webservice "votre_url_serveur/multimedia/hold-device". Dans le cas contraire, une réservation automatique peut être réaliser selon la disponibilité du poste et si l'option est activé dans bokeh.
 
#: Lorsque que les réservations sont activées (voir : [[Réservation de poste multimédia ]]),  AFI-Multimédia vérifie que le poste est bien réservé par l'utilisateur dans bokeh par le  biais du webservice "votre_url_serveur/multimedia/hold-device". Dans le cas contraire, une réservation automatique peut être réaliser selon la disponibilité du poste et si l'option est activé dans bokeh.

Version du 8 juin 2017 à 10:13

Une bibliothèque peut connecter son AFI-Multimédia à son Bokeh afin que les abonnés puissent effectuer leurs réservations de postes multimédia depuis leur espace abonné Bokeh.

Activation

La connection AFI-Multimédia / Bokeh s'active par la variable MULTIMEDIA_KEY.
Elle doit contenir la clé publique utilisée pour crypter les échanges entre ces 2 applications.

Envoi de la configuration Multimédia dans Bokeh

Chaque serveur AFI-Multimédia doit être configuré pour envoyer sa configuration (localisation, liste de postes) à Bokeh.
Voir la documentation AFI-Multimédia pour ce paramétrage.

Liste des sites

Après l'activation, un menu Administration du portail > Multimedia apparait.
Multimedia menu.png

Ce menu affiche la liste des sites transmis par les serveurs AFI-Multimedia.
Multimedia index.png

Pour chacun des sites vous pouvez le modifier, voir la liste de ses postes et accéder à l'administration de son serveur AFI-Multimédia.

Modifier un site

Multimedia edit.png

Localisation

Le site multimédia doit être rattaché à une bibliothèque à partir de laquelle on définira des horaires de réservations.

Réservation

Durée d'un créneau (en minutes)

Lorsqu'un abonné effectue une réservation, elle occupe des créneaux qui peuvent êtres plus ou moins larges.

Nombre maximum de créneaux réservables simultanément

Lorsqu'un abonné effectue une réservation, il pourra demander au maximum Durée d'un créneau * Maximum de créneaux minutes.
Par exemple, pour autorisez des réservations d'une heure maximum:

  • pour des créneaux de 5 minutes, paramétrez un maximum de 12 créneaux (5 * 12 = 60 mn)
  • pour des créneaux de 15 minutes, paramétrez un maximum de 4 créneaux (15 * 4 = 60 mn)

Nombre de jours au plus tard avant une réservation

Lorsqu'un abonné effectue une réservation, il pourra la demander pour un jour à partir de ce nombre.
0 veut dire que l'abonné peut réserver à partir du jour même, 1 qu'il peut le faire à partir du lendemain, 2 à partir du sur-lendemain, 7 à partir de la semaine suivante, etc....

Nombre de jours au plus tôt avant une réservation

Lorsqu'un abonné effectue une réservation, il pourra la demander jusqu'à un nombre de jours déterminer par ce nombre.
1 veut dire que l'abonné peut réserver jusqu'au lendemain, 90 qu'il peut le faire jusque dans 2 mois, etc...

Délai de connexion avant d'annuler une réservation

Période de grâce pendant laquelle l'accès au poste est complètement refusée aux abonnés ne l'ayant pas réservé.
Passé ce délai, un abonné sans réservation pourra accéder au poste et prendre les créneaux déterminés par la section Réservation automatique.

Réservation automatique

Générer automatiquement une réservation à la connexion à un poste disponible

Active / désactive la fonctionnalité de réservation automatique.

Temps minimum avant la réservation suivante

Un abonné se connectant à un poste libre se voit attribué une réservation automatique si aucune réservation ne débute dans moins que ce nombre de minutes.
Par exemple, avec un paramétrage à 5 minutes, un abonné se connecte à un poste sans avoir réservé, l'accès lui sera refusé si ce poste est réservé dans 5 minutes.

Durée de la réservation automatique

Nombre de créneaux maximum attribués lors d'une réservation automatique.
Ce nombre sera éventuellement réduit par la plage horaire d'ouverture et les réservations déjà posées sur ce poste.

Liste des postes

Multimedia browse.png

Cet écran affiche la liste des postes regroupés par "secteurs".
Ces informations sont transmises par les serveurs AFI-Multimédia et ne sont donc pas modifiables directement dans Bokeh.
Il est cependant possible de lister les réservations prises sur chaque poste.

Définitions des plages horaires de réservation

Lorsqu'AFI-Multimedia est activé, une nouvelle action est disponible dans la liste des bibliothèques pour définir les plages horaires multimédia.

Multimedia bib index.png

Cette action permet de déterminer les plages horaires exactement de la même façon que les ouvertures normales (voir la documentation).

Ces ouvertures ne servent exclusivement qu'à la réservation de postes multimédia, elles ne sont pas affichées dans la fiche bibliothèque présentée aux internautes sur le portail.

Lors de la réservation, en cas d'ouverture et de fermeture définies pour le même jour ou la même période, Bokeh donne la priorité aux ouvertures.
Les ouvertures et fermetures déterminées pour un jour en particulier sont prioritaires sur celles définies par période.

Par exemple, vous pouvez définir qu'il est possible en général de réserver le mercredi mais que ce n'est pas possible en Aout sauf un mercredi qui est exceptionnellement ouvert.
Il en est de même pour les horaires sans parler d'ouverture / fermeture. Il est possible de paramétrer des réservations en général les mercredi de 10h à 16h, au mois d'Août de 10h à 22h sauf un mercredi en particulier qui sera paramétré de 10h à 12h.


Processus de communication avec AFI-multimédia

Les serveurs AFI-Multimédia communiquent avec le Bokeh pour authentifier un utilisateur, effectuer ou vérifier une réservation de poste.

Il est très fortement conseillé d'effectuer ces requêtes en HTTPS car des informations personnelles transitent lors de ces échanges d'informations.

Authentification

Un utilisateur AFI-Multimédia s'authentifie sur bokeh ce qui lui permet de récupérer et de mettre à jour ses informations sur la base de données multimédia.

L'authentification se fait par le biais d'une requête à l'url
[url de votre Bokeh]/multimedia/authenticate
avec les paramètres :
login Identifiant utilisateur
password Mot de passe de l'utilisateur

La réponse sera au format JSON et retourne les informations suivantes :

auth Indique si l'authentification de l'abonné est réussi (1) ou pas (0)
id Identifiant interne de l'abonné dans Bokeh
login
password
nom
prenom
date_debut date de début d'abonnement au format JJ/MM/AAAA si cette information est fournie par le SIGB
date_fin date de fin d'abonnement au format JJ/MM/AAAA
groupes liste des libellés des groupes d'utilisateurs affectés à cet abonné dans Bokeh
date_naissance date de naissance au format AAAA/MM/JJ

Exemple de réponse:

{"auth":1,"id":1,"login":"test","password":"test","nom":"Martin","prenom":"Jean-Paul","date_debut":"07/10/2016","date_fin":"07/10/2017","groupes":["Ressources numeriques", "abonne SIGB"],"date_naissance":""}

En cas d'erreur la réponse contient un attribut "error" qui peut avoir les valeur suivantes :

UserNotFound Pas d'abonné correspondant au login fourni
PasswordIsWrong Mot de passe incorrect
MissingParameter Vous n'avez pas fourni le login ou le mot de passe
SubscriptionExpired L'abonnement de cet abonné est expiré

Exemple de réponse en erreur:

{"auth":0,"error":"SubscriptionExpired"}
  1. Réserver ou vérifier une réservation
    Lorsque que les réservations sont activées (voir : Réservation de poste multimédia ), AFI-Multimédia vérifie que le poste est bien réservé par l'utilisateur dans bokeh par le biais du webservice "votre_url_serveur/multimedia/hold-device". Dans le cas contraire, une réservation automatique peut être réaliser selon la disponibilité du poste et si l'option est activé dans bokeh.
    Paramètres :
    • login  : Identifiant utilisateur
    • password  : Mot de passe de l'utilisateur
    • poste  : Identifiant du poste
    • site  : Identifiant de la location du poste
    • temps  : Durée en minute d'occupation du poste
    Ce webservice retourne les mêmes informations sur l'abonné cité ci-dessus en plus des informations suivantes:
    • Holded: Indique si la réservation est faite (1) ou non (0)
    • until : Correspondant à la date de fin de réservation
    Nous pouvons avoir l'erreur ci-dessous en plus de celles qui peuvent survenir à l'authentification de l'abonné
    • DeviceNotHeldByUser: Indique que le poste ne peut être réservé
    NB: Lors de la réservation automatique, Bokeh essaiera de réserver une plage horaire correspondant au mieux au temps en paramètre. Dans le cas contraire, un message d'erreur. sera renvoyé.
  2. Jour Réservable
    Le webservice "votre_url_serveur/multimedia/is-holding-device/" nous indique si nous sommes un jour ouvert à la réservation. Il utilise les paramètres ci-dessous et ne nécéssite pas de s'authentifier dans Bokeh.
    Paramètres
    • poste  : Identifiant du poste
    • site  : Identifiant de la location du poste
    Valeur de retour :
    • Holding: Indique si nous sommes sur un jour ouvert à la réservation (1) ou non (0)
  3. Clore une réservation
    Suite à la déconnexion sur un poste multimédia, le webservice "votre_url_sereur/multimedia/close-holging" permet de mettre à jour la durée de la réservation effective.
    Paramétres :
    • login  : Identifiant utilisateur
    • password  : Mot de passe de l'utilisateur
    • poste  : Identifiant du poste
    • site  : Identifiant de la location du poste
    • temps  : Durée en minute d'occupation du poste

Site hébergé et maintenu par AFI et BibLibre et enrichi par la communauté de Bokeh.