Synchroniser les objets actifs
Pourquoi synchroniser ?
Millcheck ne retourne que des données fiables : un objet inactif disparaît de l’API et son widget ne s’affiche plus. Si votre site ne tient pas compte de ces changements, vous risquez :
- d’afficher un bloc « Disponibilités » ou « Horaires » vide sur une fiche ;
- de proposer un filtre de recherche qui ne renvoie aucun résultat ;
- de laisser un calendrier obsolète affiché depuis le SIT.
La liste des objets actifs vous permet de savoir, fiche par fiche, s’il faut afficher le widget, le calendrier ou le filtre.
Endpoints à interroger
| Service | Endpoint | Retourne |
|---|---|---|
| Disponibilités hébergeurs | GET /objects | Les identifiants SIT des hébergements actifs |
| Jours et horaires Google | GET /opening-hours/objects | Les identifiants SIT des établissements avec des horaires |
Fréquence recommandée
Une récupération une fois par jour, idéalement la nuit, suffit dans la grande majorité des cas. Les statuts évoluent au rythme des mises à jour des prestataires et des synchronisations quotidiennes : un appel plus fréquent n’apporte rien.
Planifier une tâche nocturne
Ajoutez une tâche planifiée (cron, tâche du CMS…) qui appelle chaque endpoint une fois par nuit.
Stocker la liste
Enregistrez les identifiants retournés dans votre base, par exemple sous forme d’un indicateur « Millcheck actif » sur chaque fiche.
Conditionner l’affichage
Sur vos fiches et vos moteurs de recherche, n’affichez le widget, le calendrier ou le filtre que pour les objets marqués actifs.
Exemple
// Tâche planifiée, exécutée chaque nuit
$apiKey = 'VOTRE_CLE_API';
$dispos = json_decode(file_get_contents(
'https://api.millcheck.fr/public/objects?api_key=' . $apiKey
), true);
$horaires = json_decode(file_get_contents(
'https://api.millcheck.fr/public/opening-hours/objects?api_key=' . $apiKey
), true);
// En cas d’échec, on conserve la liste de la veille
if (!empty($dispos['success'])) {
enregistrerObjetsActifs('dispos', $dispos['datas']);
}
if (!empty($horaires['success'])) {
enregistrerObjetsActifs('horaires', $horaires['datas']);
}