Distinguer les vols de démonstration des vrais vols

Comment établir si votre écran affiche des vols de démonstration, ce qui les provoque réellement et quels symptômes ressemblants viennent en fait d'ailleurs.

8 min de lectureDernière mise à jour : 1/15/20240

Distinguer les vols de démonstration des vrais vols

Quelqu'un passe devant l'écran et déclare que les vols semblent faux, inventés, ou identiques à ceux d'hier. Cet article vous montre comment établir si l'écran affiche réellement des données de démonstration, énumère les cinq situations qui les produisent et — tout aussi important — passe en revue les symptômes qui ressemblent à des données de démonstration mais viennent d'autre chose. La plupart des signalements que nous recevons relèvent du second cas.

Commencez par le test : il prend une minute et tranche la question. Tout ce qui suit suppose que vous connaissez déjà la réponse.

Le seul test fiable

L'écran récupère ses vols depuis /api/flights/<hotelId>, et cette réponse indique sans détour quel type de données elle transporte. Ouvrez l'URL de l'écran sur n'importe quel ordinateur, appuyez sur F12, allez dans l'onglet Network, filtrez sur flights, rechargez la page et cliquez sur la requête. Dans le corps de la réponse, regardez les champs de premier niveau :

  • `mock: true` signifie que les vols à l'écran sont des vols de démonstration.
  • `demo: true` s'ajoute à mock: true, et uniquement lorsque l'identifiant d'hôtel présent dans l'URL est littéralement demo.
  • Si aucun des deux champs n'est à `true`, les vols proviennent du vrai fournisseur ou de son cache. Ils sont réels.
  • Deux détails de cette requête vous induiront en erreur si personne ne vous prévient. D'abord, elle n'échoue jamais. Même lorsque l'écran retombe jusqu'aux vols de démonstration, la route répond en HTTP 200 avec success: true : vous ne verrez donc jamais de ligne rouge dans l'onglet Network, le repli est invisible de l'extérieur tant que vous ne lisez pas le corps. Ensuite, les messages qui consignent ce repli sont écrits sur le serveur, pas dans le navigateur : l'onglet Console n'a rien d'utile à offrir sur cette question.

    Pourquoi les vols eux-mêmes ne vous apprennent rien

    Le réflexe évident consiste à juger d'après ce qui est affiché. Cela ne marche pas ici, et mieux vaut savoir pourquoi avant d'y consacrer vingt minutes.

    Les vols de démonstration sont délibérément convaincants. Ils portent de vraies compagnies et des numéros d'allure authentique — OS 501 sur Austrian Airlines, LH 1234 sur Lufthansa, LX 456 sur Swiss, W6 2345 sur Wizz Air — avec terminal, porte et tapis à bagages renseignés. Un numéro de vol est donc le pire indice possible.

    Leurs horaires ne sont pas figés non plus. Chaque vol de démonstration est généré à neuf par rapport à l'heure courante au moment de la requête : un départ se situe donc toujours à vingt-cinq ou trente-cinq minutes, quel que soit le moment où vous regardez. L'écran ne paraîtra jamais figé à cause d'eux. Leurs statuts sont eux aussi variés : certains sont à l'heure prévue, un autre est en vol avec quinze minutes de retard et, sur un tableau des arrivées, certains ont déjà atterri. Il n'y a pas de rangée révélatrice d'entrées identiques et ponctuelles.

    L'horodatage Dernière mise à jour en pied de page ne vaut rien non plus comme preuve. Il est fixé dès qu'une réponse arrive, quel qu'en soit le contenu.

    Ce qui provoque réellement des vols de démonstration

    Il y a exactement cinq cas. Rien d'autre dans le produit ne bascule l'écran sur des données de démonstration.

  • L'identifiant d'hôtel dans l'URL est `demo`. Il s'agit de l'écran d'exemple public à l'adresse https://lobbyflight.com/display/demo ; https://lobbyflight.com/demo y redirige. C'est le seul cas qui active aussi demo: true.
  • L'identifiant d'hôtel est absent de la base de données. Une faute de frappe dans l'URL, ou un hôtel qui n'existe plus, produit des vols de démonstration plutôt qu'une erreur. En pratique, c'est ainsi qu'un écran payant se retrouve le plus souvent sur des données de démonstration.
  • Une erreur est survenue pendant le traitement de la requête. Toute défaillance à l'intérieur de la route est interceptée et se solde par des vols de démonstration et un statut 200. C'est le deuxième chemin le plus fréquent, et il est silencieux par conception.
  • `AVIATIONSTACK_API_KEY` n'est pas définie. Instances auto-hébergées uniquement.
  • `POSTGRES_URL` n'est pas définie. Instances auto-hébergées uniquement ; ce cas s'applique avant même que l'hôtel soit recherché.
  • Notez ce qui ne figure pas dans cette liste. La route des vols ne consulte jamais votre statut d'abonnement. Un abonnement expiré, résilié ou en retard de paiement ne bascule pas l'écran sur des vols de démonstration, et régler une facture en souffrance ne changera rien à ce qui s'affiche. Le statut d'abonnement commande l'accès aux fonctionnalités — diapositives supplémentaires, météo, analyses, image de marque — ainsi que l'API publique, pas le tableau des vols.

    Le badge jaune Mode Démo en pied d'écran est lié à demo: true : il n'apparaît donc que sur l'écran demo. Dans les quatre cas qui vous amènent réellement ici, l'écran ne porte aucune marque. Son absence ne prouve rien : utilisez plutôt le test Network.

    Des symptômes qui ne sont pas des données de démonstration

    Si la réponse indique des données réelles et que l'écran semble malgré tout fautif, l'une de ces explications est en général la bonne.

    Les vols sont réels, mais anciens. Lorsque l'appel au fournisseur de vols échoue — clé expirée, panne du fournisseur, délai dépassé —, le système ne saute pas directement aux données de démonstration. Il sert d'abord le dernier résultat réussi, conservé jusqu'à vingt-quatre heures. L'écran continue donc d'afficher de vrais vols d'un vrai aéroport, simplement de plus en plus périmés. C'est pourquoi une clé d'API *invalide* se comporte autrement qu'une clé *absente* : une clé absente vous donne immédiatement des vols de démonstration, tandis qu'une clé erronée vous donne les vrais vols de la veille jusqu'à épuisement du cache.

    L'écran ne semble pas se rafraîchir. La fréquence de récupération des données de vol dépend du forfait : soixante minutes en Basic, trente en Pro, cinq en Premium. Un compte sans forfait reconnu obtient soixante minutes. En Basic, une heure sans changement visible correspond exactement à ce que fait le forfait, et c'est de loin la première raison pour laquelle on conclut que l'écran est bloqué sur des données préfabriquées.

    L'aéroport est le mauvais, mais les vols sont réels. Si aucun aéroport n'est configuré pour un hôtel, l'écran ne se rabat pas sur des données de démonstration : il se rabat sur Vienne et récupère de vrais départs de Vienne. Les clients qui signalent des vols vers des aéroports où personne dans l'établissement ne se rend voient généralement cela. Les aéroports se trouvent dans Portail → Aéroports, où votre forfait en comprend un et où d'autres peuvent être ajoutés ; celui qu'affiche un écran donné se choisit dans l'éditeur d'écran, sous Aéroport et heure.

    L'écran affiche les réglages d'un autre écran. L'aéroport, le nom de l'hôtel et la mise en page se configurent désormais écran par écran, et l'URL d'affichage transporte l'écran auquel elle appartient sous la forme ?display=<displayId>. Ouvrez /display/<hotelId> sans ce paramètre et c'est l'écran actif configuré le plus récemment qui se charge : de vrais vols, corrects en eux-mêmes, mais de l'aéroport du mauvais écran. Copiez l'URL depuis le portail au lieu de la saisir : Portail → Affichages propose une icône de copie sur chaque ligne, et Portail → Affichages → ouvrir l'écran → Aperçu & URL montre la même adresse dans le champ URL de l'Écran. Lorsqu'un domaine personnalisé est vérifié, cette adresse devient simplement https://<votre-domaine>.

    L'écran est vide plutôt que faux. Un écran désactivé au moyen de l'icône d'alimentation sur sa ligne dans Portail → Affichages renvoie un tableau vide marqué inactive: true. Le chemin des données n'a rien d'anormal : l'écran est éteint.

    Regardez le portail avant d'aller jusqu'à l'écran

    Portail → Affichages répond à la question « cet écran affiche-t-il quoi que ce soit d'actuel ? » plus vite que n'importe quel outil de navigateur. Chaque écran porte un statut : En cours, Hors ligne, Jamais ouvert pour un écran qui existe dans le portail mais dont l'URL n'a jamais été chargée sur un appareil, et Éteint pour un écran que vous avez désactivé.

    Ces libellés reposent sur un signal de vie que l'écran envoie toutes les cinq minutes, et un écran n'est déclaré hors ligne qu'après douze minutes de silence. L'écart est volontaire — deux signaux manqués plus un peu de marge — car une seule requête perdue lors d'un rechargement ou une brève coupure réseau ferait sinon passer pour en panne un écran de hall parfaitement sain. Cela signifie aussi qu'un écran que vous venez de débrancher affichera encore En cours pendant quelques minutes.

    La facturation n'est plus dans la barre latérale : elle se trouve dans le menu derrière votre avatar, sous Facturation, et le statut de l'abonnement y est indiqué. La page comporte un unique bouton Gérer l'Abonnement qui vous confie au portail client Stripe, où se règlent renouvellements, résiliations et changements de carte. Cela vaut la peine si votre abonnement demande vraiment votre attention — n'attendez simplement pas que cela modifie le tableau des vols.

    Instances auto-hébergées

    Deux variables d'environnement déterminent si de vrais vols sont seulement possibles. AVIATIONSTACK_API_KEY est l'identifiant du fournisseur de vols ; sans elle, chaque requête renvoie des vols de démonstration. POSTGRES_URL est vérifiée encore plus tôt : sans base de données configurée, la route renvoie des vols de démonstration avant même de rechercher votre hôtel.

    Le fournisseur de vols est appelé depuis le serveur, pas depuis l'écran. Un appareil d'affichage sur le réseau de l'hôtel n'a besoin que d'atteindre lobbyflight.com sur le port 443 ; il ne parle jamais à api.aviationstack.com et il n'y a aucune raison de lui ouvrir quoi que ce soit. L'accès sortant vers le fournisseur est nécessaire là où l'application s'exécute, et cet appel passe en HTTP simple sur le port 80.

    Encore un point à connaître en auto-hébergement : si STRIPE_SECRET_KEY est absente, la vérification des fonctionnalités les considère toutes comme disponibles. C'est commode en local et déroutant si vous essayez de reproduire les limites du forfait d'un client.

    Vérifier que des données réelles sont aussi justes

    Une fois que la réponse indique des données réelles, reste à savoir si elles correspondent à la réalité. Ouvrez le site officiel de l'aéroport sur lequel l'écran est réglé et comparez les numéros de vol avec le tableau. Ils proviennent du flux temps réel du fournisseur et devraient concorder. S'ils concordent mais que les horaires divergent, la cause est un fuseau horaire, et non la source des données.

    Prochaines étapes

  • Explorer le Mode Démo explique à quoi sert l'écran de démonstration public et en quoi il diffère du vôtre.
  • Plus d'un écran traite des réglages par écran et de la raison pour laquelle le paramètre ?display= doit figurer dans chaque URL d'affichage.
  • Sélection et Gestion des Aéroports détaille l'aéroport inclus et l'ajout d'autres aéroports.
  • Aucun Vol Affiché Malgré des Vols Actifs est l'article à lire si le tableau est vide au lieu d'afficher les mauvais vols.
  • Cet article vous a-t-il été utile ?