Surveillez l'utilisation de votre clé avant d'atteindre une limite
Surveiller vos en-têtes de quota au fil de l'eau vous indique quand une limite approche, bien avant qu'une requête ne soit effectivement refusée.
Faire défiler une liste de noms de fuseaux horaires pour trouver le sien est un petit désagrément qu'une valeur par défaut judicieuse supprime pour presque tout le monde.
L'endpoint /v1/ip renvoie directement un champ timezone : un seul appel vous donne donc à la fois la localisation et l'identifiant du fuseau horaire, sans appel séparé à l'endpoint timezone.
GET /v1/ip?ip=203.0.113.88{
"status": "ok",
"ip": "203.0.113.88",
"version": 4,
"found": true,
"country": "Australia",
"country_code": "AU",
"region": "New South Wales",
"city": "Sydney",
"postcode": "2000",
"lat": -33.8688,
"lon": 151.2093,
"timezone": "Australia/Sydney",
"asn": 7890,
"org": "Example Networks"
}Définissez la valeur timezone de cette réponse comme option sélectionnée dans votre formulaire de paramètres lors de son premier affichage, côté serveur, avant que la page n'atteigne le visiteur. Cela fonctionne de la même manière que le sélecteur soit une liste déroulante d'identifiants de fuseau standard ou une liste avec recherche, puisque la valeur présélectionnée est simplement une chaîne d'identifiant standard comme celle de l'exemple.
Un formulaire de réservation de voyage ou d'événement qui recueille les informations de plusieurs voyageurs gagne à détecter le fuseau une seule fois pour la personne qui remplit le formulaire, puis à l'appliquer comme valeur par défaut commune à chaque voyageur plutôt que de refaire la recherche pour chacun. Chaque champ voyageur reste modifiable individuellement, car une réservation de groupe inclut souvent des personnes venant d'un autre fuseau que celui de la personne qui remplit le formulaire.
Un sélecteur de fuseau horaire existe précisément parce que la détection basée sur l'IP n'est pas toujours juste, en particulier pour un visiteur qui utilise un VPN ou qui voyage. Laissez toujours le champ modifiable et enregistrez ce que le visiteur choisit explicitement plutôt que la valeur détectée par défaut, sans relancer la détection ni écraser son choix lors d'une visite ultérieure.
Ne partez pas du principe qu'un grand pays correspond à un seul fuseau horaire simplement parce que vos recherches d'exemple affichent un identifiant unique et net. Les pays qui s'étendent sur plusieurs fuseaux renverront le fuseau précis correspondant à la position réelle du visiteur, et c'est justement ce détail qui rend la détection basée sur l'IP plus utile qu'une estimation au niveau du pays, mais seulement si votre formulaire fait confiance à l'identifiant précis renvoyé au lieu de le remplacer par un fuseau par défaut unique pour tout le pays.
Lancez la détection une seule fois, la première fois qu'un visiteur configure son compte ou ses préférences, et enregistrez le résultat. La relancer à chaque connexion gaspillerait des requêtes sans apporter de valeur, puisque le fuseau choisi par un visiteur, une fois défini délibérément, doit être conservé à moins qu'il ne le modifie lui-même.
Si vous disposez déjà de coordonnées précises plutôt que d'une adresse IP, comme une adresse de livraison saisie par un visiteur, /v1/timezone détermine le fuseau directement à partir de la latitude et de la longitude et peut aussi accepter un horodatage précis, ce qui est utile lorsque vous devez connaître le fuseau tel qu'il s'appliquait à un moment donné plutôt que maintenant.
Une seule recherche par nouveau compte ou par configuration des préférences correspond à une requête. Même un service qui inscrit chaque jour un flux régulier de nouveaux utilisateurs reste largement dans les 2 500 requêtes gratuites par jour incluses avec chaque clé, ou disponibles depuis une même adresse sans clé, avec cette seule fonctionnalité.
Détecter une valeur par défaut judicieuse puis s'effacer, c'est le bon équilibre pour un sélecteur de fuseau horaire. Le détail complet des champs figure dans la documentation de la recherche IPv4 et la documentation de la recherche de fuseau horaire.